<?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>8953</bug_id>
          
          <creation_ts>2006-05-17 02:34:20 -0700</creation_ts>
          <short_desc>Autogenerate button, optgroup, option, input and textarea js bindings</short_desc>
          <delta_ts>2006-05-18 09:10:00 -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>WebCore Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>42688</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-05-17 02:34:20 -0700</bug_when>
    <thetext>bring us a few steps closer to total world autogeneration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42689</commentid>
    <comment_count>1</comment_count>
      <attachid>8363</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-05-17 02:35:44 -0700</bug_when>
    <thetext>Created attachment 8363
first stab patch (not for review, just discussion)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42692</commentid>
    <comment_count>2</comment_count>
      <attachid>8365</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-05-17 03:18:19 -0700</bug_when>
    <thetext>Created attachment 8365
A bit closer, not quiet there yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42763</commentid>
    <comment_count>3</comment_count>
      <attachid>8376</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-05-17 14:55:51 -0700</bug_when>
    <thetext>Created attachment 8376
final patch with test cases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42764</commentid>
    <comment_count>4</comment_count>
      <attachid>8377</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-05-17 14:58:57 -0700</bug_when>
    <thetext>Created attachment 8377
Adding missing test cases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42767</commentid>
    <comment_count>5</comment_count>
      <attachid>8376</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-05-17 15:02:06 -0700</bug_when>
    <thetext>Comment on attachment 8376
final patch with test cases

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42768</commentid>
    <comment_count>6</comment_count>
      <attachid>8377</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-05-17 15:03:38 -0700</bug_when>
    <thetext>Comment on attachment 8377
Adding missing test cases

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>42833</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-05-18 09:10:00 -0700</bug_when>
    <thetext>Eric landed this 2006-05-17 as r14453.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8363</attachid>
            <date>2006-05-17 02:35:44 -0700</date>
            <delta_ts>2006-05-17 03:18:19 -0700</delta_ts>
            <desc>first stab patch (not for review, just discussion)</desc>
            <filename>gen.patch</filename>
            <type>text/plain</type>
            <size>91737</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAxNDQzNCkKKysr
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjAsNiArMTIwLDggQEAgc3ViIEdldExlZ2FjeUhlYWRlckluY2x1ZGVzCiAgIG15ICRsZWdhY3lQ
YXJlbnQgPSBzaGlmdDsKICAgaWYgKCRsZWdhY3lQYXJlbnQgZXEgIkpTQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZSIpIHsKICAgICByZXR1cm4gIiNpbmNsdWRlIFwiSlNDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRCYXNlLmhcIlxuXG4iOworICB9IGVsc2lmICgkbGVnYWN5UGFyZW50IGVxICJK
U0hUTUxJbnB1dEVsZW1lbnRCYXNlIikgeworICAgICAgcmV0dXJuICIjaW5jbHVkZSBcIkpTSFRN
TElucHV0RWxlbWVudEJhc2UuaFwiXG5cbiI7CiAgIH0gZWxzaWYgKCRsZWdhY3lQYXJlbnQgZXEg
IktKUzo6V2luZG93IikgewogICAgICAgcmV0dXJuICIjaW5jbHVkZSBcImtqc193aW5kb3cuaFwi
XG5cbiI7CiAgIH0gZWxzaWYgKCRsZWdhY3lQYXJlbnQgZXEgIktKUzo6RE9NTm9kZSIpIHsKQEAg
LTYwNCw3ICs2MDYsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8JGNsYXNzTmFtZSwgJHBh
cmVudENsYXNzTmFtZT4oZXhlYywgJiR7Y2xhc3NOYW1lfVRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpO1xuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAKLSAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIkpTVmFsdWUqICR7Y2xhc3NOYW1lfTo6Z2V0VmFsdWVQcm9w
ZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbikgY29uc3RcbntcbiIpOworICAgIHB1c2go
QGltcGxDb250ZW50LCAiSlNWYWx1ZSogJHtjbGFzc05hbWV9OjpnZXRWYWx1ZVByb3BlcnR5KEV4
ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdFxue1xuIik7CiAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgJGltcGxDbGFzc05hbWUqIGltcGwgPSBzdGF0aWNfY2FzdDwkaW1wbENsYXNz
TmFtZSo+KCR7Y2xhc3NOYW1lfTo6aW1wbCgpKTtcblxuIik7CiAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgc3dpdGNoICh0b2tlbikge1xuIik7CiAKQEAgLTEwMTIsNiArMTAxNCwxMCBAQCBz
dWIgTmF0aXZlVG9KU1ZhbHVlCiAgIH0gZWxzaWYgKCR0eXBlIGVxICJET01PYmplY3QiKSB7CiAg
ICAgJGltcGxJbmNsdWRlc3siSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmgifSA9IDE7
CiAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsICR2YWx1ZSkiOworICB9IGVsc2lmICgkdHlwZSBlcSAi
SFRNTEZvcm1FbGVtZW50IikgeworICAgICRpbXBsSW5jbHVkZXN7Imtqc19odG1sLmgifSA9IDE7
CisgICAgJGltcGxJbmNsdWRlc3siSFRNTEZvcm1FbGVtZW50LmgifSA9IDE7CisgICAgcmV0dXJu
ICJ0b0pTKGV4ZWMsICR2YWx1ZSkiOwogICB9IGVsc2UgewogICAgICRpbXBsSW5jbHVkZXN7IkpT
JHR5cGUuaCJ9ID0gMTsKICAgICByZXR1cm4gInRvSlMoZXhlYywgJHZhbHVlKSI7CkBAIC0xMjM5
LDcgKzEyNDUsNyBAQCBFT0YKICAgICBpZiAoJGNhbkNvbnN0cnVjdCkgewogJGltcGxDb250ZW50
IC49IDw8ICJFT0YiOwogICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ29uc3RydWN0KCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgSlNPYmplY3QqIGNvbnN0cnVjdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IExpc3QgJmFyZ3MpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTT2Jq
ZWN0ICo+KHRvSlMoZXhlYywgbmV3ICRpbnRlcmZhY2VOYW1lKSk7IH0KKyAgICB2aXJ0dWFsIEpT
T2JqZWN0KiBjb25zdHJ1Y3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBMaXN0JiBhcmdzKSB7IHJl
dHVybiBzdGF0aWNfY2FzdDxKU09iamVjdCo+KHRvSlMoZXhlYywgbmV3ICRpbnRlcmZhY2VOYW1l
KSk7IH0KIEVPRgogICAgIH0KIApJbmRleDogYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uRWxlbWVu
dENvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uRWxl
bWVudENvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDApCisrKyBiaW5kaW5ncy9qcy9KU0hUTUxPcHRp
b25FbGVtZW50Q29uc3RydWN0b3IuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwK
KyAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorICovCisKKyNpZm5kZWYgSlNIVE1MT3B0
aW9uRWxlbWVudENvbnN0cnVjdG9yX0gKKyNkZWZpbmUgSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0
cnVjdG9yX0gKKworI2luY2x1ZGUgImtqc19iaW5kaW5nLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBKU0hUTUxPcHRpb25FbGVt
ZW50Q29uc3RydWN0b3IgOiBwdWJsaWMgS0pTOjpET01PYmplY3QgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yKEtKUzo6RXhlY1N0YXRlKiwgRG9j
dW1lbnQqKTsKKyAgICAgICAgdmlydHVhbCBib29sIGltcGxlbWVudHNDb25zdHJ1Y3QoKSBjb25z
dDsKKyAgICAgICAgdmlydHVhbCBLSlM6OkpTT2JqZWN0ICpjb25zdHJ1Y3QoS0pTOjpFeGVjU3Rh
dGUqLCBjb25zdCBLSlM6Okxpc3QmIGFyZ3MpOworICAgIHByaXZhdGU6CisgICAgICAgIFJlZlB0
cjxEb2N1bWVudD4gbV9kb2M7CisgICAgfTsKKworfQorCisjZW5kaWYKSW5kZXg6IGJpbmRpbmdz
L2pzL2tqc19odG1sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYmluZGluZ3MvanMva2pzX2h0bWwuaAkocmV2
aXNpb24gMTQ0MzQpCisrKyBiaW5kaW5ncy9qcy9ranNfaHRtbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC03OSw4ICs3OSw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHN0YXRpYyBjb25zdCBDbGFzc0lu
Zm8gaW5mbzsKIAogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gaHRtbF9pbmZvLCBpc0luZGV4
X2luZm8sIGJvZHlfaW5mbywgZm9ybV9pbmZvLAotICAgICAgc2VsZWN0X2luZm8sIG9wdEdyb3Vw
X2luZm8sIG9wdGlvbl9pbmZvLCBpbnB1dF9pbmZvLCB0ZXh0QXJlYV9pbmZvLAotICAgICAgYnV0
dG9uX2luZm8sIGxhYmVsX2luZm8sIGZpZWxkU2V0X2luZm8sIGxlZ2VuZF9pbmZvLCB1bF9pbmZv
LCBvbF9pbmZvLAorICAgICAgc2VsZWN0X2luZm8sIGxhYmVsX2luZm8sIGZpZWxkU2V0X2luZm8s
IGxlZ2VuZF9pbmZvLCB1bF9pbmZvLCBvbF9pbmZvLAogICAgICAgZGxfaW5mbywgZGlyX2luZm8s
IG1lbnVfaW5mbywgbGlfaW5mbywgZGl2X2luZm8sIHBfaW5mbywgaGVhZGluZ19pbmZvLAogICAg
ICAgYmxvY2tRdW90ZV9pbmZvLCBxX2luZm8sIHByZV9pbmZvLCBicl9pbmZvLCBiYXNlRm9udF9p
bmZvLCBmb250X2luZm8sCiAgICAgICBocl9pbmZvLCBtb2RfaW5mbywgYV9pbmZvLCBpbWdfaW5m
bywgb2JqZWN0X2luZm8sIHBhcmFtX2luZm8sCkBAIC05NCw4ICs5Myw3IEBAIG5hbWVzcGFjZSBL
SlMgewogICAgIHN0cnVjdCBBY2Nlc3NvcnMgeyBHZXR0ZXJGdW5jdGlvbiBtX2dldHRlcjsgU2V0
dGVyRnVuY3Rpb24gbV9zZXR0ZXI7IH07CiAgICAgY29uc3QgQWNjZXNzb3JzKiBhY2Nlc3NvcnMo
KSBjb25zdDsKICAgICBzdGF0aWMgY29uc3QgQWNjZXNzb3JzIGh0bWxfYWNjZXNzb3JzLCBpc0lu
ZGV4X2FjY2Vzc29ycywgYm9keV9hY2Nlc3NvcnMsIGZvcm1fYWNjZXNzb3JzLAotICAgICAgc2Vs
ZWN0X2FjY2Vzc29ycywgb3B0R3JvdXBfYWNjZXNzb3JzLCBvcHRpb25fYWNjZXNzb3JzLCBpbnB1
dF9hY2Nlc3NvcnMsIHRleHRBcmVhX2FjY2Vzc29ycywKLSAgICAgIGJ1dHRvbl9hY2Nlc3NvcnMs
IGxhYmVsX2FjY2Vzc29ycywgZmllbGRTZXRfYWNjZXNzb3JzLCBsZWdlbmRfYWNjZXNzb3JzLCB1
bF9hY2Nlc3NvcnMsIG9sX2FjY2Vzc29ycywKKyAgICAgIHNlbGVjdF9hY2Nlc3NvcnMsIGxhYmVs
X2FjY2Vzc29ycywgZmllbGRTZXRfYWNjZXNzb3JzLCBsZWdlbmRfYWNjZXNzb3JzLCB1bF9hY2Nl
c3NvcnMsIG9sX2FjY2Vzc29ycywKICAgICAgIGRsX2FjY2Vzc29ycywgZGlyX2FjY2Vzc29ycywg
bWVudV9hY2Nlc3NvcnMsIGxpX2FjY2Vzc29ycywgZGl2X2FjY2Vzc29ycywgcF9hY2Nlc3NvcnMs
IGhlYWRpbmdfYWNjZXNzb3JzLAogICAgICAgYmxvY2tRdW90ZV9hY2Nlc3NvcnMsIHFfYWNjZXNz
b3JzLCBwcmVfYWNjZXNzb3JzLCBicl9hY2Nlc3NvcnMsIGJhc2VGb250X2FjY2Vzc29ycywgZm9u
dF9hY2Nlc3NvcnMsCiAgICAgICBocl9hY2Nlc3NvcnMsIG1vZF9hY2Nlc3NvcnMsIGFfYWNjZXNz
b3JzLCBpbWdfYWNjZXNzb3JzLCBvYmplY3RfYWNjZXNzb3JzLCBwYXJhbV9hY2Nlc3NvcnMsCkBA
IC0xMTMsMTYgKzExMSw2IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHZvaWQgIGZvcm1TZXR0ZXIo
RXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBjb25zdCBXZWJDb3Jl
OjpTdHJpbmcmIHN0cik7CiAgICAgSlNWYWx1ZSAqc2VsZWN0R2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgaW50IHRva2VuKSBjb25zdDsKICAgICB2b2lkICBzZWxlY3RTZXR0ZXIoRXhlY1N0YXRlICpl
eGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIHN0
cik7Ci0gICAgSlNWYWx1ZSAqb3B0R3JvdXBHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9r
ZW4pIGNvbnN0OwotICAgIHZvaWQgIG9wdEdyb3VwU2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgaW50
IHRva2VuLCBKU1ZhbHVlICp2YWx1ZSwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzdHIpOwotICAg
IEpTVmFsdWUgKm9wdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29uc3Q7
Ci0gICAgdm9pZCAgb3B0aW9uU2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuLCBKU1Zh
bHVlICp2YWx1ZSwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzdHIpOwotICAgIEpTVmFsdWUgKmlu
cHV0R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdDsKLSAgICB2b2lkICBp
bnB1dFNldHRlcihFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbiwgSlNWYWx1ZSAqdmFsdWUsIGNv
bnN0IFdlYkNvcmU6OlN0cmluZyYgc3RyKTsKLSAgICBKU1ZhbHVlICp0ZXh0QXJlYUdldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29uc3Q7Ci0gICAgdm9pZCAgdGV4dEFyZWFTZXR0
ZXIoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBjb25zdCBXZWJD
b3JlOjpTdHJpbmcmIHN0cik7Ci0gICAgSlNWYWx1ZSAqYnV0dG9uR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgaW50IHRva2VuKSBjb25zdDsKLSAgICB2b2lkICBidXR0b25TZXR0ZXIoRXhlY1N0YXRl
ICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcm
IHN0cik7CiAgICAgSlNWYWx1ZSAqbGFiZWxHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9r
ZW4pIGNvbnN0OwogICAgIHZvaWQgIGxhYmVsU2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRv
a2VuLCBKU1ZhbHVlICp2YWx1ZSwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzdHIpOwogICAgIEpT
VmFsdWUgKmZpZWxkU2V0R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdDsK
QEAgLTIwMiwzMSArMTkwLDE1IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIEpTVmFsdWUgKm1hcnF1
ZWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNvbnN0OwogICAgIHZvaWQgIG1h
cnF1ZWVTZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBj
b25zdCBXZWJDb3JlOjpTdHJpbmcmIHN0cik7CiAKLSAgICBlbnVtIHsgSHRtbFZlcnNpb24sIEhl
YWRQcm9maWxlLCBMaW5rSHJlZiwgTGlua1JlbCwgTGlua01lZGlhLAotICAgICAgICAgICBMaW5r
Q2hhcnNldCwgTGlua0Rpc2FibGVkLCBMaW5rSHJlZkxhbmcsIExpbmtSZXYsIExpbmtUYXJnZXQs
IExpbmtUeXBlLAotICAgICAgICAgICBMaW5rU2hlZXQsIFRpdGxlVGV4dCwgTWV0YU5hbWUsIE1l
dGFIdHRwRXF1aXYsIE1ldGFDb250ZW50LCBNZXRhU2NoZW1lLAotICAgICAgICAgICBCYXNlSHJl
ZiwgQmFzZVRhcmdldCwgSXNJbmRleEZvcm0sIElzSW5kZXhQcm9tcHQsIFN0eWxlRGlzYWJsZWQs
Ci0gICAgICAgICAgIFN0eWxlU2hlZXQsIFN0eWxlVHlwZSwgU3R5bGVNZWRpYSwgQm9keUJhY2tn
cm91bmQsIEJvZHlWTGluaywgQm9keVRleHQsCisgICAgZW51bSB7IEh0bWxWZXJzaW9uLCBJc0lu
ZGV4Rm9ybSwgSXNJbmRleFByb21wdCwKKyAgICAgICAgICAgQm9keUJhY2tncm91bmQsIEJvZHlW
TGluaywgQm9keVRleHQsCiAgICAgICAgICAgIEJvZHlMaW5rLCBCb2R5QUxpbmssIEJvZHlCZ0Nv
bG9yLCBCb2R5U2Nyb2xsTGVmdCwgQm9keVNjcm9sbFRvcCwgQm9keVNjcm9sbEhlaWdodCwgQm9k
eVNjcm9sbFdpZHRoLAogICAgICAgICAgICBGb3JtQWN0aW9uLCBGb3JtRW5jVHlwZSwgRm9ybUVs
ZW1lbnRzLCBGb3JtTGVuZ3RoLCBGb3JtQWNjZXB0Q2hhcnNldCwKICAgICAgICAgICAgRm9ybVJl
c2V0LCBGb3JtVGFyZ2V0LCBGb3JtTmFtZSwgRm9ybU1ldGhvZCwgRm9ybVN1Ym1pdCwgU2VsZWN0
QWRkLAogICAgICAgICAgICBTZWxlY3RUYWJJbmRleCwgU2VsZWN0VmFsdWUsIFNlbGVjdFNlbGVj
dGVkSW5kZXgsIFNlbGVjdExlbmd0aCwKICAgICAgICAgICAgU2VsZWN0UmVtb3ZlLCBTZWxlY3RG
b3JtLCBTZWxlY3RCbHVyLCBTZWxlY3RUeXBlLCBTZWxlY3RPcHRpb25zLAogICAgICAgICAgICBT
ZWxlY3REaXNhYmxlZCwgU2VsZWN0TXVsdGlwbGUsIFNlbGVjdE5hbWUsIFNlbGVjdFNpemUsIFNl
bGVjdEZvY3VzLAotICAgICAgICAgICBPcHRHcm91cERpc2FibGVkLCBPcHRHcm91cExhYmVsLCBP
cHRpb25JbmRleCwgT3B0aW9uU2VsZWN0ZWQsCi0gICAgICAgICAgIE9wdGlvbkZvcm0sIE9wdGlv
blRleHQsIE9wdGlvbkRlZmF1bHRTZWxlY3RlZCwgT3B0aW9uRGlzYWJsZWQsCi0gICAgICAgICAg
IE9wdGlvbkxhYmVsLCBPcHRpb25WYWx1ZSwgSW5wdXRCbHVyLCBJbnB1dFJlYWRPbmx5LCBJbnB1
dEFjY2VwdCwKLSAgICAgICAgICAgSW5wdXRTaXplLCBJbnB1dERlZmF1bHRWYWx1ZSwgSW5wdXRU
YWJJbmRleCwgSW5wdXRWYWx1ZSwgSW5wdXRUeXBlLAotICAgICAgICAgICBJbnB1dEZvY3VzLCBJ
bnB1dE1heExlbmd0aCwgSW5wdXREZWZhdWx0Q2hlY2tlZCwgSW5wdXREaXNhYmxlZCwKLSAgICAg
ICAgICAgSW5wdXRDaGVja2VkLCBJbnB1dEluZGV0ZXJtaW5hdGUsIElucHV0Rm9ybSwgSW5wdXRB
Y2Nlc3NLZXksIElucHV0QWxpZ24sIElucHV0QWx0LAotICAgICAgICAgICBJbnB1dE5hbWUsIElu
cHV0U3JjLCBJbnB1dFVzZU1hcCwgSW5wdXRTZWxlY3QsIElucHV0Q2xpY2ssCi0gICAgICAgICAg
IElucHV0U2VsZWN0aW9uU3RhcnQsIElucHV0U2VsZWN0aW9uRW5kLCBJbnB1dFNldFNlbGVjdGlv
blJhbmdlLAotICAgICAgICAgICBUZXh0QXJlYUFjY2Vzc0tleSwgVGV4dEFyZWFOYW1lLCBUZXh0
QXJlYURlZmF1bHRWYWx1ZSwgVGV4dEFyZWFTZWxlY3QsIFRleHRBcmVhU2V0U2VsZWN0aW9uUmFu
Z2UsCi0gICAgICAgICAgIFRleHRBcmVhQ29scywgVGV4dEFyZWFEaXNhYmxlZCwgVGV4dEFyZWFG
b3JtLCBUZXh0QXJlYVR5cGUsCi0gICAgICAgICAgIFRleHRBcmVhVGFiSW5kZXgsIFRleHRBcmVh
UmVhZE9ubHksIFRleHRBcmVhUm93cywgVGV4dEFyZWFWYWx1ZSwKLSAgICAgICAgICAgVGV4dEFy
ZWFTZWxlY3Rpb25TdGFydCwgVGV4dEFyZWFTZWxlY3Rpb25FbmQsCi0gICAgICAgICAgIFRleHRB
cmVhQmx1ciwgVGV4dEFyZWFGb2N1cywgQnV0dG9uQmx1ciwgQnV0dG9uRm9jdXMsIEJ1dHRvbkZv
cm0sIEJ1dHRvblRhYkluZGV4LCBCdXR0b25OYW1lLAotICAgICAgICAgICBCdXR0b25EaXNhYmxl
ZCwgQnV0dG9uQWNjZXNzS2V5LCBCdXR0b25UeXBlLCBCdXR0b25WYWx1ZSwgTGFiZWxIdG1sRm9y
LAorICAgICAgICAgICBMYWJlbEh0bWxGb3IsCiAgICAgICAgICAgIExhYmVsRm9ybSwgTGFiZWxG
b2N1cywgTGFiZWxBY2Nlc3NLZXksIEZpZWxkU2V0Rm9ybSwgTGVnZW5kRm9ybSwgTGVnZW5kQWNj
ZXNzS2V5LAogICAgICAgICAgICBMZWdlbmRBbGlnbiwgTGVnZW5kRm9jdXMsIFVMaXN0VHlwZSwg
VUxpc3RDb21wYWN0LCBPTGlzdFN0YXJ0LCBPTGlzdENvbXBhY3QsCiAgICAgICAgICAgIE9MaXN0
VHlwZSwgRExpc3RDb21wYWN0LCBEaXJlY3RvcnlDb21wYWN0LCBNZW51Q29tcGFjdCwgTElUeXBl
LApAQCAtMzMyLDE3ICszMDQsNiBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICB2aXJ0dWFsIGJvb2wg
bWFzcXVlcmFkZUFzVW5kZWZpbmVkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICB9OwogICAK
LSAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBPcHRpb24gT2JqZWN0IC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwotCi0gIGNsYXNzIE9wdGlvbkNvbnN0cnVjdG9ySW1wIDogcHVibGljIERPTU9iamVj
dCB7Ci0gIHB1YmxpYzoKLSAgICBPcHRpb25Db25zdHJ1Y3RvckltcChFeGVjU3RhdGUgKmV4ZWMs
IFdlYkNvcmU6OkRvY3VtZW50ICpkKTsKLSAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NvbnN0
cnVjdCgpIGNvbnN0OwotICAgIHZpcnR1YWwgSlNPYmplY3QgKmNvbnN0cnVjdChFeGVjU3RhdGUg
KmV4ZWMsIGNvbnN0IExpc3QgJmFyZ3MpOwotICBwcml2YXRlOgotICAgIFJlZlB0cjxXZWJDb3Jl
OjpEb2N1bWVudD4gbV9kb2M7Ci0gIH07Ci0KICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBJbWFn
ZSBPYmplY3QgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKICAgY2xhc3MgSW1hZ2VDb25zdHJ1
Y3RvckltcCA6IHB1YmxpYyBET01PYmplY3QgewpJbmRleDogYmluZGluZ3MvanMvSlNIVE1MSW5w
dXRFbGVtZW50QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYmluZGluZ3MvanMvSlNIVE1MSW5wdXRF
bGVtZW50QmFzZS5jcHAJKHJldmlzaW9uIDApCisrKyBiaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVs
ZW1lbnRCYXNlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAqIEJvc3Rv
biwgTUEgMDIxMTEtMTMwNywgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJKU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmgiCisKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCisKKyNpbmNsdWRlICJKU0hUTUxJbnB1dEVsZW1lbnRCYXNlVGFibGUuY3BwIgorCit1
c2luZyBuYW1lc3BhY2UgS0pTOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8qCitAYmVnaW4g
SlNIVE1MSW5wdXRFbGVtZW50QmFzZVRhYmxlIDEKKyAgc2VsZWN0aW9uU3RhcnQgICAgICAgIFdl
YkNvcmU6OkpTSFRNTElucHV0RWxlbWVudEJhc2U6OlNlbGVjdGlvblN0YXJ0ICAgICAgICAgICAg
RG9udERlbGV0ZQorICBzZWxlY3Rpb25FbmQgICAgICAgICAgV2ViQ29yZTo6SlNIVE1MSW5wdXRF
bGVtZW50QmFzZTo6U2VsZWN0aW9uRW5kICAgICAgICAgICAgICBEb250RGVsZXRlCitAZW5kCitA
YmVnaW4gSlNIVE1MSW5wdXRFbGVtZW50QmFzZVByb3RvVGFibGUgMQorICBzZXRTZWxlY3Rpb25S
YW5nZSAgICAgV2ViQ29yZTo6SlNIVE1MSW5wdXRFbGVtZW50QmFzZTo6U2V0U2VsZWN0aW9uUmFu
Z2UgICAgICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDIKK0BlbmQKKyovCisKK0tKU19JTVBMRU1F
TlRfUFJPVE9GVU5DKEpTSFRNTElucHV0RWxlbWVudEJhc2VQcm90b0Z1bmMpCitLSlNfSU1QTEVN
RU5UX1BST1RPVFlQRSgiSlNIVE1MSW5wdXRFbGVtZW50QmFzZSIsIEpTSFRNTElucHV0RWxlbWVu
dEJhc2VQcm90bywgSlNIVE1MSW5wdXRFbGVtZW50QmFzZVByb3RvRnVuYykKKworSlNWYWx1ZSog
SlNIVE1MSW5wdXRFbGVtZW50QmFzZVByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCogdGhpc09iaiwgY29uc3QgTGlzdCYgYXJncykKK3sKKyAgICBIVE1M
SW5wdXRFbGVtZW50JiBpbnB1dCA9ICpzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oc3Rh
dGljX2Nhc3Q8SlNIVE1MSW5wdXRFbGVtZW50QmFzZSo+KHRoaXNPYmopLT5pbXBsKCkpOworICAg
IGlmIChpZCA9PSBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlOjpTZXRTZWxlY3Rpb25SYW5nZSkgewor
ICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShhcmdzWzBdLT50b0ludDMyKGV4ZWMpLCBh
cmdzWzFdLT50b0ludDMyKGV4ZWMpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cisg
ICAgfQorICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworfQorCitjb25zdCBDbGFzc0luZm8gSlNI
VE1MSW5wdXRFbGVtZW50QmFzZTo6aW5mbyA9IHsgIkpTSFRNTElucHV0RWxlbWVudEJhc2UiLCAm
S0pTOjpKU0hUTUxFbGVtZW50OjppbmZvLCAmSlNIVE1MSW5wdXRFbGVtZW50QmFzZVRhYmxlLCAw
IH07CisKK0pTSFRNTElucHV0RWxlbWVudEJhc2U6OkpTSFRNTElucHV0RWxlbWVudEJhc2UoRXhl
Y1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGUpCisgICAgOiBLSlM6
OkpTSFRNTEVsZW1lbnQoZXhlYywgZS5nZXQoKSkKK3sKKyAgICBzZXRQcm90b3R5cGUoSlNIVE1M
SW5wdXRFbGVtZW50QmFzZVByb3RvOjpzZWxmKGV4ZWMpKTsKK30KKworYm9vbCBKU0hUTUxJbnB1
dEVsZW1lbnRCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50ID0gKnN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihp
bXBsKCkpOworCisgICAgY29uc3QgSGFzaFRhYmxlKiB0YWJsZSA9IGNsYXNzSW5mbygpLT5wcm9w
SGFzaFRhYmxlOyAvLyBnZXQgdGhlIHJpZ2h0IGhhc2h0YWJsZQorICAgIGNvbnN0IEhhc2hFbnRy
eSogZW50cnkgPSBMb29rdXA6OmZpbmRFbnRyeSh0YWJsZSwgcHJvcGVydHlOYW1lKTsKKyAgICBp
ZiAoZW50cnkpIHsKKyAgICAgICAgLy8gZG9uJ3QgZXhwb3NlIHNlbGVjdGlvbiBwcm9wZXJ0aWVz
IGZvciBpbnB1dCB0eXBlcyB0aGF0IGNhbid0IGhhdmUgYSBzZWxlY3Rpb24KKyAgICAgICAgc3dp
dGNoIChlbnRyeS0+dmFsdWUpIHsKKyAgICAgICAgY2FzZSBTZXRTZWxlY3Rpb25SYW5nZToKKyAg
ICAgICAgY2FzZSBTZWxlY3Rpb25TdGFydDoKKyAgICAgICAgY2FzZSBTZWxlY3Rpb25FbmQ6Cisg
ICAgICAgICAgICBpZiAoIWVsZW1lbnQuY2FuSGF2ZVNlbGVjdGlvbigpKQorICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgaWYgKGVudHJ5LT5hdHRy
ICYgRnVuY3Rpb24pCisgICAgICAgICAgICAgICAgc2xvdC5zZXRTdGF0aWNFbnRyeSh0aGlzLCBl
bnRyeSwgc3RhdGljRnVuY3Rpb25HZXR0ZXI8SlNIVE1MSW5wdXRFbGVtZW50QmFzZVByb3RvRnVu
Yz4pOyAKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzbG90LnNldFN0YXRpY0Vu
dHJ5KHRoaXMsIGVudHJ5LCBzdGF0aWNWYWx1ZUdldHRlcjxKU0hUTUxJbnB1dEVsZW1lbnRCYXNl
Pik7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAg
ICAvLyBCYXNlIEpTSFRNTEVsZW1lbnQgc3R1ZmYgb3IgcGFyZW50IGNsYXNzIGZvcndhcmQsIGFz
IHVzdWFsCisgICAgcmV0dXJuIGdldFN0YXRpY1Byb3BlcnR5U2xvdDxKU0hUTUxJbnB1dEVsZW1l
bnRCYXNlUHJvdG9GdW5jLCBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlLCBLSlM6OkpTSFRNTEVsZW1l
bnQ+KGV4ZWMsICZKU0hUTUxJbnB1dEVsZW1lbnRCYXNlVGFibGUsIHRoaXMsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7Cit9CisKK30KSW5kZXg6IGJpbmRpbmdzL2pzL2tqc19kb21ub2RlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gYmluZGluZ3MvanMva2pzX2RvbW5vZGUuaAkocmV2aXNpb24gMTQ0MzQpCisrKyBi
aW5kaW5ncy9qcy9ranNfZG9tbm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxOCArMzUsMTgg
QEAgS0pTX0RFRklORV9QUk9UT1RZUEUoRE9NTm9kZVByb3RvKQogY2xhc3MgRE9NTm9kZSA6IHB1
YmxpYyBET01PYmplY3QgewogcHVibGljOgogICAgIHZpcnR1YWwgfkRPTU5vZGUoKTsKLSAgICB2
aXJ0dWFsIGJvb2wgdG9Cb29sZWFuKEV4ZWNTdGF0ZSAqKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlTbG90Jik7Ci0gICAgSlNWYWx1ZSAqZ2V0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUgKmV4
ZWMsIGludCB0b2tlbikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHRvQm9vbGVhbihFeGVjU3Rh
dGUqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBKU1ZhbHVlICpnZXRW
YWx1ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGludCB0b2tlbikgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIG1hcmsoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3Qg
SWRlbnRpZmllciAmcHJvcGVydHlOYW1lLCBKU1ZhbHVlICp2YWx1ZSwgaW50IGF0dHIgPSBOb25l
KTsKLSAgICB2b2lkIHB1dFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4s
IEpTVmFsdWUgKnZhbHVlLCBpbnQgYXR0cik7CisgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3Rh
dGUqLCBjb25zdCBJZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUsIEpTVmFsdWUqLCBpbnQgYXR0ciA9
IE5vbmUpOworICAgIHZvaWQgcHV0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUqLCBpbnQgdG9rZW4s
IEpTVmFsdWUqLCBpbnQgYXR0cik7CiAgICAgV2ViQ29yZTo6Tm9kZSAqaW1wbCgpIGNvbnN0IHsg
cmV0dXJuIG1faW1wbC5nZXQoKTsgfQogICAgIHZpcnR1YWwgY29uc3QgQ2xhc3NJbmZvKiBjbGFz
c0luZm8oKSBjb25zdCB7IHJldHVybiAmaW5mbzsgfQogICAgIHN0YXRpYyBjb25zdCBDbGFzc0lu
Zm8gaW5mbzsKICAgICAKLSAgICB2aXJ0dWFsIEpTVmFsdWUgKnRvUHJpbWl0aXZlKEV4ZWNTdGF0
ZSAqZXhlYywgSlNUeXBlIHByZWZlcnJlZCA9IFVuZGVmaW5lZFR5cGUpIGNvbnN0OwotICAgIHZp
cnR1YWwgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0OworICAgIHZpcnR1
YWwgSlNWYWx1ZSAqdG9QcmltaXRpdmUoRXhlY1N0YXRlKiwgSlNUeXBlIHByZWZlcnJlZCA9IFVu
ZGVmaW5lZFR5cGUpIGNvbnN0OworICAgIHZpcnR1YWwgVVN0cmluZyB0b1N0cmluZyhFeGVjU3Rh
dGUqKSBjb25zdDsKICAgICAKICAgICBlbnVtIHsgTm9kZU5hbWUsIE5vZGVWYWx1ZSwgTm9kZVR5
cGUsIFBhcmVudE5vZGUsIFBhcmVudEVsZW1lbnQsCiAgICAgICAgIENoaWxkTm9kZXMsIEZpcnN0
Q2hpbGQsIExhc3RDaGlsZCwgUHJldmlvdXNTaWJsaW5nLCBOZXh0U2libGluZywgSXRlbSwKQEAg
LTYzLDcgKzYzLDcgQEAgcHJpdmF0ZToKICAgICAvLyBEb24ndCB1c2UgdGhpcyBjbGFzcyBkaXJl
Y3RseSAtLSB1c2UgSlNOb2RlIGluc3RlYWQKICAgICBmcmllbmQgY2xhc3MgV2ViQ29yZTo6SlNO
b2RlOwogICAgIERPTU5vZGUoKTsKLSAgICBET01Ob2RlKEV4ZWNTdGF0ZSAqZXhlYywgV2ViQ29y
ZTo6Tm9kZSAqbik7CisgICAgRE9NTm9kZShFeGVjU3RhdGUqLCBXZWJDb3JlOjpOb2RlICpuKTsK
ICAgICBET01Ob2RlKFdlYkNvcmU6Ok5vZGUgKm4pOwogfTsKIApJbmRleDogYmluZGluZ3MvanMv
SlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBiaW5kaW5ncy9q
cy9KU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCShyZXZpc2lvbiAxNDQzNCkKKysrIGJp
bmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIwLDI0ICsyMCwzOSBAQAogI2luY2x1ZGUgIkpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9y
eS5oIgogCiAjaW5jbHVkZSAiSFRNTEJhc2VFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEJ1dHRv
bkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MTGlua0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTWV0YUVsZW1lbnQuaCIKKyNpbmNs
dWRlICJIVE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRleHRBcmVh
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIKKwogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgorCiAjaW5jbHVkZSAiSlNIVE1MQmFzZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJK
U0hUTUxCdXR0b25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MQ2FudmFzRWxlbWVudC5oIgog
I2luY2x1ZGUgIkpTSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiSlNIVE1MSW5wdXRFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MTGlua0VsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxN
ZXRhRWxlbWVudC5oIgorI2luY2x1ZGUgIkpTSFRNTE9wdEdyb3VwRWxlbWVudC5oIgorI2luY2x1
ZGUgIkpTSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxTdHlsZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJKU0hUTUxUZXh0QXJlYUVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxU
aXRsZUVsZW1lbnQuaCIKKwogI2luY2x1ZGUgImtqc19odG1sLmgiCiAKIHVzaW5nIG5hbWVzcGFj
ZSBLSlM7CiAKKy8vIEZJWE1FOiBFdmVudHVhbGx5IHRoaXMgZmlsZSBzaG91bGQgYmUgYXV0b2dl
bmVyYXRlZCwganVzdCBsaWtlIEhUTUxOYW1lcywgSFRNTEVsZW1lbnRGYWN0b3J5LCBldGMuCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKQEAgLTQ5
LDYgKzY0LDExIEBAIHN0YXRpYyBET01Ob2RlKiBjcmVhdGVCYXNlV3JhcHBlcihFeGVjU3QKICAg
ICByZXR1cm4gbmV3IEpTSFRNTEJhc2VFbGVtZW50KGV4ZWMsIHN0YXRpY19jYXN0PEhUTUxCYXNl
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKIH0KIAorc3RhdGljIERPTU5vZGUqIGNyZWF0ZUJ1
dHRvbldyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreworICAgIHJldHVybiBuZXcgSlNIVE1MQnV0dG9uRWxlbWVudChleGVjLCBzdGF0aWNf
Y2FzdDxIVE1MQnV0dG9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwogc3RhdGljIERP
TU5vZGUqIGNyZWF0ZUNhbnZhc1dyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQogewogICAgIHJldHVybiBuZXcgSlNIVE1MQ2FudmFzRWxlbWVu
dChleGVjLCBzdGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
QEAgLTY0LDE2ICs4NCwzNiBAQCBzdGF0aWMgRE9NTm9kZSogY3JlYXRlTGlua1dyYXBwZXIoRXhl
Y1N0CiAgICAgcmV0dXJuIG5ldyBKU0hUTUxMaW5rRWxlbWVudChleGVjLCBzdGF0aWNfY2FzdDxI
VE1MTGlua0VsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7CiB9CiAKK3N0YXRpYyBET01Ob2RlKiBj
cmVhdGVJbnB1dFdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgSlNIVE1MSW5wdXRFbGVtZW50KGV4ZWMsIHN0
YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKIHN0YXRp
YyBET01Ob2RlKiBjcmVhdGVNZXRhV3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCiB7CiAgICAgcmV0dXJuIG5ldyBKU0hUTUxNZXRhRWxlbWVu
dChleGVjLCBzdGF0aWNfY2FzdDxIVE1MTWV0YUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7CiB9
CiAKK3N0YXRpYyBET01Ob2RlKiBjcmVhdGVPcHRHcm91cFdyYXBwZXIoRXhlY1N0YXRlKiBleGVj
LCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgSlNI
VE1MT3B0R3JvdXBFbGVtZW50KGV4ZWMsIHN0YXRpY19jYXN0PEhUTUxPcHRHcm91cEVsZW1lbnQq
PihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBET01Ob2RlKiBjcmVhdGVPcHRpb25XcmFw
cGVyKEV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKK3sK
KyAgICByZXR1cm4gbmV3IEpTSFRNTE9wdGlvbkVsZW1lbnQoZXhlYywgc3RhdGljX2Nhc3Q8SFRN
TE9wdGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKIHN0YXRpYyBET01Ob2RlKiBj
cmVhdGVTdHlsZVdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50
PiBlbGVtZW50KQogewogICAgIHJldHVybiBuZXcgSlNIVE1MU3R5bGVFbGVtZW50KGV4ZWMsIHN0
YXRpY19jYXN0PEhUTUxTdHlsZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7CiB9CiAKK3N0YXRp
YyBET01Ob2RlKiBjcmVhdGVUZXh0QXJlYVdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgSlNIVE1MVGV4dEFy
ZWFFbGVtZW50KGV4ZWMsIHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihlbGVtZW50
LmdldCgpKSk7Cit9CisKIHN0YXRpYyBET01Ob2RlKiBjcmVhdGVUaXRsZVdyYXBwZXIoRXhlY1N0
YXRlKiBleGVjLCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQogewogICAgIHJldHVy
biBuZXcgSlNIVE1MVGl0bGVFbGVtZW50KGV4ZWMsIHN0YXRpY19jYXN0PEhUTUxUaXRsZUVsZW1l
bnQqPihlbGVtZW50LmdldCgpKSk7CkBAIC04NCwxMSArMTI0LDE2IEBAIERPTU5vZGUqIGNyZWF0
ZUpTV3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMKICAgICBzdGF0aWMgSGFzaE1hcDxXZWJDb3JlOjpB
dG9taWNTdHJpbmdJbXBsKiwgQ3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rpb24+IG1hcDsK
ICAgICBpZiAobWFwLmlzRW1wdHkoKSkgewogICAgICAgICBtYXAuc2V0KGJhc2VUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCBjcmVhdGVCYXNlV3JhcHBlcik7CisgICAgICAgIG1hcC5zZXQoYnV0dG9u
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQnV0dG9uV3JhcHBlcik7CiAgICAgICAgIG1h
cC5zZXQoY2FudmFzVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQ2FudmFzV3JhcHBlcik7
CiAgICAgICAgIG1hcC5zZXQoaGVhZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUhlYWRX
cmFwcGVyKTsKKyAgICAgICAgbWFwLnNldChpbnB1dFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNy
ZWF0ZUlucHV0V3JhcHBlcik7CiAgICAgICAgIG1hcC5zZXQobGlua1RhZy5sb2NhbE5hbWUoKS5p
bXBsKCksIGNyZWF0ZUxpbmtXcmFwcGVyKTsKICAgICAgICAgbWFwLnNldChtZXRhVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlTWV0YVdyYXBwZXIpOworICAgICAgICBtYXAuc2V0KG9wdGdy
b3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT3B0R3JvdXBXcmFwcGVyKTsKKyAgICAg
ICAgbWFwLnNldChvcHRpb25UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPcHRpb25XcmFw
cGVyKTsKICAgICAgICAgbWFwLnNldChzdHlsZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0
ZVN0eWxlV3JhcHBlcik7CisgICAgICAgIG1hcC5zZXQodGV4dGFyZWFUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCBjcmVhdGVUZXh0QXJlYVdyYXBwZXIpOwogICAgICAgICBtYXAuc2V0KHRpdGxlVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGl0bGVXcmFwcGVyKTsKICAgICB9CiAgICAgQ3Jl
YXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rpb24gZiA9IG1hcC5nZXQoZWxlbWVudC0+bG9jYWxO
YW1lKCkuaW1wbCgpKTsKSW5kZXg6IGJpbmRpbmdzL2pzL0pTSFRNTE9wdGlvbkVsZW1lbnRDb25z
dHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uRWxlbWVu
dENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMCkKKysrIGJpbmRpbmdzL2pzL0pTSFRNTE9wdGlv
bkVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAs
CisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmgiCisKKyNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCisjaW5jbHVk
ZSAiSlNIVE1MT3B0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKwordXNpbmcgbmFt
ZXNwYWNlIEtKUzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitKU0hUTUxPcHRpb25FbGVtZW50
Q29uc3RydWN0b3I6OkpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4
ZWMsIERvY3VtZW50KiBkKQorICAgIDogbV9kb2MoZCkKK3sKKyAgICBwdXQoZXhlYywgbGVuZ3Ro
UHJvcGVydHlOYW1lLCBqc051bWJlcig0KSwgUmVhZE9ubHl8RG9udERlbGV0ZXxEb250RW51bSk7
Cit9CisKK2Jvb2wgSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yOjppbXBsZW1lbnRzQ29u
c3RydWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworSlNPYmplY3QqIEpTSFRN
TE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgTGlzdCYgYXJncykKK3sKKyAgICBpbnQgZXhjZXB0aW9uID0gMDsKKyAgICBSZWZQdHI8RWxl
bWVudD4gZWwobV9kb2MtPmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIsIGV4Y2VwdGlvbikpOworICAg
IEhUTUxPcHRpb25FbGVtZW50KiBvcHQgPSAwOworICAgIGlmIChlbCkgeworICAgICAgICBvcHQg
PSBzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KGVsLmdldCgpKTsKKyAgICAgICAgaW50
IHN6ID0gYXJncy5zaXplKCk7CisgICAgICAgIFJlZlB0cjxUZXh0PiB0ZXh0ID0gbV9kb2MtPmNy
ZWF0ZVRleHROb2RlKCIiKTsKKyAgICAgICAgb3B0LT5hcHBlbmRDaGlsZCh0ZXh0LCBleGNlcHRp
b24pOworICAgICAgICBpZiAoZXhjZXB0aW9uID09IDAgJiYgc3ogPiAwKQorICAgICAgICAgICAg
dGV4dC0+c2V0RGF0YShhcmdzWzBdLT50b1N0cmluZyhleGVjKSwgZXhjZXB0aW9uKTsKKyAgICAg
ICAgaWYgKGV4Y2VwdGlvbiA9PSAwICYmIHN6ID4gMSkKKyAgICAgICAgICAgIG9wdC0+c2V0VmFs
dWUoYXJnc1sxXS0+dG9TdHJpbmcoZXhlYykpOworICAgICAgICBpZiAoZXhjZXB0aW9uID09IDAg
JiYgc3ogPiAyKQorICAgICAgICAgICAgb3B0LT5zZXREZWZhdWx0U2VsZWN0ZWQoYXJnc1syXS0+
dG9Cb29sZWFuKGV4ZWMpKTsKKyAgICAgICAgaWYgKGV4Y2VwdGlvbiA9PSAwICYmIHN6ID4gMykK
KyAgICAgICAgICAgIG9wdC0+c2V0U2VsZWN0ZWQoYXJnc1szXS0+dG9Cb29sZWFuKGV4ZWMpKTsK
KyAgICB9CisKKyAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZXhjZXB0aW9uKTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8SlNPYmplY3QqPih0b0pTKGV4ZWMsIG9wdCkpOworfQorCit9CkluZGV4
OiBiaW5kaW5ncy9qcy9ranNfaHRtbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYmluZGluZ3MvanMva2pz
X2h0bWwuY3BwCShyZXZpc2lvbiAxNDQzNCkKKysrIGJpbmRpbmdzL2pzL2tqc19odG1sLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgsMTIgKzI4LDEwIEBACiAjaW5jbHVkZSAiSFRNTEFuY2hvckVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQXBwbGV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxB
cmVhRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxCYXNlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxCYXNlRm9udEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQmxvY2txdW90ZUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MQm9keUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQlJFbGVtZW50Lmgi
Ci0jaW5jbHVkZSAiSFRNTEJ1dHRvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRGlyZWN0b3J5
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTERM
aXN0RWxlbWVudC5oIgpAQCAtNDMsNyArNDEsNiBAQAogI2luY2x1ZGUgIkhUTUxGb250RWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZVNl
dEVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MSGVhZEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
SGVhZGluZ0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSFJFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTEh0bWxFbGVtZW50LmgiCkBAIC01MywxNSArNTAsMTIgQEAKICNpbmNsdWRlICJIVE1MTGFi
ZWxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTExlZ2VuZEVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MTElFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTE1hcEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTWVudUVsZW1lbnQuaCIKLSNpbmNsdWRl
ICJIVE1MTWV0YUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTW9kRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTE9MaXN0RWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxPcHRHcm91cEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxPcHRpb25zQ29s
bGVjdGlvbi5oIgogI2luY2x1ZGUgIkhUTUxQYXJhZ3JhcGhFbGVtZW50LmgiCkBAIC02OSwxNSAr
NjMsMTIgQEAKICNpbmNsdWRlICJIVE1MUHJlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTY3Jp
cHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKLSNpbmNsdWRlICJI
VE1MU3R5bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MVGFibGVDZWxsRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUYWJsZUNv
bEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGFibGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TFRhYmxlUm93RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Lmgi
Ci0jaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxUaXRsZUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUXVvdGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFVM
aXN0RWxlbWVudC5oIgogI2luY2x1ZGUgIk5hbWVOb2RlTGlzdC5oIgpAQCAtNDY2LDcgKzQ1Nyw2
IEBAIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpiYXNlRm9udF8KIGNvbnN0IENsYXNz
SW5mbyBKU0hUTUxFbGVtZW50OjpibG9ja1F1b3RlX2luZm8gPSB7ICJIVE1MQmxvY2tRdW90ZUVs
ZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxCbG9ja1F1b3RlRWxlbWVudFRhYmxl
LCAwIH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6Ym9keV9pbmZvID0geyAiSFRN
TEJvZHlFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MQm9keUVsZW1lbnRUYWJs
ZSwgMCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OmJyX2luZm8gPSB7ICJIVE1M
QlJFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MQlJFbGVtZW50VGFibGUsIDAg
fTsKLWNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpidXR0b25faW5mbyA9IHsgIkhUTUxC
dXR0b25FbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MQnV0dG9uRWxlbWVudFRh
YmxlLCAwIH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6Y2FwdGlvbl9pbmZvID0g
eyAiSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxU
YWJsZUNhcHRpb25FbGVtZW50VGFibGUsIDAgfTsKIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVt
ZW50Ojpjb2xfaW5mbyA9IHsgIkhUTUxUYWJsZUNvbEVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6
aW5mbywgJkhUTUxUYWJsZUNvbEVsZW1lbnRUYWJsZSwgMCB9OwogY29uc3QgQ2xhc3NJbmZvIEpT
SFRNTEVsZW1lbnQ6OmRpcl9pbmZvID0geyAiSFRNTERpcmVjdG9yeUVsZW1lbnQiLCAmSlNIVE1M
RWxlbWVudDo6aW5mbywgJkhUTUxEaXJlY3RvcnlFbGVtZW50VGFibGUsIDAgfTsKQEAgLTQ4NCw3
ICs0NzQsNiBAQCBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6aHRtbF9pbmZvCiBjb25z
dCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6aUZyYW1lX2luZm8gPSB7ICJIVE1MSUZyYW1lRWxl
bWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTElGcmFtZUVsZW1lbnRUYWJsZSwgMCB9
OwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OmltZ19pbmZvID0geyAiSFRNTEltYWdl
RWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTEltYWdlRWxlbWVudFRhYmxlLCAw
IH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6aW5mbyA9IHsgIkhUTUxFbGVtZW50
IiwgJkpTRWxlbWVudDo6aW5mbywgJkhUTUxFbGVtZW50VGFibGUsIDAgfTsKLWNvbnN0IENsYXNz
SW5mbyBKU0hUTUxFbGVtZW50OjppbnB1dF9pbmZvID0geyAiSFRNTElucHV0RWxlbWVudCIsICZK
U0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTElucHV0RWxlbWVudFRhYmxlLCAwIH07CiBjb25zdCBD
bGFzc0luZm8gSlNIVE1MRWxlbWVudDo6aXNJbmRleF9pbmZvID0geyAiSFRNTElzSW5kZXhFbGVt
ZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MSXNJbmRleEVsZW1lbnRUYWJsZSwgMCB9
OwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OmxhYmVsX2luZm8gPSB7ICJIVE1MTGFi
ZWxFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MTGFiZWxFbGVtZW50VGFibGUs
IDAgfTsKIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpsZWdlbmRfaW5mbyA9IHsgIkhU
TUxMZWdlbmRFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MTGVnZW5kRWxlbWVu
dFRhYmxlLCAwIH07CkBAIC00OTUsOCArNDg0LDYgQEAgY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVs
ZW1lbnQ6Om1lbnVfaW5mbwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6Om1vZF9pbmZv
ID0geyAiSFRNTE1vZEVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxNb2RFbGVt
ZW50VGFibGUsIDAgfTsKIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpvYmplY3RfaW5m
byA9IHsgIkhUTUxPYmplY3RFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MT2Jq
ZWN0RWxlbWVudFRhYmxlLCAwIH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6b2xf
aW5mbyA9IHsgIkhUTUxPTGlzdEVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxP
TGlzdEVsZW1lbnRUYWJsZSwgMCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6Om9w
dEdyb3VwX2luZm8gPSB7ICJIVE1MT3B0R3JvdXBFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6Omlu
Zm8sICZIVE1MT3B0R3JvdXBFbGVtZW50VGFibGUsIDAgfTsKLWNvbnN0IENsYXNzSW5mbyBKU0hU
TUxFbGVtZW50OjpvcHRpb25faW5mbyA9IHsgIkhUTUxPcHRpb25FbGVtZW50IiwgJkpTSFRNTEVs
ZW1lbnQ6OmluZm8sICZIVE1MT3B0aW9uRWxlbWVudFRhYmxlLCAwIH07CiBjb25zdCBDbGFzc0lu
Zm8gSlNIVE1MRWxlbWVudDo6cF9pbmZvID0geyAiSFRNTFBhcmFncmFwaEVsZW1lbnQiLCAmSlNI
VE1MRWxlbWVudDo6aW5mbywgJkhUTUxQYXJhZ3JhcGhFbGVtZW50VGFibGUsIDAgfTsKIGNvbnN0
IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpwYXJhbV9pbmZvID0geyAiSFRNTFBhcmFtRWxlbWVu
dCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTFBhcmFtRWxlbWVudFRhYmxlLCAwIH07CiBj
b25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6cHJlX2luZm8gPSB7ICJIVE1MUHJlRWxlbWVu
dCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTFByZUVsZW1lbnRUYWJsZSwgMCB9OwpAQCAt
NTA2LDcgKzQ5Myw2IEBAIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpzZWxlY3RfaW4K
IGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50Ojp0YWJsZV9pbmZvID0geyAiSFRNTFRhYmxl
RWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTFRhYmxlRWxlbWVudFRhYmxlLCAw
IH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6dGFibGVjZWxsX2luZm8gPSB7ICJI
VE1MVGFibGVDZWxsRWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTFRhYmxlQ2Vs
bEVsZW1lbnRUYWJsZSwgMCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OnRhYmxl
c2VjdGlvbl9pbmZvID0geyAiSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQiLCAmSlNIVE1MRWxlbWVu
dDo6aW5mbywgJkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50VGFibGUsIDAgfTsKLWNvbnN0IENsYXNz
SW5mbyBKU0hUTUxFbGVtZW50Ojp0ZXh0QXJlYV9pbmZvID0geyAiSFRNTFRleHRBcmVhRWxlbWVu
dCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTFRleHRBcmVhRWxlbWVudFRhYmxlLCAwIH07
CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6dHJfaW5mbyA9IHsgIkhUTUxUYWJsZVJv
d0VsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxUYWJsZVJvd0VsZW1lbnRUYWJs
ZSwgMCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OnVsX2luZm8gPSB7ICJIVE1M
VUxpc3RFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MVUxpc3RFbGVtZW50VGFi
bGUsIDAgfTsKIApAQCAtNTIwLDcgKzUwNiw2IEBAIGNvbnN0IENsYXNzSW5mbyogSlNIVE1MRWxl
bWVudDo6Y2xhc3NJbmYKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldChibG9ja3F1b3RlVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgJmJsb2NrUXVvdGVfaW5mbyk7CiAgICAgICAgIGNsYXNzSW5mb01h
cC5zZXQoYm9keVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZib2R5X2luZm8pOwogICAgICAgICBj
bGFzc0luZm9NYXAuc2V0KGJyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmJyX2luZm8pOwotICAg
ICAgICBjbGFzc0luZm9NYXAuc2V0KGJ1dHRvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZidXR0
b25faW5mbyk7CiAgICAgICAgIGNsYXNzSW5mb01hcC5zZXQoY2FwdGlvblRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksICZjYXB0aW9uX2luZm8pOwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KGNvbFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksICZjb2xfaW5mbyk7CiAgICAgICAgIGNsYXNzSW5mb01hcC5z
ZXQoY29sZ3JvdXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmY29sX2luZm8pOwpAQCAtNTQ0LDcg
KzUyOSw2IEBAIGNvbnN0IENsYXNzSW5mbyogSlNIVE1MRWxlbWVudDo6Y2xhc3NJbmYKICAgICAg
ICAgY2xhc3NJbmZvTWFwLnNldChodG1sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmh0bWxfaW5m
byk7CiAgICAgICAgIGNsYXNzSW5mb01hcC5zZXQoaWZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgJmlGcmFtZV9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldChpbWdUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCAmaW1nX2luZm8pOwotICAgICAgICBjbGFzc0luZm9NYXAuc2V0KGlucHV0
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmlucHV0X2luZm8pOwogICAgICAgICBjbGFzc0luZm9N
YXAuc2V0KGluc1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZtb2RfaW5mbyk7CiAgICAgICAgIGNs
YXNzSW5mb01hcC5zZXQoaXNpbmRleFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZpc0luZGV4X2lu
Zm8pOwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KGxhYmVsVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgJmxhYmVsX2luZm8pOwpAQCAtNTU2LDggKzU0MCw2IEBAIGNvbnN0IENsYXNzSW5mbyogSlNI
VE1MRWxlbWVudDo6Y2xhc3NJbmYKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldChtZW51VGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgJm1lbnVfaW5mbyk7CiAgICAgICAgIGNsYXNzSW5mb01hcC5zZXQo
b2JqZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJm9iamVjdF9pbmZvKTsKICAgICAgICAgY2xh
c3NJbmZvTWFwLnNldChvbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZvbF9pbmZvKTsKLSAgICAg
ICAgY2xhc3NJbmZvTWFwLnNldChvcHRncm91cFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZvcHRH
cm91cF9pbmZvKTsKLSAgICAgICAgY2xhc3NJbmZvTWFwLnNldChvcHRpb25UYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCAmb3B0aW9uX2luZm8pOwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KHBUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCAmcF9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldChw
YXJhbVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZwYXJhbV9pbmZvKTsKICAgICAgICAgY2xhc3NJ
bmZvTWFwLnNldChwcmVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmcHJlX2luZm8pOwpAQCAtNTY3
LDcgKzU0OSw2IEBAIGNvbnN0IENsYXNzSW5mbyogSlNIVE1MRWxlbWVudDo6Y2xhc3NJbmYKICAg
ICAgICAgY2xhc3NJbmZvTWFwLnNldCh0YWJsZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZ0YWJs
ZV9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldCh0Ym9keVRhZy5sb2NhbE5hbWUoKS5p
bXBsKCksICZ0YWJsZXNlY3Rpb25faW5mbyk7CiAgICAgICAgIGNsYXNzSW5mb01hcC5zZXQodGRU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmdGFibGVjZWxsX2luZm8pOwotICAgICAgICBjbGFzc0lu
Zm9NYXAuc2V0KHRleHRhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJnRleHRBcmVhX2luZm8p
OwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KHRmb290VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
JnRhYmxlc2VjdGlvbl9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldCh0aFRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksICZ0YWJsZWNlbGxfaW5mbyk7CiAgICAgICAgIGNsYXNzSW5mb01hcC5z
ZXQodGhlYWRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmdGFibGVzZWN0aW9uX2luZm8pOwpAQCAt
NTg4LDExICs1NjksNiBAQCBjb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMgSlNIVE1MRWxl
CiBjb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMgSlNIVE1MRWxlbWVudDo6Ym9keV9hY2Nl
c3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50Ojpib2R5R2V0dGVyLCAmSlNIVE1MRWxlbWVudDo6Ym9k
eVNldHRlciB9OwogY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRNTEVsZW1lbnQ6
OmZvcm1fYWNjZXNzb3JzID0geyAmSlNIVE1MRWxlbWVudDo6Zm9ybUdldHRlciwgJkpTSFRNTEVs
ZW1lbnQ6OmZvcm1TZXR0ZXIgfTsKIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyBKU0hU
TUxFbGVtZW50OjpzZWxlY3RfYWNjZXNzb3JzID0geyAmSlNIVE1MRWxlbWVudDo6c2VsZWN0R2V0
dGVyLCAmSlNIVE1MRWxlbWVudDo6c2VsZWN0U2V0dGVyIH07Ci1jb25zdCBKU0hUTUxFbGVtZW50
OjpBY2Nlc3NvcnMgSlNIVE1MRWxlbWVudDo6b3B0R3JvdXBfYWNjZXNzb3JzID0geyAmSlNIVE1M
RWxlbWVudDo6b3B0R3JvdXBHZXR0ZXIsICZKU0hUTUxFbGVtZW50OjpvcHRHcm91cFNldHRlciB9
OwotY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRNTEVsZW1lbnQ6Om9wdGlvbl9h
Y2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50OjpvcHRpb25HZXR0ZXIsICZKU0hUTUxFbGVtZW50
OjpvcHRpb25TZXR0ZXIgfTsKLWNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyBKU0hUTUxF
bGVtZW50OjppbnB1dF9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50OjppbnB1dEdldHRlciwg
JkpTSFRNTEVsZW1lbnQ6OmlucHV0U2V0dGVyIH07Ci1jb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nl
c3NvcnMgSlNIVE1MRWxlbWVudDo6dGV4dEFyZWFfYWNjZXNzb3JzID0geyAmSlNIVE1MRWxlbWVu
dDo6dGV4dEFyZWFHZXR0ZXIsICZKU0hUTUxFbGVtZW50Ojp0ZXh0QXJlYVNldHRlciB9OwotY29u
c3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRNTEVsZW1lbnQ6OmJ1dHRvbl9hY2Nlc3Nv
cnMgPSB7ICZKU0hUTUxFbGVtZW50OjpidXR0b25HZXR0ZXIsICZKU0hUTUxFbGVtZW50OjpidXR0
b25TZXR0ZXIgfTsKIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyBKU0hUTUxFbGVtZW50
OjpsYWJlbF9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50OjpsYWJlbEdldHRlciwgJkpTSFRN
TEVsZW1lbnQ6OmxhYmVsU2V0dGVyIH07CiBjb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMg
SlNIVE1MRWxlbWVudDo6ZmllbGRTZXRfYWNjZXNzb3JzID0geyAmSlNIVE1MRWxlbWVudDo6Zmll
bGRTZXRHZXR0ZXIsICZKU0hUTUxFbGVtZW50OjpmaWVsZFNldFNldHRlciB9OwogY29uc3QgSlNI
VE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRNTEVsZW1lbnQ6OmxlZ2VuZF9hY2Nlc3NvcnMgPSB7
ICZKU0hUTUxFbGVtZW50OjpsZWdlbmRHZXR0ZXIsICZKU0hUTUxFbGVtZW50OjpsZWdlbmRTZXR0
ZXIgfTsKQEAgLTY0NCw3ICs2MjAsNiBAQCBjb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMq
IEpTSFRNTEVsCiAgICAgICAgIGFjY2Vzc29yTWFwLmFkZChibG9ja3F1b3RlVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgJmJsb2NrUXVvdGVfYWNjZXNzb3JzKTsgCiAgICAgICAgIGFjY2Vzc29yTWFw
LmFkZChib2R5VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmJvZHlfYWNjZXNzb3JzKTsKICAgICAg
ICAgYWNjZXNzb3JNYXAuYWRkKGJyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmJyX2FjY2Vzc29y
cyk7Ci0gICAgICAgIGFjY2Vzc29yTWFwLmFkZChidXR0b25UYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCAmYnV0dG9uX2FjY2Vzc29ycyk7CiAgICAgICAgIGFjY2Vzc29yTWFwLmFkZChjYXB0aW9uVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgJmNhcHRpb25fYWNjZXNzb3JzKTsKICAgICAgICAgYWNjZXNz
b3JNYXAuYWRkKGNvbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZjb2xfYWNjZXNzb3JzKTsKICAg
ICAgICAgYWNjZXNzb3JNYXAuYWRkKGNvbGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmNv
bF9hY2Nlc3NvcnMpOwpAQCAtNjY4LDcgKzY0Myw2IEBAIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFj
Y2Vzc29ycyogSlNIVE1MRWwKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKGh0bWxUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCAmaHRtbF9hY2Nlc3NvcnMpOwogICAgICAgICBhY2Nlc3Nvck1hcC5hZGQo
aWZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmlGcmFtZV9hY2Nlc3NvcnMpOwogICAgICAg
ICBhY2Nlc3Nvck1hcC5hZGQoaW1nVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmltZ19hY2Nlc3Nv
cnMpOwotICAgICAgICBhY2Nlc3Nvck1hcC5hZGQoaW5wdXRUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCAmaW5wdXRfYWNjZXNzb3JzKTsKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKGluc1RhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksICZtb2RfYWNjZXNzb3JzKTsKICAgICAgICAgYWNjZXNzb3JNYXAuYWRk
KGlzaW5kZXhUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmaXNJbmRleF9hY2Nlc3NvcnMpOwogICAg
ICAgICBhY2Nlc3Nvck1hcC5hZGQobGFiZWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmbGFiZWxf
YWNjZXNzb3JzKTsKQEAgLTY4MCw4ICs2NTQsNiBAQCBjb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nl
c3NvcnMqIEpTSFRNTEVsCiAgICAgICAgIGFjY2Vzc29yTWFwLmFkZChtZW51VGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgJm1lbnVfYWNjZXNzb3JzKTsKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKG9i
amVjdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZvYmplY3RfYWNjZXNzb3JzKTsKICAgICAgICAg
YWNjZXNzb3JNYXAuYWRkKG9sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJm9sX2FjY2Vzc29ycyk7
Ci0gICAgICAgIGFjY2Vzc29yTWFwLmFkZChvcHRpb25UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAm
b3B0aW9uX2FjY2Vzc29ycyk7Ci0gICAgICAgIGFjY2Vzc29yTWFwLmFkZChvcHRncm91cFRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksICZvcHRHcm91cF9hY2Nlc3NvcnMpOwogICAgICAgICBhY2Nlc3Nv
ck1hcC5hZGQocFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZwX2FjY2Vzc29ycyk7CiAgICAgICAg
IGFjY2Vzc29yTWFwLmFkZChwYXJhbVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZwYXJhbV9hY2Nl
c3NvcnMpOwogICAgICAgICBhY2Nlc3Nvck1hcC5hZGQocHJlVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgJnByZV9hY2Nlc3NvcnMpOwpAQCAtNjkxLDcgKzY2Myw2IEBAIGNvbnN0IEpTSFRNTEVsZW1l
bnQ6OkFjY2Vzc29ycyogSlNIVE1MRWwKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKHRhYmxlVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgJnRhYmxlX2FjY2Vzc29ycyk7CiAgICAgICAgIGFjY2Vzc29y
TWFwLmFkZCh0Ym9keVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZ0YWJsZXNlY3Rpb25fYWNjZXNz
b3JzKTsKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKHRkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
JnRhYmxlY2VsbF9hY2Nlc3NvcnMpOwotICAgICAgICBhY2Nlc3Nvck1hcC5hZGQodGV4dGFyZWFU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmdGV4dEFyZWFfYWNjZXNzb3JzKTsKICAgICAgICAgYWNj
ZXNzb3JNYXAuYWRkKHRoVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJnRhYmxlY2VsbF9hY2Nlc3Nv
cnMpOwogICAgICAgICBhY2Nlc3Nvck1hcC5hZGQodGhlYWRUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCAmdGFibGVzZWN0aW9uX2FjY2Vzc29ycyk7CiAgICAgICAgIGFjY2Vzc29yTWFwLmFkZCh0Zm9v
dFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZ0YWJsZXNlY3Rpb25fYWNjZXNzb3JzKTsKQEAgLTcy
Nyw0NCArNjk4LDEwIEBAIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyogSlNIVE1MRWwK
IEBiZWdpbiBIVE1MSHRtbEVsZW1lbnRUYWJsZSAxCiAgIHZlcnNpb24gICAgICAgS0pTOjpKU0hU
TUxFbGVtZW50OjpIdG1sVmVyc2lvbiAgIERvbnREZWxldGUKIEBlbmQKLUBiZWdpbiBIVE1MSGVh
ZEVsZW1lbnRUYWJsZSAxCi0gIHByb2ZpbGUgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpIZWFk
UHJvZmlsZSAgIERvbnREZWxldGUKLUBlbmQKLUBiZWdpbiBIVE1MTGlua0VsZW1lbnRUYWJsZSAx
MQotICBkaXNhYmxlZCAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6TGlua0Rpc2FibGVkICBEb250
RGVsZXRlCi0gIGNoYXJzZXQgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpMaW5rQ2hhcnNldCAg
IERvbnREZWxldGUKLSAgaHJlZiAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkxpbmtIcmVm
ICAgICAgRG9udERlbGV0ZQotICBocmVmbGFuZyAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6TGlu
a0hyZWZMYW5nICBEb250RGVsZXRlCi0gIG1lZGlhICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50
OjpMaW5rTWVkaWEgICAgIERvbnREZWxldGUKLSAgcmVsICAgICAgICAgICBLSlM6OkpTSFRNTEVs
ZW1lbnQ6OkxpbmtSZWwgICAgICAgRG9udERlbGV0ZQotICByZXYgICAgICAgICAgIEtKUzo6SlNI
VE1MRWxlbWVudDo6TGlua1JldiAgICAgICBEb250RGVsZXRlCi0gIHRhcmdldCAgICAgICAgS0pT
OjpKU0hUTUxFbGVtZW50OjpMaW5rVGFyZ2V0ICAgIERvbnREZWxldGUKLSAgdHlwZSAgICAgICAg
ICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkxpbmtUeXBlICAgICAgRG9udERlbGV0ZQotICBzaGVldCAg
ICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6TGlua1NoZWV0ICAgICBEb250RGVsZXRlfFJlYWRP
bmx5Ci1AZW5kCi1AYmVnaW4gSFRNTFRpdGxlRWxlbWVudFRhYmxlIDEKLSAgdGV4dCAgICAgICAg
ICBLSlM6OkpTSFRNTEVsZW1lbnQ6OlRpdGxlVGV4dCAgICAgRG9udERlbGV0ZQotQGVuZAotQGJl
Z2luIEhUTUxNZXRhRWxlbWVudFRhYmxlIDQKLSAgY29udGVudCAgICAgICBLSlM6OkpTSFRNTEVs
ZW1lbnQ6Ok1ldGFDb250ZW50ICAgRG9udERlbGV0ZQotICBodHRwRXF1aXYgICAgIEtKUzo6SlNI
VE1MRWxlbWVudDo6TWV0YUh0dHBFcXVpdiBEb250RGVsZXRlCi0gIG5hbWUgICAgICAgICAgS0pT
OjpKU0hUTUxFbGVtZW50OjpNZXRhTmFtZSAgICAgIERvbnREZWxldGUKLSAgc2NoZW1lICAgICAg
ICBLSlM6OkpTSFRNTEVsZW1lbnQ6Ok1ldGFTY2hlbWUgICAgRG9udERlbGV0ZQotQGVuZAotQGJl
Z2luIEhUTUxCYXNlRWxlbWVudFRhYmxlIDIKLSAgaHJlZiAgICAgICAgICBLSlM6OkpTSFRNTEVs
ZW1lbnQ6OkJhc2VIcmVmICAgICAgRG9udERlbGV0ZQotICB0YXJnZXQgICAgICAgIEtKUzo6SlNI
VE1MRWxlbWVudDo6QmFzZVRhcmdldCAgICBEb250RGVsZXRlCi1AZW5kCiBAYmVnaW4gSFRNTElz
SW5kZXhFbGVtZW50VGFibGUgMgogICBmb3JtICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6
SXNJbmRleEZvcm0gICBEb250RGVsZXRlfFJlYWRPbmx5CiAgIHByb21wdCAgICAgICAgS0pTOjpK
U0hUTUxFbGVtZW50OjpJc0luZGV4UHJvbXB0IERvbnREZWxldGUKIEBlbmQKLUBiZWdpbiBIVE1M
U3R5bGVFbGVtZW50VGFibGUgNAotICBkaXNhYmxlZCAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6
U3R5bGVEaXNhYmxlZCBEb250RGVsZXRlCi0gIG1lZGlhICAgICAgICAgS0pTOjpKU0hUTUxFbGVt
ZW50OjpTdHlsZU1lZGlhICAgIERvbnREZWxldGUKLSAgdHlwZSAgICAgICAgICBLSlM6OkpTSFRN
TEVsZW1lbnQ6OlN0eWxlVHlwZSAgICAgRG9udERlbGV0ZQotICBzaGVldCAgICAgICAgIEtKUzo6
SlNIVE1MRWxlbWVudDo6U3R5bGVTaGVldCAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci1AZW5kCiBA
YmVnaW4gSFRNTEJvZHlFbGVtZW50VGFibGUgMTAKICAgYUxpbmsgICAgICAgICBLSlM6OkpTSFRN
TEVsZW1lbnQ6OkJvZHlBTGluayAgICAgRG9udERlbGV0ZQogICBiYWNrZ3JvdW5kICAgIEtKUzo6
SlNIVE1MRWxlbWVudDo6Qm9keUJhY2tncm91bmQgICAgICAgIERvbnREZWxldGUKQEAgLTgwOCw3
OCArNzQ1LDYgQEAgY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzKiBKU0hUTUxFbAogICBi
bHVyICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6U2VsZWN0Qmx1ciAgICBEb250RGVsZXRl
fEZ1bmN0aW9uIDAKICAgZm9jdXMgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OlNlbGVjdEZv
Y3VzICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCiBAZW5kCi1AYmVnaW4gSFRNTE9wdEdyb3VwRWxl
bWVudFRhYmxlIDIKLSAgZGlzYWJsZWQgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6Ok9wdEdyb3Vw
RGlzYWJsZWQgICAgICBEb250RGVsZXRlCi0gIGxhYmVsICAgICAgICAgS0pTOjpKU0hUTUxFbGVt
ZW50OjpPcHRHcm91cExhYmVsICAgICAgICAgRG9udERlbGV0ZQotQGVuZAotQGJlZ2luIEhUTUxP
cHRpb25FbGVtZW50VGFibGUgOAotICBmb3JtICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6
T3B0aW9uRm9ybSAgICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgZGVmYXVsdFNlbGVj
dGVkIEtKUzo6SlNIVE1MRWxlbWVudDo6T3B0aW9uRGVmYXVsdFNlbGVjdGVkICAgICAgIERvbnRE
ZWxldGUKLSAgdGV4dCAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6Ok9wdGlvblRleHQgICAg
ICAgICAgICBEb250RGVsZXRlCi0gIGluZGV4ICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpP
cHRpb25JbmRleCAgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICBkaXNhYmxlZCAgICAg
IEtKUzo6SlNIVE1MRWxlbWVudDo6T3B0aW9uRGlzYWJsZWQgICAgICAgIERvbnREZWxldGUKLSAg
bGFiZWwgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6Ok9wdGlvbkxhYmVsICAgICAgICAgICBE
b250RGVsZXRlCi0gIHNlbGVjdGVkICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPcHRpb25TZWxl
Y3RlZCAgICAgICAgRG9udERlbGV0ZQotICB2YWx1ZSAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVu
dDo6T3B0aW9uVmFsdWUgICAgICAgICAgIERvbnREZWxldGUKLUBlbmQKLUBiZWdpbiBIVE1MSW5w
dXRFbGVtZW50VGFibGUgMjQKLSAgZGVmYXVsdFZhbHVlICBLSlM6OkpTSFRNTEVsZW1lbnQ6Oklu
cHV0RGVmYXVsdFZhbHVlICAgICBEb250RGVsZXRlCi0gIGRlZmF1bHRDaGVja2VkIEtKUzo6SlNI
VE1MRWxlbWVudDo6SW5wdXREZWZhdWx0Q2hlY2tlZCAgRG9udERlbGV0ZQotICBmb3JtICAgICAg
ICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRGb3JtICAgICAgICAgICAgIERvbnREZWxldGV8
UmVhZE9ubHkKLSAgYWNjZXB0ICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0QWNjZXB0
ICAgICAgICAgICBEb250RGVsZXRlCi0gIGFjY2Vzc0tleSAgICAgS0pTOjpKU0hUTUxFbGVtZW50
OjpJbnB1dEFjY2Vzc0tleSAgICAgICAgRG9udERlbGV0ZQotICBhbGlnbiAgICAgICAgIEtKUzo6
SlNIVE1MRWxlbWVudDo6SW5wdXRBbGlnbiAgICAgICAgICAgIERvbnREZWxldGUKLSAgYWx0ICAg
ICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0QWx0ICAgICAgICAgICAgICBEb250RGVs
ZXRlCi0gIGNoZWNrZWQgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dENoZWNrZWQgICAg
ICAgICAgRG9udERlbGV0ZQotICBkaXNhYmxlZCAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5w
dXREaXNhYmxlZCAgICAgICAgIERvbnREZWxldGUKLSAgaW5kZXRlcm1pbmF0ZSBLSlM6OkpTSFRN
TEVsZW1lbnQ6OklucHV0SW5kZXRlcm1pbmF0ZSAgICBEb250RGVsZXRlCi0gIG1heExlbmd0aCAg
ICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dE1heExlbmd0aCAgICAgICAgRG9udERlbGV0ZQot
ICBuYW1lICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXROYW1lICAgICAgICAgICAg
IERvbnREZWxldGUKLSAgcmVhZE9ubHkgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0UmVh
ZE9ubHkgICAgICAgICBEb250RGVsZXRlCi0gIHNlbGVjdGlvblN0YXJ0ICAgICAgICBLSlM6OkpT
SFRNTEVsZW1lbnQ6OklucHV0U2VsZWN0aW9uU3RhcnQgICBEb250RGVsZXRlCi0gIHNlbGVjdGlv
bkVuZCAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dFNlbGVjdGlvbkVuZCAgICAgRG9udERlbGV0
ZQotICBzaXplICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRTaXplICAgICAgICAg
ICAgIERvbnREZWxldGUKLSAgc3JjICAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0
U3JjICAgICAgICAgICAgICBEb250RGVsZXRlCi0gIHRhYkluZGV4ICAgICAgS0pTOjpKU0hUTUxF
bGVtZW50OjpJbnB1dFRhYkluZGV4ICAgICAgICAgRG9udERlbGV0ZQotICB0eXBlICAgICAgICAg
IEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRUeXBlICAgICAgICAgICAgIERvbnREZWxldGUKLSAg
dXNlTWFwICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0VXNlTWFwICAgICAgICAgICBE
b250RGVsZXRlCi0gIHZhbHVlICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dFZhbHVl
ICAgICAgICAgICAgRG9udERlbGV0ZQotICBibHVyICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVu
dDo6SW5wdXRCbHVyICAgICAgICAgICAgIERvbnREZWxldGV8RnVuY3Rpb24gMAotICBmb2N1cyAg
ICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRGb2N1cyAgICAgICAgICAgIERvbnREZWxl
dGV8RnVuY3Rpb24gMAotICBzZWxlY3QgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRT
ZWxlY3QgICAgICAgICAgIERvbnREZWxldGV8RnVuY3Rpb24gMAotICBjbGljayAgICAgICAgIEtK
Uzo6SlNIVE1MRWxlbWVudDo6SW5wdXRDbGljayAgICAgICAgICAgIERvbnREZWxldGV8RnVuY3Rp
b24gMAotICBzZXRTZWxlY3Rpb25SYW5nZSAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dFNl
dFNlbGVjdGlvblJhbmdlICAgICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDIKLUBlbmQKLUBiZWdp
biBIVE1MVGV4dEFyZWFFbGVtZW50VGFibGUgMTcKLSAgZGVmYXVsdFZhbHVlICBLSlM6OkpTSFRN
TEVsZW1lbnQ6OlRleHRBcmVhRGVmYXVsdFZhbHVlICBEb250RGVsZXRlCi0gIGZvcm0gICAgICAg
ICAgS0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0QXJlYUZvcm0gICAgICAgICAgRG9udERlbGV0ZXxS
ZWFkT25seQotICBhY2Nlc3NLZXkgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6VGV4dEFyZWFBY2Nl
c3NLZXkgICAgIERvbnREZWxldGUKLSAgY29scyAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6
OlRleHRBcmVhQ29scyAgICAgICAgICBEb250RGVsZXRlCi0gIGRpc2FibGVkICAgICAgS0pTOjpK
U0hUTUxFbGVtZW50OjpUZXh0QXJlYURpc2FibGVkICAgICAgRG9udERlbGV0ZQotICBuYW1lICAg
ICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6VGV4dEFyZWFOYW1lICAgICAgICAgIERvbnREZWxl
dGUKLSAgcmVhZE9ubHkgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OlRleHRBcmVhUmVhZE9ubHkg
ICAgICBEb250RGVsZXRlCi0gIHJvd3MgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0
QXJlYVJvd3MgICAgICAgICAgRG9udERlbGV0ZQotICBzZWxlY3Rpb25TdGFydCAgICAgICAgS0pT
OjpKU0hUTUxFbGVtZW50OjpUZXh0QXJlYVNlbGVjdGlvblN0YXJ0ICAgICAgICBEb250RGVsZXRl
Ci0gIHNlbGVjdGlvbkVuZCAgS0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0QXJlYVNlbGVjdGlvbkVu
ZCAgRG9udERlbGV0ZQotICB0YWJJbmRleCAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6VGV4dEFy
ZWFUYWJJbmRleCAgICAgIERvbnREZWxldGUKLSAgdHlwZSAgICAgICAgICBLSlM6OkpTSFRNTEVs
ZW1lbnQ6OlRleHRBcmVhVHlwZSAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gIHZhbHVl
ICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0QXJlYVZhbHVlICAgICAgICAgRG9udERl
bGV0ZQotICBibHVyICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6VGV4dEFyZWFCbHVyICAg
ICAgICAgIERvbnREZWxldGV8RnVuY3Rpb24gMAotICBmb2N1cyAgICAgICAgIEtKUzo6SlNIVE1M
RWxlbWVudDo6VGV4dEFyZWFGb2N1cyAgICAgICAgIERvbnREZWxldGV8RnVuY3Rpb24gMAotICBz
ZWxlY3QgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6VGV4dEFyZWFTZWxlY3QgICAgICAgIERv
bnREZWxldGV8RnVuY3Rpb24gMAotICBzZXRTZWxlY3Rpb25SYW5nZSAgICAgS0pTOjpKU0hUTUxF
bGVtZW50OjpUZXh0QXJlYVNldFNlbGVjdGlvblJhbmdlICAgICBEb250RGVsZXRlfEZ1bmN0aW9u
IDIKLUBlbmQKLUBiZWdpbiBIVE1MQnV0dG9uRWxlbWVudFRhYmxlIDcKLSAgZm9ybSAgICAgICAg
ICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkJ1dHRvbkZvcm0gICAgICAgICAgICBEb250RGVsZXRlfFJl
YWRPbmx5Ci0gIGFjY2Vzc0tleSAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpCdXR0b25BY2Nlc3NL
ZXkgICAgICAgRG9udERlbGV0ZQotICBkaXNhYmxlZCAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6
QnV0dG9uRGlzYWJsZWQgICAgICAgIERvbnREZWxldGUKLSAgbmFtZSAgICAgICAgICBLSlM6OkpT
SFRNTEVsZW1lbnQ6OkJ1dHRvbk5hbWUgICAgICAgICAgICBEb250RGVsZXRlCi0gIHRhYkluZGV4
ICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpCdXR0b25UYWJJbmRleCAgICAgICAgRG9udERlbGV0
ZQotICB0eXBlICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6QnV0dG9uVHlwZSAgICAgICAg
ICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgdmFsdWUgICAgICAgICBLSlM6OkpTSFRNTEVsZW1l
bnQ6OkJ1dHRvblZhbHVlICAgICAgICAgICBEb250RGVsZXRlCi0gIGJsdXIgICAgICAgICAgS0pT
OjpKU0hUTUxFbGVtZW50OjpCdXR0b25CbHVyICAgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlv
biAwCi0gIGZvY3VzICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpCdXR0b25Gb2N1cyAgICAg
ICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi1AZW5kCiBAYmVnaW4gSFRNTExhYmVsRWxlbWVu
dFRhYmxlIDQKICAgZm9ybSAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkxhYmVsRm9ybSAg
ICAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5CiAgIGFjY2Vzc0tleSAgICAgS0pTOjpKU0hU
TUxFbGVtZW50OjpMYWJlbEFjY2Vzc0tleSAgICAgICAgRG9udERlbGV0ZQpAQCAtMTMxNCwyNyAr
MTE3OSwxMSBAQCBib29sIEpTSFRNTEVsZW1lbnQ6OmdldE93blByb3BlcnR5U2xvdChFCiAgICAg
Y29uc3QgSGFzaFRhYmxlKiB0YWJsZSA9IGNsYXNzSW5mbygpLT5wcm9wSGFzaFRhYmxlOyAvLyBn
ZXQgdGhlIHJpZ2h0IGhhc2h0YWJsZQogICAgIGNvbnN0IEhhc2hFbnRyeSogZW50cnkgPSBMb29r
dXA6OmZpbmRFbnRyeSh0YWJsZSwgcHJvcGVydHlOYW1lKTsKICAgICBpZiAoZW50cnkpIHsKLSAg
ICAgICAgLy8gZG9uJ3QgZXhwb3NlIHNlbGVjdGlvbiBwcm9wZXJ0aWVzIGZvciBpbnB1dCB0eXBl
cyB0aGF0IGNhbid0IGhhdmUgYSBzZWxlY3Rpb24KLSAgICAgICAgaWYgKGVsZW1lbnQuaGFzTG9j
YWxOYW1lKGlucHV0VGFnKSAmJiAhc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGltcGwo
KSktPmNhbkhhdmVTZWxlY3Rpb24oKSkgewotICAgICAgICAgICAgc3dpdGNoIChlbnRyeS0+dmFs
dWUpIHsKLSAgICAgICAgICAgIGNhc2UgSW5wdXRTZXRTZWxlY3Rpb25SYW5nZToKLSAgICAgICAg
ICAgIGNhc2UgSW5wdXRTZWxlY3Rpb25TdGFydDoKLSAgICAgICAgICAgIGNhc2UgSW5wdXRTZWxl
Y3Rpb25FbmQ6Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0Ogot
ICAgICAgICAgICAgICAgIGlmIChlbnRyeS0+YXR0ciAmIEZ1bmN0aW9uKQotICAgICAgICAgICAg
ICAgICAgICBzbG90LnNldFN0YXRpY0VudHJ5KHRoaXMsIGVudHJ5LCBzdGF0aWNGdW5jdGlvbkdl
dHRlcjxIVE1MRWxlbWVudEZ1bmN0aW9uPik7IAotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICAgICAgc2xvdC5zZXRTdGF0aWNFbnRyeSh0aGlzLCBlbnRyeSwgc3RhdGljVmFs
dWVHZXR0ZXI8SlNIVE1MRWxlbWVudD4pOwotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKGVudHJ5LT5h
dHRyICYgRnVuY3Rpb24pCi0gICAgICAgICAgICAgICAgc2xvdC5zZXRTdGF0aWNFbnRyeSh0aGlz
LCBlbnRyeSwgc3RhdGljRnVuY3Rpb25HZXR0ZXI8SFRNTEVsZW1lbnRGdW5jdGlvbj4pOyAKLSAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzbG90LnNldFN0YXRpY0VudHJ5KHRoaXMs
IGVudHJ5LCBzdGF0aWNWYWx1ZUdldHRlcjxKU0hUTUxFbGVtZW50Pik7Ci0gICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQorICAgICAgICBpZiAoZW50cnktPmF0dHIgJiBGdW5jdGlv
bikKKyAgICAgICAgICAgIHNsb3Quc2V0U3RhdGljRW50cnkodGhpcywgZW50cnksIHN0YXRpY0Z1
bmN0aW9uR2V0dGVyPEhUTUxFbGVtZW50RnVuY3Rpb24+KTsgCisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHNsb3Quc2V0U3RhdGljRW50cnkodGhpcywgZW50cnksIHN0YXRpY1ZhbHVlR2V0dGVy
PEpTSFRNTEVsZW1lbnQ+KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAgICAgLy8g
QmFzZSBKU0hUTUxFbGVtZW50IHN0dWZmIG9yIHBhcmVudCBjbGFzcyBmb3J3YXJkLCBhcyB1c3Vh
bApAQCAtMTQ0NywxMTEgKzEyOTYsNiBAQCBKU1ZhbHVlICpKU0hUTUxFbGVtZW50OjpzZWxlY3RH
ZXR0ZXIoRXhlCiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKLUpTVmFsdWUgKkpTSFRN
TEVsZW1lbnQ6Om9wdEdyb3VwR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25z
dAotewotICAgIEhUTUxPcHRHcm91cEVsZW1lbnQmIG9wdGdyb3VwID0gKnN0YXRpY19jYXN0PEhU
TUxPcHRHcm91cEVsZW1lbnQqPihpbXBsKCkpOwotICAgIHN3aXRjaCAodG9rZW4pIHsKLSAgICAg
ICAgY2FzZSBPcHRHcm91cERpc2FibGVkOiAgICAgICAgcmV0dXJuIGpzQm9vbGVhbihvcHRncm91
cC5kaXNhYmxlZCgpKTsKLSAgICAgICAgY2FzZSBPcHRHcm91cExhYmVsOiAgICAgICAgICAgcmV0
dXJuIGpzU3RyaW5nKG9wdGdyb3VwLmxhYmVsKCkpOwotICAgIH0KLSAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKLX0KLQotSlNWYWx1ZSAqSlNIVE1MRWxlbWVudDo6b3B0aW9uR2V0dGVyKEV4ZWNT
dGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdAotewotICAgIEhUTUxPcHRpb25FbGVtZW50JiBv
cHRpb24gPSAqc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihpbXBsKCkpOwotICAgIHN3
aXRjaCAodG9rZW4pIHsKLSAgICAgICAgY2FzZSBPcHRpb25Gb3JtOiAgICAgICAgICAgIHJldHVy
biB0b0pTKGV4ZWMsb3B0aW9uLmZvcm0oKSk7IC8vIHR5cGUgSFRNTEZvcm1FbGVtZW50Ci0gICAg
ICAgIGNhc2UgT3B0aW9uRGVmYXVsdFNlbGVjdGVkOiByZXR1cm4ganNCb29sZWFuKG9wdGlvbi5k
ZWZhdWx0U2VsZWN0ZWQoKSk7Ci0gICAgICAgIGNhc2UgT3B0aW9uVGV4dDogICAgICAgICAgICBy
ZXR1cm4ganNTdHJpbmcob3B0aW9uLnRleHQoKSk7Ci0gICAgICAgIGNhc2UgT3B0aW9uSW5kZXg6
ICAgICAgICAgICByZXR1cm4ganNOdW1iZXIob3B0aW9uLmluZGV4KCkpOwotICAgICAgICBjYXNl
IE9wdGlvbkRpc2FibGVkOiAgICAgICAgcmV0dXJuIGpzQm9vbGVhbihvcHRpb24uZGlzYWJsZWQo
KSk7Ci0gICAgICAgIGNhc2UgT3B0aW9uTGFiZWw6ICAgICAgICAgICByZXR1cm4ganNTdHJpbmco
b3B0aW9uLmxhYmVsKCkpOwotICAgICAgICBjYXNlIE9wdGlvblNlbGVjdGVkOiAgICAgICAgcmV0
dXJuIGpzQm9vbGVhbihvcHRpb24uc2VsZWN0ZWQoKSk7Ci0gICAgICAgIGNhc2UgT3B0aW9uVmFs
dWU6ICAgICAgICAgICByZXR1cm4ganNTdHJpbmcob3B0aW9uLnZhbHVlKCkpOwotICAgIH0KLSAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKLX0KLQotc3RhdGljIEpTVmFsdWUgKmdldElucHV0U2Vs
ZWN0aW9uU3RhcnQoSFRNTElucHV0RWxlbWVudCAmaW5wdXQpCi17Ci0gICAgaWYgKGlucHV0LmNh
bkhhdmVTZWxlY3Rpb24oKSkKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGlucHV0LnNlbGVjdGlv
blN0YXJ0KCkpOwotICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotfQotCi1zdGF0aWMgSlNWYWx1
ZSAqZ2V0SW5wdXRTZWxlY3Rpb25FbmQoSFRNTElucHV0RWxlbWVudCAmaW5wdXQpCi17Ci0gICAg
aWYgKGlucHV0LmNhbkhhdmVTZWxlY3Rpb24oKSkKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGlu
cHV0LnNlbGVjdGlvbkVuZCgpKTsKLSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLX0KLQotSlNW
YWx1ZSAqSlNIVE1MRWxlbWVudDo6aW5wdXRHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9r
ZW4pIGNvbnN0Ci17Ci0gICAgSFRNTElucHV0RWxlbWVudCYgaW5wdXQgPSAqc3RhdGljX2Nhc3Q8
SFRNTElucHV0RWxlbWVudCo+KGltcGwoKSk7Ci0gICAgc3dpdGNoICh0b2tlbikgewotICAgICAg
ICBjYXNlIElucHV0RGVmYXVsdFZhbHVlOiAgICByZXR1cm4ganNTdHJpbmcoaW5wdXQuZGVmYXVs
dFZhbHVlKCkpOwotICAgICAgICBjYXNlIElucHV0RGVmYXVsdENoZWNrZWQ6ICByZXR1cm4ganNC
b29sZWFuKGlucHV0LmRlZmF1bHRDaGVja2VkKCkpOwotICAgICAgICBjYXNlIElucHV0Rm9ybTog
ICAgICAgICAgICByZXR1cm4gdG9KUyhleGVjLGlucHV0LmZvcm0oKSk7IC8vIHR5cGUgSFRNTEZv
cm1FbGVtZW50Ci0gICAgICAgIGNhc2UgSW5wdXRBY2NlcHQ6ICAgICAgICAgIHJldHVybiBqc1N0
cmluZyhpbnB1dC5hY2NlcHQoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXRBY2Nlc3NLZXk6ICAgICAg
IHJldHVybiBqc1N0cmluZyhpbnB1dC5hY2Nlc3NLZXkoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXRB
bGlnbjogICAgICAgICAgIHJldHVybiBqc1N0cmluZyhpbnB1dC5hbGlnbigpKTsKLSAgICAgICAg
Y2FzZSBJbnB1dEFsdDogICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGlucHV0LmFsdCgpKTsK
LSAgICAgICAgY2FzZSBJbnB1dENoZWNrZWQ6ICAgICAgICAgcmV0dXJuIGpzQm9vbGVhbihpbnB1
dC5jaGVja2VkKCkpOwotICAgICAgICBjYXNlIElucHV0RGlzYWJsZWQ6ICAgICAgICByZXR1cm4g
anNCb29sZWFuKGlucHV0LmRpc2FibGVkKCkpOwotICAgICAgICBjYXNlIElucHV0SW5kZXRlcm1p
bmF0ZTogICByZXR1cm4ganNCb29sZWFuKGlucHV0LmluZGV0ZXJtaW5hdGUoKSk7Ci0gICAgICAg
IGNhc2UgSW5wdXRNYXhMZW5ndGg6ICAgICAgIHJldHVybiBqc051bWJlcihpbnB1dC5tYXhMZW5n
dGgoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXROYW1lOiAgICAgICAgICAgIHJldHVybiBqc1N0cmlu
ZyhpbnB1dC5uYW1lKCkpOwotICAgICAgICBjYXNlIElucHV0UmVhZE9ubHk6ICAgICAgICByZXR1
cm4ganNCb29sZWFuKGlucHV0LnJlYWRPbmx5KCkpOwotICAgICAgICBjYXNlIElucHV0U2VsZWN0
aW9uU3RhcnQ6ICByZXR1cm4gZ2V0SW5wdXRTZWxlY3Rpb25TdGFydChpbnB1dCk7Ci0gICAgICAg
IGNhc2UgSW5wdXRTZWxlY3Rpb25FbmQ6ICAgIHJldHVybiBnZXRJbnB1dFNlbGVjdGlvbkVuZChp
bnB1dCk7Ci0gICAgICAgIGNhc2UgSW5wdXRTaXplOiAgICAgICAgICAgIHJldHVybiBqc051bWJl
cihpbnB1dC5zaXplKCkpOwotICAgICAgICBjYXNlIElucHV0U3JjOiAgICAgICAgICAgICByZXR1
cm4ganNTdHJpbmcoaW5wdXQuc3JjKCkpOwotICAgICAgICBjYXNlIElucHV0VGFiSW5kZXg6ICAg
ICAgICByZXR1cm4ganNOdW1iZXIoaW5wdXQudGFiSW5kZXgoKSk7Ci0gICAgICAgIGNhc2UgSW5w
dXRUeXBlOiAgICAgICAgICAgIHJldHVybiBqc1N0cmluZyhpbnB1dC50eXBlKCkpOwotICAgICAg
ICBjYXNlIElucHV0VXNlTWFwOiAgICAgICAgICByZXR1cm4ganNTdHJpbmcoaW5wdXQudXNlTWFw
KCkpOwotICAgICAgICBjYXNlIElucHV0VmFsdWU6ICAgICAgICAgICByZXR1cm4ganNTdHJpbmco
aW5wdXQudmFsdWUoKSk7Ci0gICAgfQotICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotfQotCi1K
U1ZhbHVlICpKU0hUTUxFbGVtZW50Ojp0ZXh0QXJlYUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGlu
dCB0b2tlbikgY29uc3QKLXsKLSAgICBIVE1MVGV4dEFyZWFFbGVtZW50JiB0ZXh0YXJlYSA9ICpz
dGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Kj4oaW1wbCgpKTsKLSAgICBzd2l0Y2ggKHRv
a2VuKSB7Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFEZWZhdWx0VmFsdWU6ICAgIHJldHVybiBqc1N0
cmluZyh0ZXh0YXJlYS5kZWZhdWx0VmFsdWUoKSk7Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFGb3Jt
OiAgICAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsdGV4dGFyZWEuZm9ybSgpKTsgLy8gdHlwZSBI
VE1MRm9ybUVsZW1lbnQKLSAgICAgICAgY2FzZSBUZXh0QXJlYUFjY2Vzc0tleTogICAgICAgcmV0
dXJuIGpzU3RyaW5nKHRleHRhcmVhLmFjY2Vzc0tleSgpKTsKLSAgICAgICAgY2FzZSBUZXh0QXJl
YUNvbHM6ICAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHRleHRhcmVhLmNvbHMoKSk7Ci0gICAg
ICAgIGNhc2UgVGV4dEFyZWFEaXNhYmxlZDogICAgICAgIHJldHVybiBqc0Jvb2xlYW4odGV4dGFy
ZWEuZGlzYWJsZWQoKSk7Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFOYW1lOiAgICAgICAgICAgIHJl
dHVybiBqc1N0cmluZyh0ZXh0YXJlYS5uYW1lKCkpOwotICAgICAgICBjYXNlIFRleHRBcmVhUmVh
ZE9ubHk6ICAgICAgICByZXR1cm4ganNCb29sZWFuKHRleHRhcmVhLnJlYWRPbmx5KCkpOwotICAg
ICAgICBjYXNlIFRleHRBcmVhUm93czogICAgICAgICAgICByZXR1cm4ganNOdW1iZXIodGV4dGFy
ZWEucm93cygpKTsKLSAgICAgICAgY2FzZSBUZXh0QXJlYVNlbGVjdGlvblN0YXJ0OiAgcmV0dXJu
IGpzTnVtYmVyKHRleHRhcmVhLnNlbGVjdGlvblN0YXJ0KCkpOwotICAgICAgICBjYXNlIFRleHRB
cmVhU2VsZWN0aW9uRW5kOiAgICByZXR1cm4ganNOdW1iZXIodGV4dGFyZWEuc2VsZWN0aW9uRW5k
KCkpOwotICAgICAgICBjYXNlIFRleHRBcmVhVGFiSW5kZXg6ICAgICAgICByZXR1cm4ganNOdW1i
ZXIodGV4dGFyZWEudGFiSW5kZXgoKSk7Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFUeXBlOiAgICAg
ICAgICAgIHJldHVybiBqc1N0cmluZyh0ZXh0YXJlYS50eXBlKCkpOwotICAgICAgICBjYXNlIFRl
eHRBcmVhVmFsdWU6ICAgICAgICAgICByZXR1cm4ganNTdHJpbmcodGV4dGFyZWEudmFsdWUoKSk7
Ci0gICAgfQotICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotfQotCi1KU1ZhbHVlICpKU0hUTUxF
bGVtZW50OjpidXR0b25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNvbnN0Ci17
Ci0gICAgSFRNTEJ1dHRvbkVsZW1lbnQmIGJ1dHRvbiA9ICpzdGF0aWNfY2FzdDxIVE1MQnV0dG9u
RWxlbWVudCo+KGltcGwoKSk7Ci0gICAgc3dpdGNoICh0b2tlbikgewotICAgICAgICBjYXNlIEJ1
dHRvbkZvcm06ICAgICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYyxidXR0b24uZm9ybSgpKTsgLy8g
dHlwZSBIVE1MRm9ybUVsZW1lbnQKLSAgICAgICAgY2FzZSBCdXR0b25BY2Nlc3NLZXk6ICAgICAg
IHJldHVybiBqc1N0cmluZyhidXR0b24uYWNjZXNzS2V5KCkpOwotICAgICAgICBjYXNlIEJ1dHRv
bkRpc2FibGVkOiAgICAgICAgcmV0dXJuIGpzQm9vbGVhbihidXR0b24uZGlzYWJsZWQoKSk7Ci0g
ICAgICAgIGNhc2UgQnV0dG9uTmFtZTogICAgICAgICAgICByZXR1cm4ganNTdHJpbmcoYnV0dG9u
Lm5hbWUoKSk7Ci0gICAgICAgIGNhc2UgQnV0dG9uVGFiSW5kZXg6ICAgICAgICByZXR1cm4ganNO
dW1iZXIoYnV0dG9uLnRhYkluZGV4KCkpOwotICAgICAgICBjYXNlIEJ1dHRvblR5cGU6ICAgICAg
ICAgICAgcmV0dXJuIGpzU3RyaW5nKGJ1dHRvbi50eXBlKCkpOwotICAgICAgICBjYXNlIEJ1dHRv
blZhbHVlOiAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGJ1dHRvbi52YWx1ZSgpKTsKLSAgICB9
Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0KIEpTVmFsdWUgKkpTSFRNTEVsZW1lbnQ6
OmxhYmVsR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdAogewogICAgIEhU
TUxMYWJlbEVsZW1lbnQmIGxhYmVsID0gKnN0YXRpY19jYXN0PEhUTUxMYWJlbEVsZW1lbnQqPihp
bXBsKCkpOwpAQCAtMjIyMCw0MCArMTk2NCw2IEBAIEpTVmFsdWUgKkhUTUxFbGVtZW50RnVuY3Rp
b246OmNhbGxBc0Z1bmMKICAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgICAg
ICB9CiAgICAgfQotICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzTG9jYWxOYW1lKGlucHV0VGFnKSkg
ewotICAgICAgICBIVE1MSW5wdXRFbGVtZW50ICZpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1
dEVsZW1lbnQgJj4oZWxlbWVudCk7Ci0gICAgICAgIGlmIChpZCA9PSBKU0hUTUxFbGVtZW50OjpJ
bnB1dEJsdXIpIHsKLSAgICAgICAgICAgIGlucHV0LmJsdXIoKTsKLSAgICAgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKGlkID09IEpTSFRN
TEVsZW1lbnQ6OklucHV0Rm9jdXMpIHsKLSAgICAgICAgICAgIGlucHV0LmZvY3VzKCk7Ci0gICAg
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIGlm
IChpZCA9PSBKU0hUTUxFbGVtZW50OjpJbnB1dFNlbGVjdCkgewotICAgICAgICAgICAgaW5wdXQu
c2VsZWN0KCk7Ci0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAgICAgfQot
ICAgICAgICBlbHNlIGlmIChpZCA9PSBKU0hUTUxFbGVtZW50OjpJbnB1dENsaWNrKSB7Ci0gICAg
ICAgICAgICBpbnB1dC5jbGljaygpOwotICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoaWQgPT0gSlNIVE1MRWxlbWVudDo6SW5wdXRT
ZXRTZWxlY3Rpb25SYW5nZSkgewotICAgICAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2Uo
YXJnc1swXS0+dG9JbnQzMihleGVjKSwgYXJnc1sxXS0+dG9JbnQzMihleGVjKSk7Ci0gICAgICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBlbHNlIGlm
IChlbGVtZW50Lmhhc0xvY2FsTmFtZShidXR0b25UYWcpKSB7Ci0gICAgICAgIEhUTUxCdXR0b25F
bGVtZW50ICZidXR0b24gPSBzdGF0aWNfY2FzdDxIVE1MQnV0dG9uRWxlbWVudCAmPihlbGVtZW50
KTsKLSAgICAgICAgaWYgKGlkID09IEpTSFRNTEVsZW1lbnQ6OkJ1dHRvbkJsdXIpIHsKLSAgICAg
ICAgICAgIGJ1dHRvbi5ibHVyKCk7Ci0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
LSAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChpZCA9PSBKU0hUTUxFbGVtZW50OjpCdXR0b25G
b2N1cykgewotICAgICAgICAgICAgYnV0dG9uLmZvY3VzKCk7Ci0gICAgICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKLSAgICAgICAgfQotICAgIH0KICAgICBlbHNlIGlmIChlbGVtZW50Lmhh
c0xvY2FsTmFtZShsYWJlbFRhZykpIHsKICAgICAgICAgSFRNTExhYmVsRWxlbWVudCAmbGFiZWwg
PSBzdGF0aWNfY2FzdDxIVE1MTGFiZWxFbGVtZW50ICY+KGVsZW1lbnQpOwogICAgICAgICBpZiAo
aWQgPT0gSlNIVE1MRWxlbWVudDo6TGFiZWxGb2N1cykgewpAQCAtMjI2OCwyNSArMTk3OCw2IEBA
IEpTVmFsdWUgKkhUTUxFbGVtZW50RnVuY3Rpb246OmNhbGxBc0Z1bmMKICAgICAgICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwogICAgICAgICB9CiAgICAgfQotICAgIGVsc2UgaWYgKGVsZW1l
bnQuaGFzTG9jYWxOYW1lKHRleHRhcmVhVGFnKSkgewotICAgICAgICBIVE1MVGV4dEFyZWFFbGVt
ZW50ICZ0ZXh0YXJlYSA9IHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQgJj4oZWxlbWVu
dCk7Ci0gICAgICAgIGlmIChpZCA9PSBKU0hUTUxFbGVtZW50OjpUZXh0QXJlYUJsdXIpIHsKLSAg
ICAgICAgICAgIHRleHRhcmVhLmJsdXIoKTsKLSAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKGlkID09IEpTSFRNTEVsZW1lbnQ6OlRl
eHRBcmVhRm9jdXMpIHsKLSAgICAgICAgICAgIHRleHRhcmVhLmZvY3VzKCk7Ci0gICAgICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChpZCA9
PSBKU0hUTUxFbGVtZW50OjpUZXh0QXJlYVNlbGVjdCkgewotICAgICAgICAgICAgdGV4dGFyZWEu
c2VsZWN0KCk7Ci0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAgICAgfQot
ICAgICAgICBlbHNlIGlmIChpZCA9PSBKU0hUTUxFbGVtZW50OjpUZXh0QXJlYVNldFNlbGVjdGlv
blJhbmdlKSB7Ci0gICAgICAgICAgICB0ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZShhcmdzWzBd
LT50b0ludDMyKGV4ZWMpLCBhcmdzWzFdLT50b0ludDMyKGV4ZWMpKTsKLSAgICAgICAgICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgfQogICAgIGVsc2UgaWYgKGVsZW1l
bnQuaGFzTG9jYWxOYW1lKGFUYWcpKSB7CiAgICAgICAgIEhUTUxBbmNob3JFbGVtZW50ICZhbmNo
b3IgPSBzdGF0aWNfY2FzdDxIVE1MQW5jaG9yRWxlbWVudCAmPihlbGVtZW50KTsKICAgICAgICAg
aWYgKGlkID09IEpTSFRNTEVsZW1lbnQ6OkFuY2hvckJsdXIpIHsKQEAgLTIzOTMsOCArMjA4NCw3
IEBAIHZvaWQgSlNIVE1MRWxlbWVudDo6cHV0KEV4ZWNTdGF0ZSAqZXhlYywKICAgICAgICAgaWYg
KGVudHJ5LT5hdHRyICYgRnVuY3Rpb24pIHsgLy8gZnVuY3Rpb246IHB1dCBhcyBvdmVycmlkZSBw
cm9wZXJ0eQogICAgICAgICAgICAgSlNPYmplY3Q6OnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCBhdHRyKTsKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBlbHNl
IGlmICghKGVudHJ5LT5hdHRyICYgUmVhZE9ubHkpKSB7IC8vIGxldCBsb29rdXBQdXQgcHJpbnQg
dGhlIHdhcm5pbmcgaWYgcmVhZC1vbmx5CisgICAgICAgIH0gZWxzZSBpZiAoIShlbnRyeS0+YXR0
ciAmIFJlYWRPbmx5KSkgeyAvLyBsZXQgbG9va3VwUHV0IHByaW50IHRoZSB3YXJuaW5nIGlmIHJl
YWQtb25seQogICAgICAgICAgICAgcHV0VmFsdWVQcm9wZXJ0eShleGVjLCBlbnRyeS0+dmFsdWUs
IHZhbHVlLCBhdHRyKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtMjQwNSw5
ICsyMDk1LDkgQEAgdm9pZCBKU0hUTUxFbGVtZW50OjpwdXQoRXhlY1N0YXRlICpleGVjLAogCiB2
b2lkIEpTSFRNTEVsZW1lbnQ6Omh0bWxTZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4s
IEpTVmFsdWUgKnZhbHVlLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIHN0cikKIHsKLSAgICBIVE1M
SGVhZEVsZW1lbnQgJmhlYWQgPSAqc3RhdGljX2Nhc3Q8SFRNTEhlYWRFbGVtZW50Kj4oaW1wbCgp
KTsKLSAgICBpZiAodG9rZW4gPT0gSGVhZFByb2ZpbGUpIAotICAgICAgICBoZWFkLnNldFByb2Zp
bGUoc3RyKTsKKyAgICBIVE1MSHRtbEVsZW1lbnQmIGh0bWwgPSAqc3RhdGljX2Nhc3Q8SFRNTEh0
bWxFbGVtZW50Kj4oaW1wbCgpKTsKKyAgICBpZiAodG9rZW4gPT0gSHRtbFZlcnNpb24pCisgICAg
ICAgIGh0bWwuc2V0VmVyc2lvbihzdHIpOwogfQogCiB2b2lkIEpTSFRNTEVsZW1lbnQ6OmlzSW5k
ZXhTZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBjb25z
dCBXZWJDb3JlOjpTdHJpbmcmIHN0cikKQEAgLTI0ODAsOTMgKzIxNzAsNiBAQCB2b2lkIEpTSFRN
TEVsZW1lbnQ6OnNlbGVjdFNldHRlcihFeGVjU3RhCiAgICAgfQogfQogCi12b2lkIEpTSFRNTEVs
ZW1lbnQ6Om9wdEdyb3VwU2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuLCBKU1ZhbHVl
ICp2YWx1ZSwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzdHIpCi17Ci0gICAgSFRNTE9wdEdyb3Vw
RWxlbWVudCYgb3B0Z3JvdXAgPSAqc3RhdGljX2Nhc3Q8SFRNTE9wdEdyb3VwRWxlbWVudCo+KGlt
cGwoKSk7Ci0gICAgc3dpdGNoICh0b2tlbikgewotICAgICAgICBjYXNlIE9wdEdyb3VwRGlzYWJs
ZWQ6ICAgICAgICB7IG9wdGdyb3VwLnNldERpc2FibGVkKHZhbHVlLT50b0Jvb2xlYW4oZXhlYykp
OyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBPcHRHcm91cExhYmVsOiAgICAgICAgICAgeyBvcHRn
cm91cC5zZXRMYWJlbChzdHIpOyByZXR1cm47IH0KLSAgICB9Ci19Ci0KLXZvaWQgSlNIVE1MRWxl
bWVudDo6b3B0aW9uU2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuLCBKU1ZhbHVlICp2
YWx1ZSwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzdHIpCi17Ci0gICAgRE9NRXhjZXB0aW9uVHJh
bnNsYXRvciBleGNlcHRpb24oZXhlYyk7Ci0gICAgSFRNTE9wdGlvbkVsZW1lbnQmIG9wdGlvbiA9
ICpzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KGltcGwoKSk7Ci0gICAgc3dpdGNoICh0
b2tlbikgewotICAgICAgICAvLyByZWFkLW9ubHk6IGZvcm0KLSAgICAgICAgY2FzZSBPcHRpb25E
ZWZhdWx0U2VsZWN0ZWQ6IHsgb3B0aW9uLnNldERlZmF1bHRTZWxlY3RlZCh2YWx1ZS0+dG9Cb29s
ZWFuKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgT3B0aW9uVGV4dDogICAgICAgICAg
ICB7IG9wdGlvbi5zZXRUZXh0KHN0ciwgZXhjZXB0aW9uKTsgcmV0dXJuOyB9Ci0gICAgICAgIC8v
IHJlYWQtb25seTogaW5kZXgKLSAgICAgICAgY2FzZSBPcHRpb25EaXNhYmxlZDogICAgICAgIHsg
b3B0aW9uLnNldERpc2FibGVkKHZhbHVlLT50b0Jvb2xlYW4oZXhlYykpOyByZXR1cm47IH0KLSAg
ICAgICAgY2FzZSBPcHRpb25MYWJlbDogICAgICAgICAgIHsgb3B0aW9uLnNldExhYmVsKHN0cik7
IHJldHVybjsgfQotICAgICAgICBjYXNlIE9wdGlvblNlbGVjdGVkOiAgICAgICAgeyBvcHRpb24u
c2V0U2VsZWN0ZWQodmFsdWUtPnRvQm9vbGVhbihleGVjKSk7IHJldHVybjsgfQotICAgICAgICBj
YXNlIE9wdGlvblZhbHVlOiAgICAgICAgICAgeyBvcHRpb24uc2V0VmFsdWUoc3RyKTsgcmV0dXJu
OyB9Ci0gICAgfQotfQotCi12b2lkIEpTSFRNTEVsZW1lbnQ6OmlucHV0U2V0dGVyKEV4ZWNTdGF0
ZSAqZXhlYywgaW50IHRva2VuLCBKU1ZhbHVlICp2YWx1ZSwgY29uc3QgV2ViQ29yZTo6U3RyaW5n
JiBzdHIpCi17Ci0gICAgSFRNTElucHV0RWxlbWVudCYgaW5wdXQgPSAqc3RhdGljX2Nhc3Q8SFRN
TElucHV0RWxlbWVudCo+KGltcGwoKSk7Ci0gICAgc3dpdGNoICh0b2tlbikgewotICAgICAgICBj
YXNlIElucHV0RGVmYXVsdFZhbHVlOiAgICB7IGlucHV0LnNldERlZmF1bHRWYWx1ZShzdHIpOyBy
ZXR1cm47IH0KLSAgICAgICAgY2FzZSBJbnB1dERlZmF1bHRDaGVja2VkOiAgeyBpbnB1dC5zZXRE
ZWZhdWx0Q2hlY2tlZCh2YWx1ZS0+dG9Cb29sZWFuKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAg
IC8vIHJlYWQtb25seTogZm9ybQotICAgICAgICBjYXNlIElucHV0QWNjZXB0OiAgICAgICAgICB7
IGlucHV0LnNldEFjY2VwdChzdHIpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBJbnB1dEFjY2Vz
c0tleTogICAgICAgeyBpbnB1dC5zZXRBY2Nlc3NLZXkoc3RyKTsgcmV0dXJuOyB9Ci0gICAgICAg
IGNhc2UgSW5wdXRBbGlnbjogICAgICAgICAgIHsgaW5wdXQuc2V0QWxpZ24oc3RyKTsgcmV0dXJu
OyB9Ci0gICAgICAgIGNhc2UgSW5wdXRBbHQ6ICAgICAgICAgICAgIHsgaW5wdXQuc2V0QWx0KHN0
cik7IHJldHVybjsgfQotICAgICAgICBjYXNlIElucHV0Q2hlY2tlZDogICAgICAgICB7IGlucHV0
LnNldENoZWNrZWQodmFsdWUtPnRvQm9vbGVhbihleGVjKSk7IHJldHVybjsgfQotICAgICAgICBj
YXNlIElucHV0RGlzYWJsZWQ6ICAgICAgICB7IGlucHV0LnNldERpc2FibGVkKHZhbHVlLT50b0Jv
b2xlYW4oZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBJbnB1dEluZGV0ZXJtaW5hdGU6
ICAgeyBpbnB1dC5zZXRJbmRldGVybWluYXRlKHZhbHVlLT50b0Jvb2xlYW4oZXhlYykpOyByZXR1
cm47IH0KLSAgICAgICAgY2FzZSBJbnB1dE1heExlbmd0aDogICAgICAgeyBpbnB1dC5zZXRNYXhM
ZW5ndGgodmFsdWUtPnRvSW50MzIoZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBJbnB1
dE5hbWU6ICAgICAgICAgICAgeyBpbnB1dC5zZXROYW1lKEF0b21pY1N0cmluZyhzdHIpKTsgcmV0
dXJuOyB9Ci0gICAgICAgIGNhc2UgSW5wdXRSZWFkT25seTogICAgICAgIHsgaW5wdXQuc2V0UmVh
ZE9ubHkodmFsdWUtPnRvQm9vbGVhbihleGVjKSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIElu
cHV0U2l6ZTogICAgICAgICAgICB7IGlucHV0LnNldFNpemUodmFsdWUtPnRvSW50MzIoZXhlYykp
OyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBJbnB1dFNlbGVjdGlvblN0YXJ0OiAgeyBpbnB1dC5z
ZXRTZWxlY3Rpb25TdGFydCh2YWx1ZS0+dG9JbnQzMihleGVjKSk7IHJldHVybjsgfQotICAgICAg
ICBjYXNlIElucHV0U2VsZWN0aW9uRW5kOiAgICB7IGlucHV0LnNldFNlbGVjdGlvbkVuZCh2YWx1
ZS0+dG9JbnQzMihleGVjKSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIElucHV0U3JjOiAgICAg
ICAgICAgICB7IGlucHV0LnNldFNyYyhzdHIpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBJbnB1
dFRhYkluZGV4OiAgICAgICAgeyBpbnB1dC5zZXRUYWJJbmRleCh2YWx1ZS0+dG9JbnQzMihleGVj
KSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIElucHV0VHlwZTogICAgICAgICAgICB7IGlucHV0
LnNldFR5cGUoc3RyKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSW5wdXRVc2VNYXA6ICAgICAg
ICAgIHsgaW5wdXQuc2V0VXNlTWFwKHN0cik7IHJldHVybjsgfQotICAgICAgICBjYXNlIElucHV0
VmFsdWU6ICAgICAgICAgICB7IGlucHV0LnNldFZhbHVlKHN0cik7IHJldHVybjsgfQotICAgIH0K
LX0KLQotdm9pZCBKU0hUTUxFbGVtZW50Ojp0ZXh0QXJlYVNldHRlcihFeGVjU3RhdGUgKmV4ZWMs
IGludCB0b2tlbiwgSlNWYWx1ZSAqdmFsdWUsIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgc3RyKQot
ewotICAgIEhUTUxUZXh0QXJlYUVsZW1lbnQmIHRleHRhcmVhID0gKnN0YXRpY19jYXN0PEhUTUxU
ZXh0QXJlYUVsZW1lbnQqPihpbXBsKCkpOwotICAgIHN3aXRjaCAodG9rZW4pIHsKLSAgICAgICAg
Y2FzZSBUZXh0QXJlYURlZmF1bHRWYWx1ZTogICAgeyB0ZXh0YXJlYS5zZXREZWZhdWx0VmFsdWUo
c3RyKTsgcmV0dXJuOyB9Ci0gICAgICAgIC8vIHJlYWQtb25seTogZm9ybQotICAgICAgICBjYXNl
IFRleHRBcmVhQWNjZXNzS2V5OiAgICAgICB7IHRleHRhcmVhLnNldEFjY2Vzc0tleShzdHIpOyBy
ZXR1cm47IH0KLSAgICAgICAgY2FzZSBUZXh0QXJlYUNvbHM6ICAgICAgICAgICAgeyB0ZXh0YXJl
YS5zZXRDb2xzKHZhbHVlLT50b0ludDMyKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2Ug
VGV4dEFyZWFEaXNhYmxlZDogICAgICAgIHsgdGV4dGFyZWEuc2V0RGlzYWJsZWQodmFsdWUtPnRv
Qm9vbGVhbihleGVjKSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIFRleHRBcmVhTmFtZTogICAg
ICAgICAgICB7IHRleHRhcmVhLnNldE5hbWUoQXRvbWljU3RyaW5nKHN0cikpOyByZXR1cm47IH0K
LSAgICAgICAgY2FzZSBUZXh0QXJlYVJlYWRPbmx5OiAgICAgICAgeyB0ZXh0YXJlYS5zZXRSZWFk
T25seSh2YWx1ZS0+dG9Cb29sZWFuKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgVGV4
dEFyZWFSb3dzOiAgICAgICAgICAgIHsgdGV4dGFyZWEuc2V0Um93cyh2YWx1ZS0+dG9JbnQzMihl
eGVjKSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIFRleHRBcmVhU2VsZWN0aW9uU3RhcnQ6ICB7
IHRleHRhcmVhLnNldFNlbGVjdGlvblN0YXJ0KHZhbHVlLT50b0ludDMyKGV4ZWMpKTsgcmV0dXJu
OyB9Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFTZWxlY3Rpb25FbmQ6ICAgIHsgdGV4dGFyZWEuc2V0
U2VsZWN0aW9uRW5kKHZhbHVlLT50b0ludDMyKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNh
c2UgVGV4dEFyZWFUYWJJbmRleDogICAgICAgIHsgdGV4dGFyZWEuc2V0VGFiSW5kZXgodmFsdWUt
PnRvSW50MzIoZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAgLy8gcmVhZC1vbmx5OiB0eXBlCi0g
ICAgICAgIGNhc2UgVGV4dEFyZWFWYWx1ZTogICAgICAgICAgIHsgdGV4dGFyZWEuc2V0VmFsdWUo
c3RyKTsgcmV0dXJuOyB9Ci0gICAgfQotfQotCi12b2lkIEpTSFRNTEVsZW1lbnQ6OmJ1dHRvblNl
dHRlcihFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbiwgSlNWYWx1ZSAqdmFsdWUsIGNvbnN0IFdl
YkNvcmU6OlN0cmluZyYgc3RyKQotewotICAgIEhUTUxCdXR0b25FbGVtZW50JiBidXR0b24gPSAq
c3RhdGljX2Nhc3Q8SFRNTEJ1dHRvbkVsZW1lbnQqPihpbXBsKCkpOwotICAgIHN3aXRjaCAodG9r
ZW4pIHsKLSAgICAgICAgLy8gcmVhZC1vbmx5OiBmb3JtCi0gICAgICAgIGNhc2UgQnV0dG9uQWNj
ZXNzS2V5OiAgICAgICB7IGJ1dHRvbi5zZXRBY2Nlc3NLZXkoc3RyKTsgcmV0dXJuOyB9Ci0gICAg
ICAgIGNhc2UgQnV0dG9uRGlzYWJsZWQ6ICAgICAgICB7IGJ1dHRvbi5zZXREaXNhYmxlZCh2YWx1
ZS0+dG9Cb29sZWFuKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgQnV0dG9uTmFtZTog
ICAgICAgICAgICB7IGJ1dHRvbi5zZXROYW1lKEF0b21pY1N0cmluZyhzdHIpKTsgcmV0dXJuOyB9
Ci0gICAgICAgIGNhc2UgQnV0dG9uVGFiSW5kZXg6ICAgICAgICB7IGJ1dHRvbi5zZXRUYWJJbmRl
eCh2YWx1ZS0+dG9JbnQzMihleGVjKSk7IHJldHVybjsgfQotICAgICAgICAvLyByZWFkLW9ubHk6
IHR5cGUKLSAgICAgICAgY2FzZSBCdXR0b25WYWx1ZTogICAgICAgICAgIHsgYnV0dG9uLnNldFZh
bHVlKHN0cik7IHJldHVybjsgfQotICAgIH0KLX0KLQogdm9pZCBKU0hUTUxFbGVtZW50OjpsYWJl
bFNldHRlcihFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbiwgSlNWYWx1ZSAqdmFsdWUsIGNvbnN0
IFdlYkNvcmU6OlN0cmluZyYgc3RyKQogewogICAgIEhUTUxMYWJlbEVsZW1lbnQmIGxhYmVsID0g
KnN0YXRpY19jYXN0PEhUTUxMYWJlbEVsZW1lbnQqPihpbXBsKCkpOwpAQCAtMzMyNCw0MyArMjky
Nyw2IEBAIHZvaWQgSlNIVE1MU2VsZWN0Q29sbGVjdGlvbjo6cHV0KEV4ZWNTdGEKICAgc2V0RE9N
RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvbik7CiB9CiAKLS8vLy8vLy8vLy8vLy8vLy8vLy8vLy8g
T3B0aW9uIE9iamVjdCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotT3B0aW9uQ29uc3RydWN0
b3JJbXA6Ok9wdGlvbkNvbnN0cnVjdG9ySW1wKEV4ZWNTdGF0ZSAqZXhlYywgRG9jdW1lbnQgKmQp
Ci0gICAgOiBtX2RvYyhkKQotewotICBwdXQoZXhlYyxsZW5ndGhQcm9wZXJ0eU5hbWUsIGpzTnVt
YmVyKDQpLCBSZWFkT25seXxEb250RGVsZXRlfERvbnRFbnVtKTsKLX0KLQotYm9vbCBPcHRpb25D
b25zdHJ1Y3RvckltcDo6aW1wbGVtZW50c0NvbnN0cnVjdCgpIGNvbnN0Ci17Ci0gIHJldHVybiB0
cnVlOwotfQotCi1KU09iamVjdCAqT3B0aW9uQ29uc3RydWN0b3JJbXA6OmNvbnN0cnVjdChFeGVj
U3RhdGUgKmV4ZWMsIGNvbnN0IExpc3QgJmFyZ3MpCi17Ci0gIGludCBleGNlcHRpb24gPSAwOwot
ICBSZWZQdHI8RWxlbWVudD4gZWwobV9kb2MtPmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIsIGV4Y2Vw
dGlvbikpOwotICBIVE1MT3B0aW9uRWxlbWVudCAqb3B0ID0gMDsKLSAgaWYgKGVsKSB7Ci0gICAg
b3B0ID0gc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihlbC5nZXQoKSk7Ci0gICAgaW50
IHN6ID0gYXJncy5zaXplKCk7Ci0gICAgUmVmUHRyPFRleHQ+IHQgPSBtX2RvYy0+Y3JlYXRlVGV4
dE5vZGUoIiIpOwotICAgIG9wdC0+YXBwZW5kQ2hpbGQodCwgZXhjZXB0aW9uKTsKLSAgICBpZiAo
ZXhjZXB0aW9uID09IDAgJiYgc3ogPiAwKQotICAgICAgdC0+c2V0RGF0YShhcmdzWzBdLT50b1N0
cmluZyhleGVjKSwgZXhjZXB0aW9uKTsgLy8gc2V0IHRoZSB0ZXh0Ci0gICAgaWYgKGV4Y2VwdGlv
biA9PSAwICYmIHN6ID4gMSkKLSAgICAgIG9wdC0+c2V0VmFsdWUoYXJnc1sxXS0+dG9TdHJpbmco
ZXhlYykpOwotICAgIGlmIChleGNlcHRpb24gPT0gMCAmJiBzeiA+IDIpCi0gICAgICBvcHQtPnNl
dERlZmF1bHRTZWxlY3RlZChhcmdzWzJdLT50b0Jvb2xlYW4oZXhlYykpOwotICAgIGlmIChleGNl
cHRpb24gPT0gMCAmJiBzeiA+IDMpCi0gICAgICBvcHQtPnNldFNlbGVjdGVkKGFyZ3NbM10tPnRv
Qm9vbGVhbihleGVjKSk7Ci0gIH0KLQotICBzZXRET01FeGNlcHRpb24oZXhlYywgZXhjZXB0aW9u
KTsKLSAgcmV0dXJuIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4odG9KUyhleGVjLG9wdCkpOwotfQot
CiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEltYWdlIE9iamVjdCAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8KIAogSW1hZ2VDb25zdHJ1Y3RvckltcDo6SW1hZ2VDb25zdHJ1Y3RvckltcChFeGVjU3Rh
dGUgKiwgRG9jdW1lbnQgKmQpCkluZGV4OiBiaW5kaW5ncy9qcy9ranNfd2luZG93LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBiaW5kaW5ncy9qcy9ranNfd2luZG93LmNwcAkocmV2aXNpb24gMTQ0MzQpCisr
KyBiaW5kaW5ncy9qcy9ranNfd2luZG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIkpTRE9NUGFyc2VyLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIK
ICNpbmNsdWRlICJKU0V2ZW50LmgiCisjaW5jbHVkZSAiSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0
cnVjdG9yLmgiCiAjaW5jbHVkZSAiSlNNdXRhdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiSlNOb2Rl
LmgiCiAjaW5jbHVkZSAiSlNOb2RlRmlsdGVyLmgiCkBAIC03NzEsNyArNzcyLDcgQEAgSlNWYWx1
ZSAqV2luZG93OjpnZXRWYWx1ZVByb3BlcnR5KEV4ZWNTdAogICAgICAgLy8gdGltZQogICAgICAg
cmV0dXJuIG5ldyBJbWFnZUNvbnN0cnVjdG9ySW1wKGV4ZWMsIG1fZnJhbWUtPmRvY3VtZW50KCkp
OwogICAgIGNhc2UgT3B0aW9uOgotICAgICAgcmV0dXJuIG5ldyBPcHRpb25Db25zdHJ1Y3Rvcklt
cChleGVjLCBtX2ZyYW1lLT5kb2N1bWVudCgpKTsKKyAgICAgIHJldHVybiBuZXcgSlNIVE1MT3B0
aW9uRWxlbWVudENvbnN0cnVjdG9yKGV4ZWMsIG1fZnJhbWUtPmRvY3VtZW50KCkpOwogICAgIGNh
c2UgWE1MSHR0cFJlcXVlc3Q6CiAgICAgICByZXR1cm4gbmV3IEpTWE1MSHR0cFJlcXVlc3RDb25z
dHJ1Y3RvckltcChleGVjLCBtX2ZyYW1lLT5kb2N1bWVudCgpKTsKICAgICBjYXNlIFhNTFNlcmlh
bGl6ZXI6CkluZGV4OiBiaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gYmluZGluZ3MvanMvSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5oCShyZXZpc2lvbiAw
KQorKysgYmluZGluZ3MvanMvSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5oCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVy
LCBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxl
IFBsYWNlIC0gU3VpdGUgMzMwLAorICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisgKi8K
KworI2lmbmRlZiBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlX0gKKyNkZWZpbmUgSlNIVE1MSW5wdXRF
bGVtZW50QmFzZV9ICisKKyNpbmNsdWRlICJranNfaHRtbC5oIgorI2luY2x1ZGUgImtqc19iaW5k
aW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIEhUTUxJbnB1dEVsZW1l
bnQ7CisKKyAgICBLSlNfREVGSU5FX1BST1RPVFlQRShKU0hUTUxJbnB1dEVsZW1lbnRCYXNlUHJv
dG8pCisKKyAgICBjbGFzcyBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlIDogcHVibGljIEtKUzo6SlNI
VE1MRWxlbWVudCB7CisgICAgcHVibGljOgorICAgICAgICBKU0hUTUxJbnB1dEVsZW1lbnRCYXNl
KEtKUzo6RXhlY1N0YXRlKiwgUGFzc1JlZlB0cjxIVE1MSW5wdXRFbGVtZW50Pik7CisgICAgICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoS0pTOjpFeGVjU3RhdGUqLCBjb25zdCBL
SlM6OklkZW50aWZpZXImLCBLSlM6OlByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGNv
bnN0IEtKUzo6Q2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmaW5mbzsgfQor
ICAgICAgICBzdGF0aWMgY29uc3QgS0pTOjpDbGFzc0luZm8gaW5mbzsKKyAgICAgICAgZW51bSB7
IFNldFNlbGVjdGlvblJhbmdlLCBTZWxlY3Rpb25TdGFydCwgU2VsZWN0aW9uRW5kIH07CisgICAg
ICAgIEhUTUxJbnB1dEVsZW1lbnQqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7
IH0KKyAgICBwcml2YXRlOgorICAgICAgICBSZWZQdHI8SFRNTElucHV0RWxlbWVudD4gbV9pbXBs
OworICAgIH07CisKKyAgICBLSlM6OkpTVmFsdWUqIHRvSlMoS0pTOjpFeGVjU3RhdGUqLCBIVE1M
SW5wdXRFbGVtZW50Kik7Cit9CisKKyNlbmRpZgpJbmRleDogRGVyaXZlZFNvdXJjZXMubWFrZQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBEZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxNDQzNCkKKysrIERl
cml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTYzLDE0ICs2MywyMCBAQCBhbGwg
OiBcCiAgICAgSlNFbGVtZW50LmggXAogICAgIEpTRXZlbnQuaCBcCiAgICAgSlNFbnRpdHkuaCBc
CisgICAgSlNIVE1MQnV0dG9uRWxlbWVudC5oIFwKICAgICBKU0hUTUxCYXNlRWxlbWVudC5oIFwK
ICAgICBKU0hUTUxDYW52YXNFbGVtZW50LmggXAogICAgIEpTSFRNTERvY3VtZW50LmggXAogICAg
IEpTSFRNTEVsZW1lbnQuaCBcCiAgICAgSlNIVE1MSGVhZEVsZW1lbnQuaCBcCisgICAgSlNIVE1M
SW5wdXRFbGVtZW50LmggXAorICAgIEpTSFRNTElucHV0RWxlbWVudEJhc2VUYWJsZS5jcHAgXAog
ICAgIEpTSFRNTExpbmtFbGVtZW50LmggXAorICAgIEpTSFRNTE9wdGlvbkVsZW1lbnQuaCBcCisg
ICAgSlNIVE1MT3B0R3JvdXBFbGVtZW50LmggXAogICAgIEpTSFRNTE1ldGFFbGVtZW50LmggXAog
ICAgIEpTSFRNTFN0eWxlRWxlbWVudC5oIFwKKyAgICBKU0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBc
CiAgICAgSlNIVE1MVGl0bGVFbGVtZW50LmggXAogICAgIEpTS2V5Ym9hcmRFdmVudC5oIFwKICAg
ICBKU01vdXNlRXZlbnQuaCBcCkluZGV4OiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5pZGwJKHJldmlzaW9uIDApCisr
KyBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3Vp
dGUgMzMwLAorICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisgKi8KKworbW9kdWxlIGh0
bWwgeworCisgICAgaW50ZXJmYWNlIFtMZWdhY3lQYXJlbnQ9S0pTOjpKU0hUTUxFbGVtZW50XSBI
VE1MT3B0R3JvdXBFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgICAgICBhdHRyaWJ1dGUgIGJv
b2xlYW4gICAgICAgICAgICAgIGRpc2FibGVkOworICAgICAgICBhdHRyaWJ1dGUgIERPTVN0cmlu
ZyAgICAgICAgICAgIGxhYmVsOworICAgIH07CisKK30KSW5kZXg6IGh0bWwvSFRNTElucHV0RWxl
bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAkocmV2aXNp
b24gMCkKKysrIGh0bWwvSFRNTElucHV0RWxlbWVudC5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2Ug
LSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqLworCittb2R1
bGUgaHRtbCB7CisKKyAgICBpbnRlcmZhY2UgW0xlZ2FjeVBhcmVudD1KU0hUTUxJbnB1dEVsZW1l
bnRCYXNlXSBIVE1MSW5wdXRFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTsKKyAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICBkZWZhdWx0Q2hlY2tlZDsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBIVE1MRm9ybUVsZW1lbnQgICAgICBmb3JtOwor
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAgIGFjY2VwdDsK
KyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICBhY2Nlc3NL
ZXk7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgYWxp
Z247CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgYWx0
OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIGNoZWNr
ZWQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAgICAgZGlz
YWJsZWQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgbG9uZyAgICAgICAgICAgICAgICAg
bWF4TGVuZ3RoOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAg
ICAgIG5hbWU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAg
ICAgcmVhZE9ubHk7CisgICAgICAgIC8vIFRoZSBIVE1MIERPTSAxIHNwZWMgY2xhaW1zICJzaXpl
IiBzaG91bGQgYmUgYSBET01TdHJpbmcsIHlldCBGaXJlRm94IG1ha2VzIGl0IGEgbnVtYmVyCisg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgbG9uZyAgICAgICAgICAgICAgICAgc2l6ZTsKKyAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICBzcmM7CisgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSAgbG9uZyAgICAgICAgICAgICAgICAgdGFiSW5kZXg7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgdHlwZTsKKyAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICB1c2VNYXA7Cisg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgdmFsdWU7Cisg
ICAgICAgIAorICAgICAgICB2b2lkICAgIGJsdXIoKTsKKyAgICAgICAgdm9pZCAgICBmb2N1cygp
OworICAgICAgICB2b2lkICAgIHNlbGVjdCgpOworICAgICAgICB2b2lkICAgIGNsaWNrKCk7Cisg
ICAgfTsKKworfQpJbmRleDogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwJKHJldmlzaW9uIDApCisrKyBodG1sL0hUTUxP
cHRpb25FbGVtZW50LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAqIEJv
c3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorICovCisKK21vZHVsZSBodG1sIHsKKworICAgIGlu
dGVyZmFjZSBbTGVnYWN5UGFyZW50PUtKUzo6SlNIVE1MRWxlbWVudF0gSFRNTE9wdGlvbkVsZW1l
bnQgOiBIVE1MRWxlbWVudCB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgSFRNTEZvcm1F
bGVtZW50ICAgICAgZm9ybTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAg
ICAgICAgICAgICBkZWZhdWx0U2VsZWN0ZWQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAg
RE9NU3RyaW5nICAgICAgICAgICAgdGV4dDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBs
b25nICAgICAgICAgICAgICAgICBpbmRleAorICAgICAgICAgICAgICAgICAgICAgICAgc2V0dGVy
IHJhaXNlcyAoZG9tOjpET01FeGNlcHRpb24pOyAvLyBGSVhNRTogV2UgZGlzYWxsb3cgc2V0dGlu
ZyBpbiB2aW9sYXRpb24gb2YgRE9NIDEgSFRNTC4KKyAgICAgICAgICAgICAgICAgYXR0cmlidXRl
ICBib29sZWFuICAgICAgICAgICAgICBkaXNhYmxlZDsKKyAgICAgICAgICAgICAgICAgYXR0cmli
dXRlICBET01TdHJpbmcgICAgICAgICAgICBsYWJlbDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlICBib29sZWFuICAgICAgICAgICAgICBzZWxlY3RlZDsKKyAgICAgICAgICAgICAgICAgYXR0
cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICB2YWx1ZTsKKyAgICB9OworCit9CkluZGV4OiBo
dG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodG1sL0hUTUxCdXR0b25F
bGVtZW50LmlkbAkocmV2aXNpb24gMCkKKysrIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFw
cGxlIENvbXB1dGVyLCBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorICogQm9zdG9uLCBNQSAwMjExMS0xMzA3
LCBVU0EuCisgKi8KKworbW9kdWxlIGh0bWwgeworCisgICAgaW50ZXJmYWNlIFtMZWdhY3lQYXJl
bnQ9S0pTOjpKU0hUTUxFbGVtZW50XSBIVE1MQnV0dG9uRWxlbWVudCA6IEhUTUxFbGVtZW50IHsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBIVE1MRm9ybUVsZW1lbnQgICAgICBmb3JtOwor
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAgIGFjY2Vzc0tl
eTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICBkaXNh
YmxlZDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICBu
YW1lOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGxvbmcgICAgICAgICAgICAgICAgIHRh
YkluZGV4OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAg
IHR5cGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAg
dmFsdWU7CisgICAgfTsKKworfQpJbmRleDogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQor
KysgaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1
aXRlIDMzMCwKKyAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorICovCisKK21vZHVsZSBo
dG1sIHsKKworICAgIGludGVyZmFjZSBbTGVnYWN5UGFyZW50PUtKUzo6SlNIVE1MRWxlbWVudF0g
SFRNTFRleHRBcmVhRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICAgICAgICAgICAgICAgYXR0
cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICBkZWZhdWx0VmFsdWU7CisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSAgSFRNTEZvcm1FbGVtZW50ICAgICAgZm9ybTsKKyAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICBhY2Nlc3NLZXk7CisgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSAgbG9uZyAgICAgICAgICAgICAgICAgY29sczsKKyAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICBkaXNhYmxlZDsKKyAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICBuYW1lOworICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIHJlYWRPbmx5OworICAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGUgIGxvbmcgICAgICAgICAgICAgICAgIHJvd3M7CisgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSAgbG9uZyAgICAgICAgICAgICAgICAgdGFiSW5kZXg7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgdHlwZTsKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICB2YWx1ZTsKKyAgICAg
ICAgCisgICAgICAgIHZvaWQgICAgIGJsdXIoKTsKKyAgICAgICAgdm9pZCAgICAgZm9jdXMoKTsK
KyAgICAgICAgdm9pZCAgICAgc2VsZWN0KCk7CisgICAgfTsKKworfQpJbmRleDogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTQ0MzQpCisrKyBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTY0NSw2ICs2NDUsMjMgQEAKIAkJQTgw
RTdCMTMwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTFRpdGxlRWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFN0IwOTBBMTlENjA2MDA3
RkI4QzUgLyogSlNIVE1MVGl0bGVFbGVtZW50LmNwcCAqLzsgfTsKIAkJQTgwRTdCMTQwQTE5RDYw
NjAwN0ZCOEM1IC8qIEpTSFRNTEhlYWRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3QjBBMEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hU
TUxIZWFkRWxlbWVudC5jcHAgKi87IH07CiAJCUE4MEU3QjE1MEExOUQ2MDYwMDdGQjhDNSAvKiBK
U0hUTUxIZWFkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTgwRTdCMEIwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEhlYWRFbGVtZW50Lmgg
Ki87IH07CisJCUE4MEU3RTFBMEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MVGV4dEFyZWFFbGVtZW50
LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgw
RTdFMTYwQTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxUZXh0QXJlYUVsZW1lbnQuaWRsICovOyB9Owor
CQlBODBFN0UxQjBBMUE3Q0NCMDA3RkI4QzUgLyogSFRNTElucHV0RWxlbWVudC5pZGwgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3RTE3MEExQTdD
Q0IwMDdGQjhDNSAvKiBIVE1MSW5wdXRFbGVtZW50LmlkbCAqLzsgfTsKKwkJQTgwRTdFMUMwQTFB
N0NDQjAwN0ZCOEM1IC8qIEhUTUxPcHRpb25FbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTdFMTgwQTFBN0NDQjAwN0ZCOEM1IC8q
IEhUTUxPcHRpb25FbGVtZW50LmlkbCAqLzsgfTsKKwkJQTgwRTdFMUQwQTFBN0NDQjAwN0ZCOEM1
IC8qIEhUTUxPcHRHcm91cEVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFN0UxOTBBMUE3Q0NCMDA3RkI4QzUgLyogSFRNTE9wdEdy
b3VwRWxlbWVudC5pZGwgKi87IH07CisJCUE4MEU3RTU2MEExQTdGQjMwMDdGQjhDNSAvKiBIVE1M
QnV0dG9uRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4MEU3RTU1MEExQTdGQjMwMDdGQjhDNSAvKiBIVE1MQnV0dG9uRWxlbWVudC5p
ZGwgKi87IH07CisJCUE4MEU3RTY1MEExQTgyRUMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1l
bnRCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
ODBFN0U2MzBBMUE4MkVDMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5oICovOyB9
OworCQlBODBFN0U2NjBBMUE4MkVDMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFN0U2
NDBBMUE4MkVDMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5jcHAgKi87IH07CisJ
CUE4MEU3RTk3MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3RThEMEExQTgzRTMw
MDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnQuaCAqLzsgfTsKKwkJQTgwRTdFOTgwQTFBODNF
MzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFN0U4RTBBMUE4M0UzMDA3RkI4QzUgLyogSlNI
VE1MSW5wdXRFbGVtZW50LmNwcCAqLzsgfTsKKwkJQTgwRTdFOTkwQTFBODNFMzAwN0ZCOEM1IC8q
IEpTSFRNTE9wdGlvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4MEU3RThGMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxPcHRpb25FbGVt
ZW50LmggKi87IH07CisJCUE4MEU3RTlBMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxPcHRpb25F
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4MEU3RTkwMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxPcHRpb25FbGVtZW50LmNwcCAqLzsg
fTsKKwkJQTgwRTdFOUIwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTE9wdEdyb3VwRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTdFOTEw
QTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTE9wdEdyb3VwRWxlbWVudC5oICovOyB9OworCQlBODBF
N0U5QzBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MT3B0R3JvdXBFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3RTkyMEExQTgzRTMw
MDdGQjhDNSAvKiBKU0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwICovOyB9OworCQlBODBFN0U5RDBB
MUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MVGV4dEFyZWFFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFN0U5MzBBMUE4M0UzMDA3RkI4QzUg
LyogSlNIVE1MVGV4dEFyZWFFbGVtZW50LmggKi87IH07CisJCUE4MEU3RTlFMEExQTgzRTMwMDdG
QjhDNSAvKiBKU0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTdFOTQwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAgKi87IH07CisJCUE4MEU3RTlGMEExQTgzRTMwMDdGQjhDNSAv
KiBKU0hUTUxCdXR0b25FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBODBFN0U5NTBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MQnV0dG9uRWxl
bWVudC5oICovOyB9OworCQlBODBFN0VBMDBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MQnV0dG9u
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBODBFN0U5NjBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MQnV0dG9uRWxlbWVudC5jcHAgKi87
IH07CiAJCUE4MTM2OUNBMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MSXNJbmRleEVsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTM2OUFFMDk3
Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MSXNJbmRleEVsZW1lbnQuaCAqLzsgfTsKIAkJQTgxMzY5Q0Iw
OTczNzRGNjAwRDc0NDYzIC8qIEhUTUxJc0luZGV4RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEzNjlBRjA5NzM3NEY1MDBENzQ0NjMg
LyogSFRNTElzSW5kZXhFbGVtZW50LmNwcCAqLzsgfTsKIAkJQTgxMzY5Q0MwOTczNzRGNjAwRDc0
NDYzIC8qIEhUTUxJbnB1dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4MTM2OUIwMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MSW5wdXRFbGVt
ZW50LmggKi87IH07CkBAIC03MDAsNiArNzE3LDggQEAKIAkJQTgyMzlFMDAwOUIzQ0Y4QTAwQjYw
NjQxIC8qIExvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTgyMzlERkUwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuY3BwICovOyB9Owog
CQlBODIzOUUwMTA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgyMzlERkYwOUIzQ0Y4QTAwQjYwNjQxIC8q
IExvZ2dpbmcuaCAqLzsgfTsKIAkJQTgyM0E3NUMwOUI2RTUzOTAwQjYwNjQxIC8qIEdyYXBoaWNz
Q29udGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBODIzQTc1QjA5QjZFNTM5MDBCNjA2NDEgLyogR3JhcGhpY3NDb250ZXh0LmNwcCAqLzsgfTsK
KwkJQTgyNkU4QUUwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1
Y3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgy
NkU4QUMwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5o
ICovOyB9OworCQlBODI2RUM0ODBBMUIwQ0JFMDBDRDFCQjYgLyogSlNIVE1MT3B0aW9uRWxlbWVu
dENvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4MjZFOEFEMEExQThGMjMwMENEMUJCNiAvKiBKU0hUTUxPcHRpb25FbGVtZW50Q29u
c3RydWN0b3IuY3BwICovOyB9OwogCQlBODY2MjlDRjA5REEyQjQ3MDA5NjMzQTUgLyogSlNVSUV2
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODY2
MjlDOTA5REEyQjQ3MDA5NjMzQTUgLyogSlNVSUV2ZW50LmggKi87IH07CiAJCUE4NjYyOUQwMDlE
QTJCNDgwMDk2MzNBNSAvKiBKU1VJRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTg2NjI5Q0EwOURBMkI0NzAwOTYzM0E1IC8qIEpTVUlFdmVu
dC5jcHAgKi87IH07CiAJCUE4NjYyOUQxMDlEQTJCNDgwMDk2MzNBNSAvKiBKU01vdXNlRXZlbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NjYyOUNC
MDlEQTJCNDcwMDk2MzNBNSAvKiBKU01vdXNlRXZlbnQuaCAqLzsgfTsKQEAgLTIwNjcsNiArMjA4
NiwyMyBAQAogCQlBODBFN0IwOTBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MVGl0bGVFbGVtZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxUaXRsZUVs
ZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFN0IwQTBBMTlENjA2
MDA3RkI4QzUgLyogSlNIVE1MSGVhZEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTSFRNTEhlYWRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTgwRTdCMEIwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEhlYWRFbGVtZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxIZWFkRWxlbWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODBFN0UxNjBBMUE3Q0NCMDA3RkI4QzUg
LyogSFRNTFRleHRBcmVhRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxU
ZXh0QXJlYUVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODBFN0Ux
NzBBMUE3Q0NCMDA3RkI4QzUgLyogSFRNTElucHV0RWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEhUTUxJbnB1dEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBODBFN0UxODBBMUE3Q0NCMDA3RkI4QzUgLyogSFRNTE9wdGlvbkVsZW1lbnQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MT3B0aW9uRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUE4MEU3RTE5MEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MT3B0R3Jv
dXBFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE9wdEdyb3VwRWxlbWVu
dC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MEU3RTU1MEExQTdGQjMwMDdG
QjhDNSAvKiBIVE1MQnV0dG9uRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhU
TUxCdXR0b25FbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgwRTdF
NjMwQTFBODJFQzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVudEJhc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTElucHV0RWxlbWVudEJhc2UuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgwRTdFNjQwQTFBODJFQzAwN0ZCOEM1IC8qIEpTSFRN
TElucHV0RWxlbWVudEJhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTSFRNTElucHV0RWxlbWVudEJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBODBFN0U4RDBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxJbnB1dEVsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgwRTdFOEUwQTFBODNFMzAwN0ZCOEM1IC8qIEpT
SFRNTElucHV0RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNIVE1MSW5wdXRFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QTgwRTdFOEYwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTE9wdGlvbkVsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgwRTdFOTAwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRN
TE9wdGlvbkVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTSFRNTE9wdGlvbkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
ODBFN0U5MTBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MT3B0R3JvdXBFbGVtZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxPcHRHcm91cEVsZW1lbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgwRTdFOTIwQTFBODNFMzAwN0ZCOEM1IC8qIEpT
SFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNIVE1MT3B0R3JvdXBFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQTgwRTdFOTMwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTFRleHRBcmVhRWxlbWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MVGV4dEFyZWFFbGVtZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MEU3RTk0MEExQTgzRTMwMDdGQjhD
NSAvKiBKU0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTSFRNTFRleHRBcmVhRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUE4MEU3RTk1MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxCdXR0b25FbGVt
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxCdXR0b25FbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MEU3RTk2MEExQTgzRTMwMDdG
QjhDNSAvKiBKU0hUTUxCdXR0b25FbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0hUTUxCdXR0b25FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTgxMEUzOTMwOEE0MTYwRjAwMzMzRDk4IC8qIEtDYW52YXNUcmVlRGVidWcu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRX
aWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLQ2Fu
dmFzVHJlZURlYnVnLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwogCQlBODEwRTM5NDA4QTQxNjBGMDAzMzNEOTggLyogS0NhbnZhc1RyZWVE
ZWJ1Zy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
aW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEtDYW52YXNUcmVlRGVidWcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJX
aWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQTgxMjJDN0UwOEQ1NjRCMDAwODQ0RkEzIC8q
IEdldFNWR0RvY3VtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IEdldFNWR0RvY3VtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0yMjQzLDYgKzIyNzksOCBAQAogCQlBODIzOURGRTA5
QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTG9nZ2luZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4
MjM5REZGMDlCM0NGOEEwMEI2MDY0MSAvKiBMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBMb2dnaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4
MjNBNzVCMDlCNkU1MzkwMEI2MDY0MSAvKiBHcmFwaGljc0NvbnRleHQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MjZFOEFDMEExQThGMjMwMENEMUJCNiAvKiBKU0hUTUxP
cHRpb25FbGVtZW50Q29uc3RydWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBODI2RThBRDBBMUE4RjIzMDBDRDFCQjYgLyogSlNIVE1MT3B0aW9uRWxlbWVu
dENvbnN0cnVjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBODJGQzMzQjA4Q0JCMDdDMDBFRkVFMjMgLyogU1ZHQ3Vyc29yRWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0N1cnNv
ckVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07CiAJCUE4MkZDMzNDMDhDQkIwN0MwMEVGRUUyMyAvKiBTVkdDdXJzb3JFbGVtZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU1ZHQ3Vyc29yRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBODVEN0EyRjA4NzlFQkE5MDA2QTkxNzIgLyogUXVh
cnR6Q29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IFF1YXJ0ekNvcmUuZnJhbWV3b3Jr
OyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvUXVhcnR6Q29yZS5mcmFtZXdvcms7
IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CkBAIC0zMjgwLDYgKzMzMTgsOCBAQAogCQkJ
CTE0RTgzNzhEMDlGODVENEYwMEI4NUFFNCAvKiBKU0V2ZW50LmggKi8sCiAJCQkJQTgwRTdCMDgw
QTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEJhc2VFbGVtZW50LmNwcCAqLywKIAkJCQlBODBFN0Iw
NzBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MQmFzZUVsZW1lbnQuaCAqLywKKwkJCQlBODBFN0U5
NjBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MQnV0dG9uRWxlbWVudC5jcHAgKi8sCisJCQkJQTgw
RTdFOTUwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTEJ1dHRvbkVsZW1lbnQuaCAqLywKIAkJCQk5
MzhFNjY1RjA5RjA5QjgxMDA4QTQ4RUMgLyogSlNIVE1MQ2FudmFzRWxlbWVudC5jcHAgKi8sCiAJ
CQkJOTM4RTY2NjEwOUYwOUI4NzAwOEE0OEVDIC8qIEpTSFRNTENhbnZhc0VsZW1lbnQuaCAqLywK
IAkJCQkxQTQ5NEUzMjBBMTIzNThBMDBGREFGQzEgLyogSlNIVE1MRG9jdW1lbnQuY3BwICovLApA
QCAtMzI4OCwxMiArMzMyOCwyMCBAQAogCQkJCTFBNDk0QkY5MEExMjJGNDQwMEZEQUZDMSAvKiBK
U0hUTUxFbGVtZW50LmggKi8sCiAJCQkJQTgwRTdCMEEwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRN
TEhlYWRFbGVtZW50LmNwcCAqLywKIAkJCQlBODBFN0IwQjBBMTlENjA2MDA3RkI4QzUgLyogSlNI
VE1MSGVhZEVsZW1lbnQuaCAqLywKKwkJCQlBODBFN0U4RTBBMUE4M0UzMDA3RkI4QzUgLyogSlNI
VE1MSW5wdXRFbGVtZW50LmNwcCAqLywKKwkJCQlBODBFN0U4RDBBMUE4M0UzMDA3RkI4QzUgLyog
SlNIVE1MSW5wdXRFbGVtZW50LmggKi8sCiAJCQkJQTgwRTdCMDYwQTE5RDYwNjAwN0ZCOEM1IC8q
IEpTSFRNTExpbmtFbGVtZW50LmNwcCAqLywKIAkJCQlBODBFN0IwMzBBMTlENjA2MDA3RkI4QzUg
LyogSlNIVE1MTGlua0VsZW1lbnQuaCAqLywKIAkJCQlBODBFN0ExNTBBMTlDM0Q2MDA3RkI4QzUg
LyogSlNIVE1MTWV0YUVsZW1lbnQuY3BwICovLAogCQkJCUE4MEU3QTE2MEExOUMzRDYwMDdGQjhD
NSAvKiBKU0hUTUxNZXRhRWxlbWVudC5oICovLAorCQkJCUE4MEU3RTkyMEExQTgzRTMwMDdGQjhD
NSAvKiBKU0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwICovLAorCQkJCUE4MEU3RTkxMEExQTgzRTMw
MDdGQjhDNSAvKiBKU0hUTUxPcHRHcm91cEVsZW1lbnQuaCAqLywKKwkJCQlBODBFN0U5MDBBMUE4
M0UzMDA3RkI4QzUgLyogSlNIVE1MT3B0aW9uRWxlbWVudC5jcHAgKi8sCisJCQkJQTgwRTdFOEYw
QTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnQuaCAqLywKIAkJCQlBODBFN0Iw
NTBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MU3R5bGVFbGVtZW50LmNwcCAqLywKIAkJCQlBODBF
N0IwNDBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MU3R5bGVFbGVtZW50LmggKi8sCisJCQkJQTgw
RTdFOTQwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgKi8sCisJ
CQkJQTgwRTdFOTMwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTFRleHRBcmVhRWxlbWVudC5oICov
LAogCQkJCUE4MEU3QjA5MEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxUaXRsZUVsZW1lbnQuY3Bw
ICovLAogCQkJCUE4MEU3QjAyMEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxUaXRsZUVsZW1lbnQu
aCAqLywKIAkJCQlBODY2MjlDRTA5REEyQjQ3MDA5NjMzQTUgLyogSlNLZXlib2FyZEV2ZW50LmNw
cCAqLywKQEAgLTM2MzgsNiArMzY4Niw3IEBACiAJCQkJQThDRkY3QTAwQTE1Njk3ODAwMEE0MjM0
IC8qIEhUTUxCUkVsZW1lbnQuaCAqLywKIAkJCQlBODEzNjlCNzA5NzM3NEY1MDBENzQ0NjMgLyog
SFRNTEJ1dHRvbkVsZW1lbnQuY3BwICovLAogCQkJCUE4MTM2OUI2MDk3Mzc0RjUwMEQ3NDQ2MyAv
KiBIVE1MQnV0dG9uRWxlbWVudC5oICovLAorCQkJCUE4MEU3RTU1MEExQTdGQjMwMDdGQjhDNSAv
KiBIVE1MQnV0dG9uRWxlbWVudC5pZGwgKi8sCiAJCQkJNTFGNkEzRDUwNjYzQkYwNDAwNEQyOTE5
IC8qIEhUTUxDYW52YXNFbGVtZW50LmNwcCAqLywKIAkJCQk1MUY2QTNENjA2NjNCRjA0MDA0RDI5
MTkgLyogSFRNTENhbnZhc0VsZW1lbnQuaCAqLywKIAkJCQk5MzhFNjYyNTA5RjA5OTU2MDA4QTQ4
RUMgLyogSFRNTENhbnZhc0VsZW1lbnQuaWRsICovLApAQCAtMzY5MCw2ICszNzM5LDcgQEAKIAkJ
CQlBOEVBN0QyMzBBMTkzODU1MDBBOEVGNUYgLyogSFRNTEltYWdlTG9hZGVyLmggKi8sCiAJCQkJ
QTgxMzY5QjEwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxJbnB1dEVsZW1lbnQuY3BwICovLAogCQkJ
CUE4MTM2OUIwMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MSW5wdXRFbGVtZW50LmggKi8sCisJCQkJ
QTgwRTdFMTcwQTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxJbnB1dEVsZW1lbnQuaWRsICovLAogCQkJ
CUE4MTM2OUFGMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MSXNJbmRleEVsZW1lbnQuY3BwICovLAog
CQkJCUE4MTM2OUFFMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MSXNJbmRleEVsZW1lbnQuaCAqLywK
IAkJCQlBODEzNjlDOTA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTEtleWdlbkVsZW1lbnQuY3BwICov
LApAQCAtMzcyNCw4ICszNzc0LDEwIEBACiAJCQkJQThFQTc5RTUwQTE5MTZERjAwQThFRjVGIC8q
IEhUTUxPTGlzdEVsZW1lbnQuaCAqLywKIAkJCQlBODEzNjlDMzA5NzM3NEY1MDBENzQ0NjMgLyog
SFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgKi8sCiAJCQkJQTgxMzY5QzIwOTczNzRGNTAwRDc0NDYz
IC8qIEhUTUxPcHRHcm91cEVsZW1lbnQuaCAqLywKKwkJCQlBODBFN0UxOTBBMUE3Q0NCMDA3RkI4
QzUgLyogSFRNTE9wdEdyb3VwRWxlbWVudC5pZGwgKi8sCiAJCQkJQTgxMzY5QzEwOTczNzRGNTAw
RDc0NDYzIC8qIEhUTUxPcHRpb25FbGVtZW50LmNwcCAqLywKIAkJCQlBODEzNjlDMDA5NzM3NEY1
MDBENzQ0NjMgLyogSFRNTE9wdGlvbkVsZW1lbnQuaCAqLywKKwkJCQlBODBFN0UxODBBMUE3Q0NC
MDA3RkI4QzUgLyogSFRNTE9wdGlvbkVsZW1lbnQuaWRsICovLAogCQkJCTkzMjdBOTQxMDk5NjhE
MUEwMDY4QTU0NiAvKiBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwICovLAogCQkJCUE4MTM2OUJF
MDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCAqLywKIAkJCQlBOEVB
N0NBNDBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTFBhcmFncmFwaEVsZW1lbnQuY3BwICovLApAQCAt
Mzc2Myw2ICszODE1LDcgQEAKIAkJCQlBODcxREIxNzBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQuaCAqLywKIAkJCQlBODEzNjlCQjA5NzM3NEY1MDBENzQ0NjMgLyog
SFRNTFRleHRBcmVhRWxlbWVudC5jcHAgKi8sCiAJCQkJQTgxMzY5QkEwOTczNzRGNTAwRDc0NDYz
IC8qIEhUTUxUZXh0QXJlYUVsZW1lbnQuaCAqLywKKwkJCQlBODBFN0UxNjBBMUE3Q0NCMDA3RkI4
QzUgLyogSFRNTFRleHRBcmVhRWxlbWVudC5pZGwgKi8sCiAJCQkJQUIyM0EzMTAwOUJCQTc3NjAw
NjdDQzUzIC8qIEhUTUxUZXh0RmllbGRJbm5lckVsZW1lbnQuY3BwICovLAogCQkJCUFCMjNBMzEx
MDlCQkE3NzYwMDY3Q0M1MyAvKiBIVE1MVGV4dEZpZWxkSW5uZXJFbGVtZW50LmggKi8sCiAJCQkJ
QTg3MURDMUQwQTE1MjA1NzAwQjEyQTY4IC8qIEhUTUxUaXRsZUVsZW1lbnQuY3BwICovLApAQCAt
NDQxMyw2ICs0NDY2LDEwIEBACiAJCQkJOTNCNzBENDAwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTRE9N
UGFyc2VyLmggKi8sCiAJCQkJOTM4RTY1RjYwOUYwOTg1RDAwOEE0OEVDIC8qIEpTSFRNTEVsZW1l
bnRXcmFwcGVyRmFjdG9yeS5jcHAgKi8sCiAJCQkJOTM4RTY1RjAwOUYwOTg0MDAwOEE0OEVDIC8q
IEpTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5oICovLAorCQkJCUE4MEU3RTY0MEExQTgyRUMw
MDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmNwcCAqLywKKwkJCQlBODBFN0U2MzBB
MUE4MkVDMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5oICovLAorCQkJCUE4MjZF
OEFEMEExQThGMjMwMENEMUJCNiAvKiBKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuY3Bw
ICovLAorCQkJCUE4MjZFOEFDMEExQThGMjMwMENEMUJCNiAvKiBKU0hUTUxPcHRpb25FbGVtZW50
Q29uc3RydWN0b3IuaCAqLywKIAkJCQk5M0I3MEQ0MTA5RUIwQzdDMDA5RDg0NjggLyogSlNYTUxI
dHRwUmVxdWVzdC5jcHAgKi8sCiAJCQkJOTNCNzBENDIwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTWE1M
SHR0cFJlcXVlc3QuaCAqLywKIAkJCQk5M0I3MEQ0MzA5RUIwQzdDMDA5RDg0NjggLyogSlNYTUxT
ZXJpYWxpemVyLmNwcCAqLywKQEAgLTU3NDEsNiArNTc5OCwxMyBAQAogCQkJCUE4MEU3QjBFMEEx
OUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxTdHlsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4MEU3QjExMEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxCYXNlRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTgwRTdCMTUwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEhlYWRFbGVtZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQlBODBFN0U2NTBBMUE4MkVDMDA3RkI4QzUgLyogSlNIVE1M
SW5wdXRFbGVtZW50QmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTgwRTdFOTcwQTFBODNFMzAw
N0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTgwRTdF
OTkwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCUE4MEU3RTlCMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxPcHRHcm91cEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCUE4MEU3RTlEMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxU
ZXh0QXJlYUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4MEU3RTlGMEExQTgzRTMwMDdG
QjhDNSAvKiBKU0hUTUxCdXR0b25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBODI2RThB
RTBBMUE4RjIzMDBDRDFCQjYgLyogSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKQEAgLTU5MDEsNiArNTk2NSwxMSBAQAogCQkJCUE4MEU3QUI1MEExOUQxRjEw
MDdGQjhDNSAvKiBIVE1MTGlua0VsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKIAkJCQlBODBF
N0FCNjBBMTlEMUYxMDA3RkI4QzUgLyogSFRNTEhlYWRFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMg
Ki8sCiAJCQkJQTgwRTdBQjcwQTE5RDFGMTAwN0ZCOEM1IC8qIEhUTUxTdHlsZUVsZW1lbnQuaWRs
IGluIFJlc291cmNlcyAqLywKKwkJCQlBODBFN0UxQTBBMUE3Q0NCMDA3RkI4QzUgLyogSFRNTFRl
eHRBcmVhRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MEU3RTFCMEExQTdDQ0Iw
MDdGQjhDNSAvKiBIVE1MSW5wdXRFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgw
RTdFMUMwQTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxPcHRpb25FbGVtZW50LmlkbCBpbiBSZXNvdXJj
ZXMgKi8sCisJCQkJQTgwRTdFMUQwQTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxPcHRHcm91cEVsZW1l
bnQuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODBFN0U1NjBBMUE3RkIzMDA3RkI4QzUgLyog
SFRNTEJ1dHRvbkVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTY1ODQsNiArNjY1Mywx
MyBAQAogCQkJCUE4MEU3QjEyMEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxCYXNlRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFN0IxMzBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1M
VGl0bGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU3QjE0MEExOUQ2MDYwMDdG
QjhDNSAvKiBKU0hUTUxIZWFkRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBODBFN0U2
NjBBMUE4MkVDMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlBODBFN0U5ODBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4MEU3RTlBMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hU
TUxPcHRpb25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4MEU3RTlDMEExQTgzRTMw
MDdGQjhDNSAvKiBKU0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
QTgwRTdFOUUwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTFRleHRBcmVhRWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlBODBFN0VBMDBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MQnV0dG9u
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBODI2RUM0ODBBMUIwQ0JFMDBDRDFCQjYg
LyogSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRl
eDogQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIENoYW5nZUxvZwkocmV2aXNpb24gMTQ0MzQpCisr
KyBDaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MCBAQAorMjAwNi0wNS0xNyAg
RXJpYyBTZWlkZWwgIDxlc2VpZGVsQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVCdXR0b25XcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUlucHV0V3JhcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVPcHRHcm91cFdyYXBwZXIpOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlT3B0aW9uV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVU
ZXh0QXJlYVdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSlNXcmFwcGVyKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1lbnRCYXNlUHJvdG9GdW5jOjpjYWxsQXNG
dW5jdGlvbik6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1M
SW5wdXRFbGVtZW50QmFzZTo6SlNIVE1MSW5wdXRFbGVtZW50QmFzZSk6CisgICAgICAgIChXZWJD
b3JlOjpKU0hUTUxJbnB1dEVsZW1lbnRCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEJhc2UuaDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1lbnRCYXNlOjpjbGFzc0luZm8pOgorICAgICAgICAo
V2ViQ29yZTo6SlNIVE1MSW5wdXRFbGVtZW50QmFzZTo6KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
SFRNTElucHV0RWxlbWVudEJhc2U6OmltcGwpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRN
TE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
SlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yOjpKU0hUTUxPcHRpb25FbGVtZW50Q29uc3Ry
dWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9y
OjppbXBsZW1lbnRzQ29uc3RydWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTE9wdGlvbkVs
ZW1lbnRDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hU
TUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mv
anMva2pzX2RvbW5vZGUuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ranNfaHRtbC5jcHA6Cisg
ICAgICAgIChLSlM6Oik6CisgICAgICAgIChLSlM6OkpTSFRNTEVsZW1lbnQ6OmNsYXNzSW5mbyk6
CisgICAgICAgIChLSlM6OkpTSFRNTEVsZW1lbnQ6OmFjY2Vzc29ycyk6CisgICAgICAgIChLSlM6
OkpTSFRNTEVsZW1lbnQ6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChLSlM6OkhUTUxF
bGVtZW50RnVuY3Rpb246OmNhbGxBc0Z1bmN0aW9uKToKKyAgICAgICAgKEtKUzo6SlNIVE1MRWxl
bWVudDo6cHV0KToKKyAgICAgICAgKEtKUzo6SlNIVE1MRWxlbWVudDo6aHRtbFNldHRlcik6Cisg
ICAgICAgICogYmluZGluZ3MvanMva2pzX2h0bWwuaDoKKyAgICAgICAgKEtKUzo6SlNIVE1MRWxl
bWVudDo6KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ranNfd2luZG93LmNwcDoKKyAgICAgICAg
KEtKUzo6V2luZG93OjpnZXRWYWx1ZVByb3BlcnR5KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBodG1sL0hUTUxCdXR0b25FbGVtZW50
LmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbDogQWRkZWQu
CisgICAgICAgICogaHRtbC9IVE1MT3B0R3JvdXBFbGVtZW50LmlkbDogQWRkZWQuCisgICAgICAg
ICogaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5pZGw6IEFkZGVkLgorCiAyMDA2LTA1LTE3ICBNaXR6IFBldHRlbCAg
PG9wZW5kYXJ3aW4ub3JnQG1pdHpwZXR0ZWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1h
Y2llaiwgdHdlYWtlZCBieSBEYXJpbi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8365</attachid>
            <date>2006-05-17 03:18:19 -0700</date>
            <delta_ts>2006-05-17 14:55:51 -0700</delta_ts>
            <desc>A bit closer, not quiet there yet.</desc>
            <filename>closer.patch</filename>
            <type>text/plain</type>
            <size>91538</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAxNDQzNCkKKysr
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0x
MjAsNiArMTIwLDggQEAgc3ViIEdldExlZ2FjeUhlYWRlckluY2x1ZGVzCiAgIG15ICRsZWdhY3lQ
YXJlbnQgPSBzaGlmdDsKICAgaWYgKCRsZWdhY3lQYXJlbnQgZXEgIkpTQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJEQmFzZSIpIHsKICAgICByZXR1cm4gIiNpbmNsdWRlIFwiSlNDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRCYXNlLmhcIlxuXG4iOworICB9IGVsc2lmICgkbGVnYWN5UGFyZW50IGVxICJK
U0hUTUxJbnB1dEVsZW1lbnRCYXNlIikgeworICAgICAgcmV0dXJuICIjaW5jbHVkZSBcIkpTSFRN
TElucHV0RWxlbWVudEJhc2UuaFwiXG5cbiI7CiAgIH0gZWxzaWYgKCRsZWdhY3lQYXJlbnQgZXEg
IktKUzo6V2luZG93IikgewogICAgICAgcmV0dXJuICIjaW5jbHVkZSBcImtqc193aW5kb3cuaFwi
XG5cbiI7CiAgIH0gZWxzaWYgKCRsZWdhY3lQYXJlbnQgZXEgIktKUzo6RE9NTm9kZSIpIHsKQEAg
LTYwNCw3ICs2MDYsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8JGNsYXNzTmFtZSwgJHBh
cmVudENsYXNzTmFtZT4oZXhlYywgJiR7Y2xhc3NOYW1lfVRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpO1xuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwogICAKLSAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIkpTVmFsdWUqICR7Y2xhc3NOYW1lfTo6Z2V0VmFsdWVQcm9w
ZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbikgY29uc3RcbntcbiIpOworICAgIHB1c2go
QGltcGxDb250ZW50LCAiSlNWYWx1ZSogJHtjbGFzc05hbWV9OjpnZXRWYWx1ZVByb3BlcnR5KEV4
ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdFxue1xuIik7CiAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgJGltcGxDbGFzc05hbWUqIGltcGwgPSBzdGF0aWNfY2FzdDwkaW1wbENsYXNz
TmFtZSo+KCR7Y2xhc3NOYW1lfTo6aW1wbCgpKTtcblxuIik7CiAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgc3dpdGNoICh0b2tlbikge1xuIik7CiAKQEAgLTEwMTIsNiArMTAxNCwxMCBAQCBz
dWIgTmF0aXZlVG9KU1ZhbHVlCiAgIH0gZWxzaWYgKCR0eXBlIGVxICJET01PYmplY3QiKSB7CiAg
ICAgJGltcGxJbmNsdWRlc3siSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlLmgifSA9IDE7
CiAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsICR2YWx1ZSkiOworICB9IGVsc2lmICgkdHlwZSBlcSAi
SFRNTEZvcm1FbGVtZW50IikgeworICAgICRpbXBsSW5jbHVkZXN7Imtqc19odG1sLmgifSA9IDE7
CisgICAgJGltcGxJbmNsdWRlc3siSFRNTEZvcm1FbGVtZW50LmgifSA9IDE7CisgICAgcmV0dXJu
ICJ0b0pTKGV4ZWMsICR2YWx1ZSkiOwogICB9IGVsc2UgewogICAgICRpbXBsSW5jbHVkZXN7IkpT
JHR5cGUuaCJ9ID0gMTsKICAgICByZXR1cm4gInRvSlMoZXhlYywgJHZhbHVlKSI7CkBAIC0xMjM5
LDcgKzEyNDUsNyBAQCBFT0YKICAgICBpZiAoJGNhbkNvbnN0cnVjdCkgewogJGltcGxDb250ZW50
IC49IDw8ICJFT0YiOwogICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ29uc3RydWN0KCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgSlNPYmplY3QqIGNvbnN0cnVjdChFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IExpc3QgJmFyZ3MpIHsgcmV0dXJuIHN0YXRpY19jYXN0PEpTT2Jq
ZWN0ICo+KHRvSlMoZXhlYywgbmV3ICRpbnRlcmZhY2VOYW1lKSk7IH0KKyAgICB2aXJ0dWFsIEpT
T2JqZWN0KiBjb25zdHJ1Y3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBMaXN0JiBhcmdzKSB7IHJl
dHVybiBzdGF0aWNfY2FzdDxKU09iamVjdCo+KHRvSlMoZXhlYywgbmV3ICRpbnRlcmZhY2VOYW1l
KSk7IH0KIEVPRgogICAgIH0KIApJbmRleDogYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uRWxlbWVu
dENvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uRWxl
bWVudENvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDApCisrKyBiaW5kaW5ncy9qcy9KU0hUTUxPcHRp
b25FbGVtZW50Q29uc3RydWN0b3IuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwK
KyAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorICovCisKKyNpZm5kZWYgSlNIVE1MT3B0
aW9uRWxlbWVudENvbnN0cnVjdG9yX0gKKyNkZWZpbmUgSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0
cnVjdG9yX0gKKworI2luY2x1ZGUgImtqc19iaW5kaW5nLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBKU0hUTUxPcHRpb25FbGVt
ZW50Q29uc3RydWN0b3IgOiBwdWJsaWMgS0pTOjpET01PYmplY3QgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yKEtKUzo6RXhlY1N0YXRlKiwgRG9j
dW1lbnQqKTsKKyAgICAgICAgdmlydHVhbCBib29sIGltcGxlbWVudHNDb25zdHJ1Y3QoKSBjb25z
dDsKKyAgICAgICAgdmlydHVhbCBLSlM6OkpTT2JqZWN0ICpjb25zdHJ1Y3QoS0pTOjpFeGVjU3Rh
dGUqLCBjb25zdCBLSlM6Okxpc3QmIGFyZ3MpOworICAgIHByaXZhdGU6CisgICAgICAgIFJlZlB0
cjxEb2N1bWVudD4gbV9kb2M7CisgICAgfTsKKworfQorCisjZW5kaWYKSW5kZXg6IGJpbmRpbmdz
L2pzL2tqc19odG1sLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYmluZGluZ3MvanMva2pzX2h0bWwuaAkocmV2
aXNpb24gMTQ0MzQpCisrKyBiaW5kaW5ncy9qcy9ranNfaHRtbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC03OSw4ICs3OSw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHN0YXRpYyBjb25zdCBDbGFzc0lu
Zm8gaW5mbzsKIAogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gaHRtbF9pbmZvLCBpc0luZGV4
X2luZm8sIGJvZHlfaW5mbywgZm9ybV9pbmZvLAotICAgICAgc2VsZWN0X2luZm8sIG9wdEdyb3Vw
X2luZm8sIG9wdGlvbl9pbmZvLCBpbnB1dF9pbmZvLCB0ZXh0QXJlYV9pbmZvLAotICAgICAgYnV0
dG9uX2luZm8sIGxhYmVsX2luZm8sIGZpZWxkU2V0X2luZm8sIGxlZ2VuZF9pbmZvLCB1bF9pbmZv
LCBvbF9pbmZvLAorICAgICAgc2VsZWN0X2luZm8sIGxhYmVsX2luZm8sIGZpZWxkU2V0X2luZm8s
IGxlZ2VuZF9pbmZvLCB1bF9pbmZvLCBvbF9pbmZvLAogICAgICAgZGxfaW5mbywgZGlyX2luZm8s
IG1lbnVfaW5mbywgbGlfaW5mbywgZGl2X2luZm8sIHBfaW5mbywgaGVhZGluZ19pbmZvLAogICAg
ICAgYmxvY2tRdW90ZV9pbmZvLCBxX2luZm8sIHByZV9pbmZvLCBicl9pbmZvLCBiYXNlRm9udF9p
bmZvLCBmb250X2luZm8sCiAgICAgICBocl9pbmZvLCBtb2RfaW5mbywgYV9pbmZvLCBpbWdfaW5m
bywgb2JqZWN0X2luZm8sIHBhcmFtX2luZm8sCkBAIC05NCw4ICs5Myw3IEBAIG5hbWVzcGFjZSBL
SlMgewogICAgIHN0cnVjdCBBY2Nlc3NvcnMgeyBHZXR0ZXJGdW5jdGlvbiBtX2dldHRlcjsgU2V0
dGVyRnVuY3Rpb24gbV9zZXR0ZXI7IH07CiAgICAgY29uc3QgQWNjZXNzb3JzKiBhY2Nlc3NvcnMo
KSBjb25zdDsKICAgICBzdGF0aWMgY29uc3QgQWNjZXNzb3JzIGh0bWxfYWNjZXNzb3JzLCBpc0lu
ZGV4X2FjY2Vzc29ycywgYm9keV9hY2Nlc3NvcnMsIGZvcm1fYWNjZXNzb3JzLAotICAgICAgc2Vs
ZWN0X2FjY2Vzc29ycywgb3B0R3JvdXBfYWNjZXNzb3JzLCBvcHRpb25fYWNjZXNzb3JzLCBpbnB1
dF9hY2Nlc3NvcnMsIHRleHRBcmVhX2FjY2Vzc29ycywKLSAgICAgIGJ1dHRvbl9hY2Nlc3NvcnMs
IGxhYmVsX2FjY2Vzc29ycywgZmllbGRTZXRfYWNjZXNzb3JzLCBsZWdlbmRfYWNjZXNzb3JzLCB1
bF9hY2Nlc3NvcnMsIG9sX2FjY2Vzc29ycywKKyAgICAgIHNlbGVjdF9hY2Nlc3NvcnMsIGxhYmVs
X2FjY2Vzc29ycywgZmllbGRTZXRfYWNjZXNzb3JzLCBsZWdlbmRfYWNjZXNzb3JzLCB1bF9hY2Nl
c3NvcnMsIG9sX2FjY2Vzc29ycywKICAgICAgIGRsX2FjY2Vzc29ycywgZGlyX2FjY2Vzc29ycywg
bWVudV9hY2Nlc3NvcnMsIGxpX2FjY2Vzc29ycywgZGl2X2FjY2Vzc29ycywgcF9hY2Nlc3NvcnMs
IGhlYWRpbmdfYWNjZXNzb3JzLAogICAgICAgYmxvY2tRdW90ZV9hY2Nlc3NvcnMsIHFfYWNjZXNz
b3JzLCBwcmVfYWNjZXNzb3JzLCBicl9hY2Nlc3NvcnMsIGJhc2VGb250X2FjY2Vzc29ycywgZm9u
dF9hY2Nlc3NvcnMsCiAgICAgICBocl9hY2Nlc3NvcnMsIG1vZF9hY2Nlc3NvcnMsIGFfYWNjZXNz
b3JzLCBpbWdfYWNjZXNzb3JzLCBvYmplY3RfYWNjZXNzb3JzLCBwYXJhbV9hY2Nlc3NvcnMsCkBA
IC0xMTMsMTYgKzExMSw2IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHZvaWQgIGZvcm1TZXR0ZXIo
RXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBjb25zdCBXZWJDb3Jl
OjpTdHJpbmcmIHN0cik7CiAgICAgSlNWYWx1ZSAqc2VsZWN0R2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgaW50IHRva2VuKSBjb25zdDsKICAgICB2b2lkICBzZWxlY3RTZXR0ZXIoRXhlY1N0YXRlICpl
eGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIHN0
cik7Ci0gICAgSlNWYWx1ZSAqb3B0R3JvdXBHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9r
ZW4pIGNvbnN0OwotICAgIHZvaWQgIG9wdEdyb3VwU2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgaW50
IHRva2VuLCBKU1ZhbHVlICp2YWx1ZSwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzdHIpOwotICAg
IEpTVmFsdWUgKm9wdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29uc3Q7
Ci0gICAgdm9pZCAgb3B0aW9uU2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuLCBKU1Zh
bHVlICp2YWx1ZSwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzdHIpOwotICAgIEpTVmFsdWUgKmlu
cHV0R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdDsKLSAgICB2b2lkICBp
bnB1dFNldHRlcihFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbiwgSlNWYWx1ZSAqdmFsdWUsIGNv
bnN0IFdlYkNvcmU6OlN0cmluZyYgc3RyKTsKLSAgICBKU1ZhbHVlICp0ZXh0QXJlYUdldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29uc3Q7Ci0gICAgdm9pZCAgdGV4dEFyZWFTZXR0
ZXIoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBjb25zdCBXZWJD
b3JlOjpTdHJpbmcmIHN0cik7Ci0gICAgSlNWYWx1ZSAqYnV0dG9uR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgaW50IHRva2VuKSBjb25zdDsKLSAgICB2b2lkICBidXR0b25TZXR0ZXIoRXhlY1N0YXRl
ICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcm
IHN0cik7CiAgICAgSlNWYWx1ZSAqbGFiZWxHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9r
ZW4pIGNvbnN0OwogICAgIHZvaWQgIGxhYmVsU2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRv
a2VuLCBKU1ZhbHVlICp2YWx1ZSwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzdHIpOwogICAgIEpT
VmFsdWUgKmZpZWxkU2V0R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdDsK
QEAgLTIwMiwzMSArMTkwLDE1IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIEpTVmFsdWUgKm1hcnF1
ZWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNvbnN0OwogICAgIHZvaWQgIG1h
cnF1ZWVTZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBj
b25zdCBXZWJDb3JlOjpTdHJpbmcmIHN0cik7CiAKLSAgICBlbnVtIHsgSHRtbFZlcnNpb24sIEhl
YWRQcm9maWxlLCBMaW5rSHJlZiwgTGlua1JlbCwgTGlua01lZGlhLAotICAgICAgICAgICBMaW5r
Q2hhcnNldCwgTGlua0Rpc2FibGVkLCBMaW5rSHJlZkxhbmcsIExpbmtSZXYsIExpbmtUYXJnZXQs
IExpbmtUeXBlLAotICAgICAgICAgICBMaW5rU2hlZXQsIFRpdGxlVGV4dCwgTWV0YU5hbWUsIE1l
dGFIdHRwRXF1aXYsIE1ldGFDb250ZW50LCBNZXRhU2NoZW1lLAotICAgICAgICAgICBCYXNlSHJl
ZiwgQmFzZVRhcmdldCwgSXNJbmRleEZvcm0sIElzSW5kZXhQcm9tcHQsIFN0eWxlRGlzYWJsZWQs
Ci0gICAgICAgICAgIFN0eWxlU2hlZXQsIFN0eWxlVHlwZSwgU3R5bGVNZWRpYSwgQm9keUJhY2tn
cm91bmQsIEJvZHlWTGluaywgQm9keVRleHQsCisgICAgZW51bSB7IEh0bWxWZXJzaW9uLCBJc0lu
ZGV4Rm9ybSwgSXNJbmRleFByb21wdCwKKyAgICAgICAgICAgQm9keUJhY2tncm91bmQsIEJvZHlW
TGluaywgQm9keVRleHQsCiAgICAgICAgICAgIEJvZHlMaW5rLCBCb2R5QUxpbmssIEJvZHlCZ0Nv
bG9yLCBCb2R5U2Nyb2xsTGVmdCwgQm9keVNjcm9sbFRvcCwgQm9keVNjcm9sbEhlaWdodCwgQm9k
eVNjcm9sbFdpZHRoLAogICAgICAgICAgICBGb3JtQWN0aW9uLCBGb3JtRW5jVHlwZSwgRm9ybUVs
ZW1lbnRzLCBGb3JtTGVuZ3RoLCBGb3JtQWNjZXB0Q2hhcnNldCwKICAgICAgICAgICAgRm9ybVJl
c2V0LCBGb3JtVGFyZ2V0LCBGb3JtTmFtZSwgRm9ybU1ldGhvZCwgRm9ybVN1Ym1pdCwgU2VsZWN0
QWRkLAogICAgICAgICAgICBTZWxlY3RUYWJJbmRleCwgU2VsZWN0VmFsdWUsIFNlbGVjdFNlbGVj
dGVkSW5kZXgsIFNlbGVjdExlbmd0aCwKICAgICAgICAgICAgU2VsZWN0UmVtb3ZlLCBTZWxlY3RG
b3JtLCBTZWxlY3RCbHVyLCBTZWxlY3RUeXBlLCBTZWxlY3RPcHRpb25zLAogICAgICAgICAgICBT
ZWxlY3REaXNhYmxlZCwgU2VsZWN0TXVsdGlwbGUsIFNlbGVjdE5hbWUsIFNlbGVjdFNpemUsIFNl
bGVjdEZvY3VzLAotICAgICAgICAgICBPcHRHcm91cERpc2FibGVkLCBPcHRHcm91cExhYmVsLCBP
cHRpb25JbmRleCwgT3B0aW9uU2VsZWN0ZWQsCi0gICAgICAgICAgIE9wdGlvbkZvcm0sIE9wdGlv
blRleHQsIE9wdGlvbkRlZmF1bHRTZWxlY3RlZCwgT3B0aW9uRGlzYWJsZWQsCi0gICAgICAgICAg
IE9wdGlvbkxhYmVsLCBPcHRpb25WYWx1ZSwgSW5wdXRCbHVyLCBJbnB1dFJlYWRPbmx5LCBJbnB1
dEFjY2VwdCwKLSAgICAgICAgICAgSW5wdXRTaXplLCBJbnB1dERlZmF1bHRWYWx1ZSwgSW5wdXRU
YWJJbmRleCwgSW5wdXRWYWx1ZSwgSW5wdXRUeXBlLAotICAgICAgICAgICBJbnB1dEZvY3VzLCBJ
bnB1dE1heExlbmd0aCwgSW5wdXREZWZhdWx0Q2hlY2tlZCwgSW5wdXREaXNhYmxlZCwKLSAgICAg
ICAgICAgSW5wdXRDaGVja2VkLCBJbnB1dEluZGV0ZXJtaW5hdGUsIElucHV0Rm9ybSwgSW5wdXRB
Y2Nlc3NLZXksIElucHV0QWxpZ24sIElucHV0QWx0LAotICAgICAgICAgICBJbnB1dE5hbWUsIElu
cHV0U3JjLCBJbnB1dFVzZU1hcCwgSW5wdXRTZWxlY3QsIElucHV0Q2xpY2ssCi0gICAgICAgICAg
IElucHV0U2VsZWN0aW9uU3RhcnQsIElucHV0U2VsZWN0aW9uRW5kLCBJbnB1dFNldFNlbGVjdGlv
blJhbmdlLAotICAgICAgICAgICBUZXh0QXJlYUFjY2Vzc0tleSwgVGV4dEFyZWFOYW1lLCBUZXh0
QXJlYURlZmF1bHRWYWx1ZSwgVGV4dEFyZWFTZWxlY3QsIFRleHRBcmVhU2V0U2VsZWN0aW9uUmFu
Z2UsCi0gICAgICAgICAgIFRleHRBcmVhQ29scywgVGV4dEFyZWFEaXNhYmxlZCwgVGV4dEFyZWFG
b3JtLCBUZXh0QXJlYVR5cGUsCi0gICAgICAgICAgIFRleHRBcmVhVGFiSW5kZXgsIFRleHRBcmVh
UmVhZE9ubHksIFRleHRBcmVhUm93cywgVGV4dEFyZWFWYWx1ZSwKLSAgICAgICAgICAgVGV4dEFy
ZWFTZWxlY3Rpb25TdGFydCwgVGV4dEFyZWFTZWxlY3Rpb25FbmQsCi0gICAgICAgICAgIFRleHRB
cmVhQmx1ciwgVGV4dEFyZWFGb2N1cywgQnV0dG9uQmx1ciwgQnV0dG9uRm9jdXMsIEJ1dHRvbkZv
cm0sIEJ1dHRvblRhYkluZGV4LCBCdXR0b25OYW1lLAotICAgICAgICAgICBCdXR0b25EaXNhYmxl
ZCwgQnV0dG9uQWNjZXNzS2V5LCBCdXR0b25UeXBlLCBCdXR0b25WYWx1ZSwgTGFiZWxIdG1sRm9y
LAorICAgICAgICAgICBMYWJlbEh0bWxGb3IsCiAgICAgICAgICAgIExhYmVsRm9ybSwgTGFiZWxG
b2N1cywgTGFiZWxBY2Nlc3NLZXksIEZpZWxkU2V0Rm9ybSwgTGVnZW5kRm9ybSwgTGVnZW5kQWNj
ZXNzS2V5LAogICAgICAgICAgICBMZWdlbmRBbGlnbiwgTGVnZW5kRm9jdXMsIFVMaXN0VHlwZSwg
VUxpc3RDb21wYWN0LCBPTGlzdFN0YXJ0LCBPTGlzdENvbXBhY3QsCiAgICAgICAgICAgIE9MaXN0
VHlwZSwgRExpc3RDb21wYWN0LCBEaXJlY3RvcnlDb21wYWN0LCBNZW51Q29tcGFjdCwgTElUeXBl
LApAQCAtMzMyLDE3ICszMDQsNiBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICB2aXJ0dWFsIGJvb2wg
bWFzcXVlcmFkZUFzVW5kZWZpbmVkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICB9OwogICAK
LSAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBPcHRpb24gT2JqZWN0IC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwotCi0gIGNsYXNzIE9wdGlvbkNvbnN0cnVjdG9ySW1wIDogcHVibGljIERPTU9iamVj
dCB7Ci0gIHB1YmxpYzoKLSAgICBPcHRpb25Db25zdHJ1Y3RvckltcChFeGVjU3RhdGUgKmV4ZWMs
IFdlYkNvcmU6OkRvY3VtZW50ICpkKTsKLSAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NvbnN0
cnVjdCgpIGNvbnN0OwotICAgIHZpcnR1YWwgSlNPYmplY3QgKmNvbnN0cnVjdChFeGVjU3RhdGUg
KmV4ZWMsIGNvbnN0IExpc3QgJmFyZ3MpOwotICBwcml2YXRlOgotICAgIFJlZlB0cjxXZWJDb3Jl
OjpEb2N1bWVudD4gbV9kb2M7Ci0gIH07Ci0KICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBJbWFn
ZSBPYmplY3QgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKICAgY2xhc3MgSW1hZ2VDb25zdHJ1
Y3RvckltcCA6IHB1YmxpYyBET01PYmplY3QgewpJbmRleDogYmluZGluZ3MvanMvSlNIVE1MSW5w
dXRFbGVtZW50QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYmluZGluZ3MvanMvSlNIVE1MSW5wdXRF
bGVtZW50QmFzZS5jcHAJKHJldmlzaW9uIDApCisrKyBiaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVs
ZW1lbnRCYXNlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisg
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgor
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAqIEJvc3Rv
biwgTUEgMDIxMTEtMTMwNywgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJKU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmgiCisKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCisKKyNpbmNsdWRlICJKU0hUTUxJbnB1dEVsZW1lbnRCYXNlVGFibGUuY3BwIgorCit1
c2luZyBuYW1lc3BhY2UgS0pTOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8qCitAYmVnaW4g
SlNIVE1MSW5wdXRFbGVtZW50QmFzZVRhYmxlIDEKKyAgc2VsZWN0aW9uU3RhcnQgICAgICAgIFdl
YkNvcmU6OkpTSFRNTElucHV0RWxlbWVudEJhc2U6OlNlbGVjdGlvblN0YXJ0ICAgICAgICAgICAg
RG9udERlbGV0ZQorICBzZWxlY3Rpb25FbmQgICAgICAgICAgV2ViQ29yZTo6SlNIVE1MSW5wdXRF
bGVtZW50QmFzZTo6U2VsZWN0aW9uRW5kICAgICAgICAgICAgICBEb250RGVsZXRlCitAZW5kCitA
YmVnaW4gSlNIVE1MSW5wdXRFbGVtZW50QmFzZVByb3RvVGFibGUgMQorICBzZXRTZWxlY3Rpb25S
YW5nZSAgICAgV2ViQ29yZTo6SlNIVE1MSW5wdXRFbGVtZW50QmFzZTo6U2V0U2VsZWN0aW9uUmFu
Z2UgICAgICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDIKK0BlbmQKKyovCisKK0tKU19JTVBMRU1F
TlRfUFJPVE9GVU5DKEpTSFRNTElucHV0RWxlbWVudEJhc2VQcm90b0Z1bmMpCitLSlNfSU1QTEVN
RU5UX1BST1RPVFlQRSgiSlNIVE1MSW5wdXRFbGVtZW50QmFzZSIsIEpTSFRNTElucHV0RWxlbWVu
dEJhc2VQcm90bywgSlNIVE1MSW5wdXRFbGVtZW50QmFzZVByb3RvRnVuYykKKworSlNWYWx1ZSog
SlNIVE1MSW5wdXRFbGVtZW50QmFzZVByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCogdGhpc09iaiwgY29uc3QgTGlzdCYgYXJncykKK3sKKyAgICBIVE1M
SW5wdXRFbGVtZW50JiBpbnB1dCA9ICpzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oc3Rh
dGljX2Nhc3Q8SlNIVE1MSW5wdXRFbGVtZW50QmFzZSo+KHRoaXNPYmopLT5pbXBsKCkpOworICAg
IGlmIChpZCA9PSBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlOjpTZXRTZWxlY3Rpb25SYW5nZSkgewor
ICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShhcmdzWzBdLT50b0ludDMyKGV4ZWMpLCBh
cmdzWzFdLT50b0ludDMyKGV4ZWMpKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cisg
ICAgfQorICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworfQorCitjb25zdCBDbGFzc0luZm8gSlNI
VE1MSW5wdXRFbGVtZW50QmFzZTo6aW5mbyA9IHsgIkpTSFRNTElucHV0RWxlbWVudEJhc2UiLCAm
S0pTOjpKU0hUTUxFbGVtZW50OjppbmZvLCAmSlNIVE1MSW5wdXRFbGVtZW50QmFzZVRhYmxlLCAw
IH07CisKK0pTSFRNTElucHV0RWxlbWVudEJhc2U6OkpTSFRNTElucHV0RWxlbWVudEJhc2UoRXhl
Y1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPEhUTUxJbnB1dEVsZW1lbnQ+IGUpCisgICAgOiBLSlM6
OkpTSFRNTEVsZW1lbnQoZXhlYywgZS5nZXQoKSkKK3sKKyAgICBzZXRQcm90b3R5cGUoSlNIVE1M
SW5wdXRFbGVtZW50QmFzZVByb3RvOjpzZWxmKGV4ZWMpKTsKK30KKworYm9vbCBKU0hUTUxJbnB1
dEVsZW1lbnRCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK3sKKyAgICBIVE1M
SW5wdXRFbGVtZW50JiBlbGVtZW50ID0gKnN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihp
bXBsKCkpOworICAgIGNvbnN0IEhhc2hFbnRyeSogZW50cnkgPSBMb29rdXA6OmZpbmRFbnRyeSgm
SlNIVE1MSW5wdXRFbGVtZW50QmFzZVRhYmxlLCBwcm9wZXJ0eU5hbWUpOworICAgIGlmIChlbnRy
eSkgeworICAgICAgICAvLyBkb24ndCBleHBvc2Ugc2VsZWN0aW9uIHByb3BlcnRpZXMgZm9yIGlu
cHV0IHR5cGVzIHRoYXQgY2FuJ3QgaGF2ZSBhIHNlbGVjdGlvbgorICAgICAgICBzd2l0Y2ggKGVu
dHJ5LT52YWx1ZSkgeworICAgICAgICBjYXNlIFNldFNlbGVjdGlvblJhbmdlOgorICAgICAgICBj
YXNlIFNlbGVjdGlvblN0YXJ0OgorICAgICAgICBjYXNlIFNlbGVjdGlvbkVuZDoKKyAgICAgICAg
ICAgIGlmICghZWxlbWVudC5jYW5IYXZlU2VsZWN0aW9uKCkpCisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBpZiAoZW50cnktPmF0dHIgJiBGdW5j
dGlvbikKKyAgICAgICAgICAgICAgICBzbG90LnNldFN0YXRpY0VudHJ5KHRoaXMsIGVudHJ5LCBz
dGF0aWNGdW5jdGlvbkdldHRlcjxKU0hUTUxJbnB1dEVsZW1lbnRCYXNlUHJvdG9GdW5jPik7IAor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNsb3Quc2V0U3RhdGljRW50cnkodGhp
cywgZW50cnksIHN0YXRpY1ZhbHVlR2V0dGVyPEpTSFRNTElucHV0RWxlbWVudEJhc2U+KTsKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIC8vIEJh
c2UgSlNIVE1MSW5wdXRFbGVtZW50QmFzZSBzdHVmZiBvciBwYXJlbnQgY2xhc3MgZm9yd2FyZCwg
YXMgdXN1YWwKKyAgICByZXR1cm4gZ2V0U3RhdGljUHJvcGVydHlTbG90PEpTSFRNTElucHV0RWxl
bWVudEJhc2VQcm90b0Z1bmMsIEpTSFRNTElucHV0RWxlbWVudEJhc2UsIEtKUzo6SlNIVE1MRWxl
bWVudD4oZXhlYywgJkpTSFRNTElucHV0RWxlbWVudEJhc2VUYWJsZSwgdGhpcywgcHJvcGVydHlO
YW1lLCBzbG90KTsKK30KKworfQpJbmRleDogYmluZGluZ3MvanMva2pzX2RvbW5vZGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBiaW5kaW5ncy9qcy9ranNfZG9tbm9kZS5oCShyZXZpc2lvbiAxNDQzNCkKKysr
IGJpbmRpbmdzL2pzL2tqc19kb21ub2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDE4ICszNSwx
OCBAQCBLSlNfREVGSU5FX1BST1RPVFlQRShET01Ob2RlUHJvdG8pCiBjbGFzcyBET01Ob2RlIDog
cHVibGljIERPTU9iamVjdCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RE9NTm9kZSgpOwotICAg
IHZpcnR1YWwgYm9vbCB0b0Jvb2xlYW4oRXhlY1N0YXRlICopIGNvbnN0OwotICAgIHZpcnR1YWwg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQ
cm9wZXJ0eVNsb3QmKTsKLSAgICBKU1ZhbHVlICpnZXRWYWx1ZVByb3BlcnR5KEV4ZWNTdGF0ZSAq
ZXhlYywgaW50IHRva2VuKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgdG9Cb29sZWFuKEV4ZWNT
dGF0ZSopIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIEpTVmFsdWUgKmdl
dFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlKiwgaW50IHRva2VuKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgbWFyaygpOwotICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlICpleGVjLCBjb25z
dCBJZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgKnZhbHVlLCBpbnQgYXR0ciA9IE5v
bmUpOwotICAgIHZvaWQgcHV0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tl
biwgSlNWYWx1ZSAqdmFsdWUsIGludCBhdHRyKTsKKyAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNT
dGF0ZSosIGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSwgSlNWYWx1ZSosIGludCBhdHRy
ID0gTm9uZSk7CisgICAgdm9pZCBwdXRWYWx1ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGludCB0b2tl
biwgSlNWYWx1ZSosIGludCBhdHRyKTsKICAgICBXZWJDb3JlOjpOb2RlICppbXBsKCkgY29uc3Qg
eyByZXR1cm4gbV9pbXBsLmdldCgpOyB9CiAgICAgdmlydHVhbCBjb25zdCBDbGFzc0luZm8qIGNs
YXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZpbmZvOyB9CiAgICAgc3RhdGljIGNvbnN0IENsYXNz
SW5mbyBpbmZvOwogICAgIAotICAgIHZpcnR1YWwgSlNWYWx1ZSAqdG9QcmltaXRpdmUoRXhlY1N0
YXRlICpleGVjLCBKU1R5cGUgcHJlZmVycmVkID0gVW5kZWZpbmVkVHlwZSkgY29uc3Q7Ci0gICAg
dmlydHVhbCBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSAqZXhlYykgY29uc3Q7CisgICAgdmly
dHVhbCBKU1ZhbHVlICp0b1ByaW1pdGl2ZShFeGVjU3RhdGUqLCBKU1R5cGUgcHJlZmVycmVkID0g
VW5kZWZpbmVkVHlwZSkgY29uc3Q7CisgICAgdmlydHVhbCBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNT
dGF0ZSopIGNvbnN0OwogICAgIAogICAgIGVudW0geyBOb2RlTmFtZSwgTm9kZVZhbHVlLCBOb2Rl
VHlwZSwgUGFyZW50Tm9kZSwgUGFyZW50RWxlbWVudCwKICAgICAgICAgQ2hpbGROb2RlcywgRmly
c3RDaGlsZCwgTGFzdENoaWxkLCBQcmV2aW91c1NpYmxpbmcsIE5leHRTaWJsaW5nLCBJdGVtLApA
QCAtNjMsNyArNjMsNyBAQCBwcml2YXRlOgogICAgIC8vIERvbid0IHVzZSB0aGlzIGNsYXNzIGRp
cmVjdGx5IC0tIHVzZSBKU05vZGUgaW5zdGVhZAogICAgIGZyaWVuZCBjbGFzcyBXZWJDb3JlOjpK
U05vZGU7CiAgICAgRE9NTm9kZSgpOwotICAgIERPTU5vZGUoRXhlY1N0YXRlICpleGVjLCBXZWJD
b3JlOjpOb2RlICpuKTsKKyAgICBET01Ob2RlKEV4ZWNTdGF0ZSosIFdlYkNvcmU6Ok5vZGUgKm4p
OwogICAgIERPTU5vZGUoV2ViQ29yZTo6Tm9kZSAqbik7CiB9OwogCkluZGV4OiBiaW5kaW5ncy9q
cy9KU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGJpbmRpbmdz
L2pzL0pTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJKHJldmlzaW9uIDE0NDM0KQorKysg
YmluZGluZ3MvanMvSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjAsMjQgKzIwLDM5IEBACiAjaW5jbHVkZSAiSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmgiCiAKICNpbmNsdWRlICJIVE1MQmFzZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQnV0
dG9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxNZXRhRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxPcHRHcm91cEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVGV4dEFy
ZWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5oIgorCiAjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCisKICNpbmNsdWRlICJKU0hUTUxCYXNlRWxlbWVudC5oIgorI2luY2x1ZGUg
IkpTSFRNTEJ1dHRvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxDYW52YXNFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSlNIVE1MSGVhZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU0hUTUxJbnB1dEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxMaW5rRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRN
TE1ldGFFbGVtZW50LmgiCisjaW5jbHVkZSAiSlNIVE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5j
bHVkZSAiSlNIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRNTFN0eWxlRWxlbWVu
dC5oIgorI2luY2x1ZGUgIkpTSFRNTFRleHRBcmVhRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRN
TFRpdGxlRWxlbWVudC5oIgorCiAjaW5jbHVkZSAia2pzX2h0bWwuaCIKIAogdXNpbmcgbmFtZXNw
YWNlIEtKUzsKIAorLy8gRklYTUU6IEV2ZW50dWFsbHkgdGhpcyBmaWxlIHNob3VsZCBiZSBhdXRv
Z2VuZXJhdGVkLCBqdXN0IGxpa2UgSFRNTE5hbWVzLCBIVE1MRWxlbWVudEZhY3RvcnksIGV0Yy4K
KwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpAQCAt
NDksNiArNjQsMTEgQEAgc3RhdGljIERPTU5vZGUqIGNyZWF0ZUJhc2VXcmFwcGVyKEV4ZWNTdAog
ICAgIHJldHVybiBuZXcgSlNIVE1MQmFzZUVsZW1lbnQoZXhlYywgc3RhdGljX2Nhc3Q8SFRNTEJh
c2VFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwogfQogCitzdGF0aWMgRE9NTm9kZSogY3JlYXRl
QnV0dG9uV3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVs
ZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBKU0hUTUxCdXR0b25FbGVtZW50KGV4ZWMsIHN0YXRp
Y19jYXN0PEhUTUxCdXR0b25FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCiBzdGF0aWMg
RE9NTm9kZSogY3JlYXRlQ2FudmFzV3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8
SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCiB7CiAgICAgcmV0dXJuIG5ldyBKU0hUTUxDYW52YXNFbGVt
ZW50KGV4ZWMsIHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkp
OwpAQCAtNjQsMTYgKzg0LDM2IEBAIHN0YXRpYyBET01Ob2RlKiBjcmVhdGVMaW5rV3JhcHBlcihF
eGVjU3QKICAgICByZXR1cm4gbmV3IEpTSFRNTExpbmtFbGVtZW50KGV4ZWMsIHN0YXRpY19jYXN0
PEhUTUxMaW5rRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKIH0KIAorc3RhdGljIERPTU5vZGUq
IGNyZWF0ZUlucHV0V3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBKU0hUTUxJbnB1dEVsZW1lbnQoZXhlYywg
c3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwogc3Rh
dGljIERPTU5vZGUqIGNyZWF0ZU1ldGFXcmFwcGVyKEV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0
cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKIHsKICAgICByZXR1cm4gbmV3IEpTSFRNTE1ldGFFbGVt
ZW50KGV4ZWMsIHN0YXRpY19jYXN0PEhUTUxNZXRhRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
IH0KIAorc3RhdGljIERPTU5vZGUqIGNyZWF0ZU9wdEdyb3VwV3JhcHBlcihFeGVjU3RhdGUqIGV4
ZWMsIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBK
U0hUTUxPcHRHcm91cEVsZW1lbnQoZXhlYywgc3RhdGljX2Nhc3Q8SFRNTE9wdEdyb3VwRWxlbWVu
dCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIERPTU5vZGUqIGNyZWF0ZU9wdGlvbldy
YXBwZXIoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQor
eworICAgIHJldHVybiBuZXcgSlNIVE1MT3B0aW9uRWxlbWVudChleGVjLCBzdGF0aWNfY2FzdDxI
VE1MT3B0aW9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwogc3RhdGljIERPTU5vZGUq
IGNyZWF0ZVN0eWxlV3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCiB7CiAgICAgcmV0dXJuIG5ldyBKU0hUTUxTdHlsZUVsZW1lbnQoZXhlYywg
c3RhdGljX2Nhc3Q8SFRNTFN0eWxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKIH0KIAorc3Rh
dGljIERPTU5vZGUqIGNyZWF0ZVRleHRBcmVhV3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBKU0hUTUxUZXh0
QXJlYUVsZW1lbnQoZXhlYywgc3RhdGljX2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+KGVsZW1l
bnQuZ2V0KCkpKTsKK30KKwogc3RhdGljIERPTU5vZGUqIGNyZWF0ZVRpdGxlV3JhcHBlcihFeGVj
U3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCiB7CiAgICAgcmV0
dXJuIG5ldyBKU0hUTUxUaXRsZUVsZW1lbnQoZXhlYywgc3RhdGljX2Nhc3Q8SFRNTFRpdGxlRWxl
bWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKQEAgLTg0LDExICsxMjQsMTYgQEAgRE9NTm9kZSogY3Jl
YXRlSlNXcmFwcGVyKEV4ZWNTdGF0ZSogZXhlYwogICAgIHN0YXRpYyBIYXNoTWFwPFdlYkNvcmU6
OkF0b21pY1N0cmluZ0ltcGwqLCBDcmVhdGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlvbj4gbWFw
OwogICAgIGlmIChtYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1hcC5zZXQoYmFzZVRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJhc2VXcmFwcGVyKTsKKyAgICAgICAgbWFwLnNldChidXR0
b25UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCdXR0b25XcmFwcGVyKTsKICAgICAgICAg
bWFwLnNldChjYW52YXNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVDYW52YXNXcmFwcGVy
KTsKICAgICAgICAgbWFwLnNldChoZWFkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlSGVh
ZFdyYXBwZXIpOworICAgICAgICBtYXAuc2V0KGlucHV0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwg
Y3JlYXRlSW5wdXRXcmFwcGVyKTsKICAgICAgICAgbWFwLnNldChsaW5rVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgY3JlYXRlTGlua1dyYXBwZXIpOwogICAgICAgICBtYXAuc2V0KG1ldGFUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNZXRhV3JhcHBlcik7CisgICAgICAgIG1hcC5zZXQob3B0
Z3JvdXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPcHRHcm91cFdyYXBwZXIpOworICAg
ICAgICBtYXAuc2V0KG9wdGlvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9wdGlvbldy
YXBwZXIpOwogICAgICAgICBtYXAuc2V0KHN0eWxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlU3R5bGVXcmFwcGVyKTsKKyAgICAgICAgbWFwLnNldCh0ZXh0YXJlYVRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZVRleHRBcmVhV3JhcHBlcik7CiAgICAgICAgIG1hcC5zZXQodGl0bGVU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUaXRsZVdyYXBwZXIpOwogICAgIH0KICAgICBD
cmVhdGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlvbiBmID0gbWFwLmdldChlbGVtZW50LT5sb2Nh
bE5hbWUoKS5pbXBsKCkpOwpJbmRleDogYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uRWxlbWVudENv
bnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBiaW5kaW5ncy9qcy9KU0hUTUxPcHRpb25FbGVt
ZW50Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAwKQorKysgYmluZGluZ3MvanMvSlNIVE1MT3B0
aW9uRWxlbWVudENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMz
MCwKKyAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuaCIKKworI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNs
dWRlICJKU0hUTUxPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiVGV4dC5oIgorCit1c2luZyBu
YW1lc3BhY2UgS0pTOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTSFRNTE9wdGlvbkVsZW1l
bnRDb25zdHJ1Y3Rvcjo6SlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
ZXhlYywgRG9jdW1lbnQqIGQpCisgICAgOiBtX2RvYyhkKQoreworICAgIHB1dChleGVjLCBsZW5n
dGhQcm9wZXJ0eU5hbWUsIGpzTnVtYmVyKDQpLCBSZWFkT25seXxEb250RGVsZXRlfERvbnRFbnVt
KTsKK30KKworYm9vbCBKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3I6OmltcGxlbWVudHND
b25zdHJ1Y3QoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCitKU09iamVjdCogSlNI
VE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yOjpjb25zdHJ1Y3QoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBMaXN0JiBhcmdzKQoreworICAgIGludCBleGNlcHRpb24gPSAwOworICAgIFJlZlB0cjxF
bGVtZW50PiBlbChtX2RvYy0+Y3JlYXRlRWxlbWVudCgib3B0aW9uIiwgZXhjZXB0aW9uKSk7Cisg
ICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdCA9IDA7CisgICAgaWYgKGVsKSB7CisgICAgICAgIG9w
dCA9IHN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4oZWwuZ2V0KCkpOworICAgICAgICBp
bnQgc3ogPSBhcmdzLnNpemUoKTsKKyAgICAgICAgUmVmUHRyPFRleHQ+IHRleHQgPSBtX2RvYy0+
Y3JlYXRlVGV4dE5vZGUoIiIpOworICAgICAgICBvcHQtPmFwcGVuZENoaWxkKHRleHQsIGV4Y2Vw
dGlvbik7CisgICAgICAgIGlmIChleGNlcHRpb24gPT0gMCAmJiBzeiA+IDApCisgICAgICAgICAg
ICB0ZXh0LT5zZXREYXRhKGFyZ3NbMF0tPnRvU3RyaW5nKGV4ZWMpLCBleGNlcHRpb24pOworICAg
ICAgICBpZiAoZXhjZXB0aW9uID09IDAgJiYgc3ogPiAxKQorICAgICAgICAgICAgb3B0LT5zZXRW
YWx1ZShhcmdzWzFdLT50b1N0cmluZyhleGVjKSk7CisgICAgICAgIGlmIChleGNlcHRpb24gPT0g
MCAmJiBzeiA+IDIpCisgICAgICAgICAgICBvcHQtPnNldERlZmF1bHRTZWxlY3RlZChhcmdzWzJd
LT50b0Jvb2xlYW4oZXhlYykpOworICAgICAgICBpZiAoZXhjZXB0aW9uID09IDAgJiYgc3ogPiAz
KQorICAgICAgICAgICAgb3B0LT5zZXRTZWxlY3RlZChhcmdzWzNdLT50b0Jvb2xlYW4oZXhlYykp
OworICAgIH0KKworICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBleGNlcHRpb24pOworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxKU09iamVjdCo+KHRvSlMoZXhlYywgb3B0KSk7Cit9CisKK30KSW5k
ZXg6IGJpbmRpbmdzL2pzL2tqc19odG1sLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBiaW5kaW5ncy9qcy9r
anNfaHRtbC5jcHAJKHJldmlzaW9uIDE0NDM0KQorKysgYmluZGluZ3MvanMva2pzX2h0bWwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMiArMjgsMTAgQEAKICNpbmNsdWRlICJIVE1MQW5jaG9y
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxBcHBsZXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TEFyZWFFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTEJhc2VFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTEJhc2VGb250RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxCbG9ja3F1b3RlRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxCUkVsZW1lbnQu
aCIKLSNpbmNsdWRlICJIVE1MQnV0dG9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxEaXJlY3Rv
cnlFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
RExpc3RFbGVtZW50LmgiCkBAIC00Myw3ICs0MSw2IEBACiAjaW5jbHVkZSAiSFRNTEZvbnRFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1l
U2V0RWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxIZWFkaW5nRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxIUkVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MSHRtbEVsZW1lbnQuaCIKQEAgLTUzLDE1ICs1MCwxMiBAQAogI2luY2x1ZGUgIkhUTUxM
YWJlbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTGVnZW5kRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxMSUVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MTWFwRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxNZW51RWxlbWVudC5oIgotI2luY2x1
ZGUgIkhUTUxNZXRhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxNb2RFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE9iamVjdEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MT0xpc3RFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIKQEAgLTY5LDE1
ICs2MywxMiBAQAogI2luY2x1ZGUgIkhUTUxQcmVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFNj
cmlwdEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgotI2luY2x1ZGUg
IkhUTUxTdHlsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGFibGVDYXB0aW9uRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxUYWJsZUNlbGxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxl
Q29sRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUYWJsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MVGFibGVSb3dFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQu
aCIKLSNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTFRpdGxl
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxRdW90ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
VUxpc3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiTmFtZU5vZGVMaXN0LmgiCkBAIC00NjYsNyArNDU3
LDYgQEAgY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OmJhc2VGb250XwogY29uc3QgQ2xh
c3NJbmZvIEpTSFRNTEVsZW1lbnQ6OmJsb2NrUXVvdGVfaW5mbyA9IHsgIkhUTUxCbG9ja1F1b3Rl
RWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTEJsb2NrUXVvdGVFbGVtZW50VGFi
bGUsIDAgfTsKIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50Ojpib2R5X2luZm8gPSB7ICJI
VE1MQm9keUVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxCb2R5RWxlbWVudFRh
YmxlLCAwIH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6YnJfaW5mbyA9IHsgIkhU
TUxCUkVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxCUkVsZW1lbnRUYWJsZSwg
MCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OmJ1dHRvbl9pbmZvID0geyAiSFRN
TEJ1dHRvbkVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxCdXR0b25FbGVtZW50
VGFibGUsIDAgfTsKIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpjYXB0aW9uX2luZm8g
PSB7ICJIVE1MVGFibGVDYXB0aW9uRWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRN
TFRhYmxlQ2FwdGlvbkVsZW1lbnRUYWJsZSwgMCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVs
ZW1lbnQ6OmNvbF9pbmZvID0geyAiSFRNTFRhYmxlQ29sRWxlbWVudCIsICZKU0hUTUxFbGVtZW50
OjppbmZvLCAmSFRNTFRhYmxlQ29sRWxlbWVudFRhYmxlLCAwIH07CiBjb25zdCBDbGFzc0luZm8g
SlNIVE1MRWxlbWVudDo6ZGlyX2luZm8gPSB7ICJIVE1MRGlyZWN0b3J5RWxlbWVudCIsICZKU0hU
TUxFbGVtZW50OjppbmZvLCAmSFRNTERpcmVjdG9yeUVsZW1lbnRUYWJsZSwgMCB9OwpAQCAtNDg0
LDcgKzQ3NCw2IEBAIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpodG1sX2luZm8KIGNv
bnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjppRnJhbWVfaW5mbyA9IHsgIkhUTUxJRnJhbWVF
bGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MSUZyYW1lRWxlbWVudFRhYmxlLCAw
IH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6aW1nX2luZm8gPSB7ICJIVE1MSW1h
Z2VFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MSW1hZ2VFbGVtZW50VGFibGUs
IDAgfTsKIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjppbmZvID0geyAiSFRNTEVsZW1l
bnQiLCAmSlNFbGVtZW50OjppbmZvLCAmSFRNTEVsZW1lbnRUYWJsZSwgMCB9OwotY29uc3QgQ2xh
c3NJbmZvIEpTSFRNTEVsZW1lbnQ6OmlucHV0X2luZm8gPSB7ICJIVE1MSW5wdXRFbGVtZW50Iiwg
JkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MSW5wdXRFbGVtZW50VGFibGUsIDAgfTsKIGNvbnN0
IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50Ojppc0luZGV4X2luZm8gPSB7ICJIVE1MSXNJbmRleEVs
ZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxJc0luZGV4RWxlbWVudFRhYmxlLCAw
IH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6bGFiZWxfaW5mbyA9IHsgIkhUTUxM
YWJlbEVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxMYWJlbEVsZW1lbnRUYWJs
ZSwgMCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OmxlZ2VuZF9pbmZvID0geyAi
SFRNTExlZ2VuZEVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxMZWdlbmRFbGVt
ZW50VGFibGUsIDAgfTsKQEAgLTQ5NSw4ICs0ODQsNiBAQCBjb25zdCBDbGFzc0luZm8gSlNIVE1M
RWxlbWVudDo6bWVudV9pbmZvCiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6bW9kX2lu
Zm8gPSB7ICJIVE1MTW9kRWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTE1vZEVs
ZW1lbnRUYWJsZSwgMCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6Om9iamVjdF9p
bmZvID0geyAiSFRNTE9iamVjdEVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxP
YmplY3RFbGVtZW50VGFibGUsIDAgfTsKIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50Ojpv
bF9pbmZvID0geyAiSFRNTE9MaXN0RWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRN
TE9MaXN0RWxlbWVudFRhYmxlLCAwIH07Ci1jb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6
b3B0R3JvdXBfaW5mbyA9IHsgIkhUTUxPcHRHcm91cEVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6
aW5mbywgJkhUTUxPcHRHcm91cEVsZW1lbnRUYWJsZSwgMCB9OwotY29uc3QgQ2xhc3NJbmZvIEpT
SFRNTEVsZW1lbnQ6Om9wdGlvbl9pbmZvID0geyAiSFRNTE9wdGlvbkVsZW1lbnQiLCAmSlNIVE1M
RWxlbWVudDo6aW5mbywgJkhUTUxPcHRpb25FbGVtZW50VGFibGUsIDAgfTsKIGNvbnN0IENsYXNz
SW5mbyBKU0hUTUxFbGVtZW50OjpwX2luZm8gPSB7ICJIVE1MUGFyYWdyYXBoRWxlbWVudCIsICZK
U0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTFBhcmFncmFwaEVsZW1lbnRUYWJsZSwgMCB9OwogY29u
c3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OnBhcmFtX2luZm8gPSB7ICJIVE1MUGFyYW1FbGVt
ZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MUGFyYW1FbGVtZW50VGFibGUsIDAgfTsK
IGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpwcmVfaW5mbyA9IHsgIkhUTUxQcmVFbGVt
ZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MUHJlRWxlbWVudFRhYmxlLCAwIH07CkBA
IC01MDYsNyArNDkzLDYgQEAgY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OnNlbGVjdF9p
bgogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OnRhYmxlX2luZm8gPSB7ICJIVE1MVGFi
bGVFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MVGFibGVFbGVtZW50VGFibGUs
IDAgfTsKIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50Ojp0YWJsZWNlbGxfaW5mbyA9IHsg
IkhUTUxUYWJsZUNlbGxFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MVGFibGVD
ZWxsRWxlbWVudFRhYmxlLCAwIH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6dGFi
bGVzZWN0aW9uX2luZm8gPSB7ICJIVE1MVGFibGVTZWN0aW9uRWxlbWVudCIsICZKU0hUTUxFbGVt
ZW50OjppbmZvLCAmSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRUYWJsZSwgMCB9OwotY29uc3QgQ2xh
c3NJbmZvIEpTSFRNTEVsZW1lbnQ6OnRleHRBcmVhX2luZm8gPSB7ICJIVE1MVGV4dEFyZWFFbGVt
ZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MVGV4dEFyZWFFbGVtZW50VGFibGUsIDAg
fTsKIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50Ojp0cl9pbmZvID0geyAiSFRNTFRhYmxl
Um93RWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTFRhYmxlUm93RWxlbWVudFRh
YmxlLCAwIH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6dWxfaW5mbyA9IHsgIkhU
TUxVTGlzdEVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxVTGlzdEVsZW1lbnRU
YWJsZSwgMCB9OwogCkBAIC01MjAsNyArNTA2LDYgQEAgY29uc3QgQ2xhc3NJbmZvKiBKU0hUTUxF
bGVtZW50OjpjbGFzc0luZgogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KGJsb2NrcXVvdGVUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCAmYmxvY2tRdW90ZV9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZv
TWFwLnNldChib2R5VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmJvZHlfaW5mbyk7CiAgICAgICAg
IGNsYXNzSW5mb01hcC5zZXQoYnJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmYnJfaW5mbyk7Ci0g
ICAgICAgIGNsYXNzSW5mb01hcC5zZXQoYnV0dG9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmJ1
dHRvbl9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldChjYXB0aW9uVGFnLmxvY2FsTmFt
ZSgpLmltcGwoKSwgJmNhcHRpb25faW5mbyk7CiAgICAgICAgIGNsYXNzSW5mb01hcC5zZXQoY29s
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmNvbF9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFw
LnNldChjb2xncm91cFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZjb2xfaW5mbyk7CkBAIC01NDQs
NyArNTI5LDYgQEAgY29uc3QgQ2xhc3NJbmZvKiBKU0hUTUxFbGVtZW50OjpjbGFzc0luZgogICAg
ICAgICBjbGFzc0luZm9NYXAuc2V0KGh0bWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmaHRtbF9p
bmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldChpZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCAmaUZyYW1lX2luZm8pOwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KGltZ1RhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksICZpbWdfaW5mbyk7Ci0gICAgICAgIGNsYXNzSW5mb01hcC5zZXQoaW5w
dXRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmaW5wdXRfaW5mbyk7CiAgICAgICAgIGNsYXNzSW5m
b01hcC5zZXQoaW5zVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJm1vZF9pbmZvKTsKICAgICAgICAg
Y2xhc3NJbmZvTWFwLnNldChpc2luZGV4VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmlzSW5kZXhf
aW5mbyk7CiAgICAgICAgIGNsYXNzSW5mb01hcC5zZXQobGFiZWxUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCAmbGFiZWxfaW5mbyk7CkBAIC01NTYsOCArNTQwLDYgQEAgY29uc3QgQ2xhc3NJbmZvKiBK
U0hUTUxFbGVtZW50OjpjbGFzc0luZgogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KG1lbnVUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCAmbWVudV9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFwLnNl
dChvYmplY3RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmb2JqZWN0X2luZm8pOwogICAgICAgICBj
bGFzc0luZm9NYXAuc2V0KG9sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJm9sX2luZm8pOwotICAg
ICAgICBjbGFzc0luZm9NYXAuc2V0KG9wdGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJm9w
dEdyb3VwX2luZm8pOwotICAgICAgICBjbGFzc0luZm9NYXAuc2V0KG9wdGlvblRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksICZvcHRpb25faW5mbyk7CiAgICAgICAgIGNsYXNzSW5mb01hcC5zZXQocFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksICZwX2luZm8pOwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0
KHBhcmFtVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJnBhcmFtX2luZm8pOwogICAgICAgICBjbGFz
c0luZm9NYXAuc2V0KHByZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZwcmVfaW5mbyk7CkBAIC01
NjcsNyArNTQ5LDYgQEAgY29uc3QgQ2xhc3NJbmZvKiBKU0hUTUxFbGVtZW50OjpjbGFzc0luZgog
ICAgICAgICBjbGFzc0luZm9NYXAuc2V0KHRhYmxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJnRh
YmxlX2luZm8pOwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KHRib2R5VGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgJnRhYmxlc2VjdGlvbl9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldCh0
ZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZ0YWJsZWNlbGxfaW5mbyk7Ci0gICAgICAgIGNsYXNz
SW5mb01hcC5zZXQodGV4dGFyZWFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmdGV4dEFyZWFfaW5m
byk7CiAgICAgICAgIGNsYXNzSW5mb01hcC5zZXQodGZvb3RUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCAmdGFibGVzZWN0aW9uX2luZm8pOwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KHRoVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgJnRhYmxlY2VsbF9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFw
LnNldCh0aGVhZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZ0YWJsZXNlY3Rpb25faW5mbyk7CkBA
IC01ODgsMTEgKzU2OSw2IEBAIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyBKU0hUTUxF
bGUKIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyBKU0hUTUxFbGVtZW50Ojpib2R5X2Fj
Y2Vzc29ycyA9IHsgJkpTSFRNTEVsZW1lbnQ6OmJvZHlHZXR0ZXIsICZKU0hUTUxFbGVtZW50Ojpi
b2R5U2V0dGVyIH07CiBjb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMgSlNIVE1MRWxlbWVu
dDo6Zm9ybV9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50Ojpmb3JtR2V0dGVyLCAmSlNIVE1M
RWxlbWVudDo6Zm9ybVNldHRlciB9OwogY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpT
SFRNTEVsZW1lbnQ6OnNlbGVjdF9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50OjpzZWxlY3RH
ZXR0ZXIsICZKU0hUTUxFbGVtZW50OjpzZWxlY3RTZXR0ZXIgfTsKLWNvbnN0IEpTSFRNTEVsZW1l
bnQ6OkFjY2Vzc29ycyBKU0hUTUxFbGVtZW50OjpvcHRHcm91cF9hY2Nlc3NvcnMgPSB7ICZKU0hU
TUxFbGVtZW50OjpvcHRHcm91cEdldHRlciwgJkpTSFRNTEVsZW1lbnQ6Om9wdEdyb3VwU2V0dGVy
IH07Ci1jb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMgSlNIVE1MRWxlbWVudDo6b3B0aW9u
X2FjY2Vzc29ycyA9IHsgJkpTSFRNTEVsZW1lbnQ6Om9wdGlvbkdldHRlciwgJkpTSFRNTEVsZW1l
bnQ6Om9wdGlvblNldHRlciB9OwotY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRN
TEVsZW1lbnQ6OmlucHV0X2FjY2Vzc29ycyA9IHsgJkpTSFRNTEVsZW1lbnQ6OmlucHV0R2V0dGVy
LCAmSlNIVE1MRWxlbWVudDo6aW5wdXRTZXR0ZXIgfTsKLWNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFj
Y2Vzc29ycyBKU0hUTUxFbGVtZW50Ojp0ZXh0QXJlYV9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVt
ZW50Ojp0ZXh0QXJlYUdldHRlciwgJkpTSFRNTEVsZW1lbnQ6OnRleHRBcmVhU2V0dGVyIH07Ci1j
b25zdCBKU0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMgSlNIVE1MRWxlbWVudDo6YnV0dG9uX2FjY2Vz
c29ycyA9IHsgJkpTSFRNTEVsZW1lbnQ6OmJ1dHRvbkdldHRlciwgJkpTSFRNTEVsZW1lbnQ6OmJ1
dHRvblNldHRlciB9OwogY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRNTEVsZW1l
bnQ6OmxhYmVsX2FjY2Vzc29ycyA9IHsgJkpTSFRNTEVsZW1lbnQ6OmxhYmVsR2V0dGVyLCAmSlNI
VE1MRWxlbWVudDo6bGFiZWxTZXR0ZXIgfTsKIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29y
cyBKU0hUTUxFbGVtZW50OjpmaWVsZFNldF9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50Ojpm
aWVsZFNldEdldHRlciwgJkpTSFRNTEVsZW1lbnQ6OmZpZWxkU2V0U2V0dGVyIH07CiBjb25zdCBK
U0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMgSlNIVE1MRWxlbWVudDo6bGVnZW5kX2FjY2Vzc29ycyA9
IHsgJkpTSFRNTEVsZW1lbnQ6OmxlZ2VuZEdldHRlciwgJkpTSFRNTEVsZW1lbnQ6OmxlZ2VuZFNl
dHRlciB9OwpAQCAtNjQ0LDcgKzYyMCw2IEBAIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29y
cyogSlNIVE1MRWwKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKGJsb2NrcXVvdGVUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCAmYmxvY2tRdW90ZV9hY2Nlc3NvcnMpOyAKICAgICAgICAgYWNjZXNzb3JN
YXAuYWRkKGJvZHlUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmYm9keV9hY2Nlc3NvcnMpOwogICAg
ICAgICBhY2Nlc3Nvck1hcC5hZGQoYnJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmYnJfYWNjZXNz
b3JzKTsKLSAgICAgICAgYWNjZXNzb3JNYXAuYWRkKGJ1dHRvblRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksICZidXR0b25fYWNjZXNzb3JzKTsKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKGNhcHRpb25U
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmY2FwdGlvbl9hY2Nlc3NvcnMpOwogICAgICAgICBhY2Nl
c3Nvck1hcC5hZGQoY29sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmNvbF9hY2Nlc3NvcnMpOwog
ICAgICAgICBhY2Nlc3Nvck1hcC5hZGQoY29sZ3JvdXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAm
Y29sX2FjY2Vzc29ycyk7CkBAIC02NjgsNyArNjQzLDYgQEAgY29uc3QgSlNIVE1MRWxlbWVudDo6
QWNjZXNzb3JzKiBKU0hUTUxFbAogICAgICAgICBhY2Nlc3Nvck1hcC5hZGQoaHRtbFRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksICZodG1sX2FjY2Vzc29ycyk7CiAgICAgICAgIGFjY2Vzc29yTWFwLmFk
ZChpZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmaUZyYW1lX2FjY2Vzc29ycyk7CiAgICAg
ICAgIGFjY2Vzc29yTWFwLmFkZChpbWdUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmaW1nX2FjY2Vz
c29ycyk7Ci0gICAgICAgIGFjY2Vzc29yTWFwLmFkZChpbnB1dFRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksICZpbnB1dF9hY2Nlc3NvcnMpOwogICAgICAgICBhY2Nlc3Nvck1hcC5hZGQoaW5zVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgJm1vZF9hY2Nlc3NvcnMpOwogICAgICAgICBhY2Nlc3Nvck1hcC5h
ZGQoaXNpbmRleFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZpc0luZGV4X2FjY2Vzc29ycyk7CiAg
ICAgICAgIGFjY2Vzc29yTWFwLmFkZChsYWJlbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZsYWJl
bF9hY2Nlc3NvcnMpOwpAQCAtNjgwLDggKzY1NCw2IEBAIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFj
Y2Vzc29ycyogSlNIVE1MRWwKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKG1lbnVUYWcubG9jYWxO
YW1lKCkuaW1wbCgpLCAmbWVudV9hY2Nlc3NvcnMpOwogICAgICAgICBhY2Nlc3Nvck1hcC5hZGQo
b2JqZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJm9iamVjdF9hY2Nlc3NvcnMpOwogICAgICAg
ICBhY2Nlc3Nvck1hcC5hZGQob2xUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmb2xfYWNjZXNzb3Jz
KTsKLSAgICAgICAgYWNjZXNzb3JNYXAuYWRkKG9wdGlvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
ICZvcHRpb25fYWNjZXNzb3JzKTsKLSAgICAgICAgYWNjZXNzb3JNYXAuYWRkKG9wdGdyb3VwVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgJm9wdEdyb3VwX2FjY2Vzc29ycyk7CiAgICAgICAgIGFjY2Vz
c29yTWFwLmFkZChwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJnBfYWNjZXNzb3JzKTsKICAgICAg
ICAgYWNjZXNzb3JNYXAuYWRkKHBhcmFtVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJnBhcmFtX2Fj
Y2Vzc29ycyk7CiAgICAgICAgIGFjY2Vzc29yTWFwLmFkZChwcmVUYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCAmcHJlX2FjY2Vzc29ycyk7CkBAIC02OTEsNyArNjYzLDYgQEAgY29uc3QgSlNIVE1MRWxl
bWVudDo6QWNjZXNzb3JzKiBKU0hUTUxFbAogICAgICAgICBhY2Nlc3Nvck1hcC5hZGQodGFibGVU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmdGFibGVfYWNjZXNzb3JzKTsKICAgICAgICAgYWNjZXNz
b3JNYXAuYWRkKHRib2R5VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJnRhYmxlc2VjdGlvbl9hY2Nl
c3NvcnMpOwogICAgICAgICBhY2Nlc3Nvck1hcC5hZGQodGRUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCAmdGFibGVjZWxsX2FjY2Vzc29ycyk7Ci0gICAgICAgIGFjY2Vzc29yTWFwLmFkZCh0ZXh0YXJl
YVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZ0ZXh0QXJlYV9hY2Nlc3NvcnMpOwogICAgICAgICBh
Y2Nlc3Nvck1hcC5hZGQodGhUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmdGFibGVjZWxsX2FjY2Vz
c29ycyk7CiAgICAgICAgIGFjY2Vzc29yTWFwLmFkZCh0aGVhZFRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksICZ0YWJsZXNlY3Rpb25fYWNjZXNzb3JzKTsKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKHRm
b290VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJnRhYmxlc2VjdGlvbl9hY2Nlc3NvcnMpOwpAQCAt
NzI3LDQ0ICs2OTgsMTAgQEAgY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzKiBKU0hUTUxF
bAogQGJlZ2luIEhUTUxIdG1sRWxlbWVudFRhYmxlIDEKICAgdmVyc2lvbiAgICAgICBLSlM6OkpT
SFRNTEVsZW1lbnQ6Okh0bWxWZXJzaW9uICAgRG9udERlbGV0ZQogQGVuZAotQGJlZ2luIEhUTUxI
ZWFkRWxlbWVudFRhYmxlIDEKLSAgcHJvZmlsZSAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6Okhl
YWRQcm9maWxlICAgRG9udERlbGV0ZQotQGVuZAotQGJlZ2luIEhUTUxMaW5rRWxlbWVudFRhYmxl
IDExCi0gIGRpc2FibGVkICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpMaW5rRGlzYWJsZWQgIERv
bnREZWxldGUKLSAgY2hhcnNldCAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkxpbmtDaGFyc2V0
ICAgRG9udERlbGV0ZQotICBocmVmICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6TGlua0hy
ZWYgICAgICBEb250RGVsZXRlCi0gIGhyZWZsYW5nICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpM
aW5rSHJlZkxhbmcgIERvbnREZWxldGUKLSAgbWVkaWEgICAgICAgICBLSlM6OkpTSFRNTEVsZW1l
bnQ6OkxpbmtNZWRpYSAgICAgRG9udERlbGV0ZQotICByZWwgICAgICAgICAgIEtKUzo6SlNIVE1M
RWxlbWVudDo6TGlua1JlbCAgICAgICBEb250RGVsZXRlCi0gIHJldiAgICAgICAgICAgS0pTOjpK
U0hUTUxFbGVtZW50OjpMaW5rUmV2ICAgICAgIERvbnREZWxldGUKLSAgdGFyZ2V0ICAgICAgICBL
SlM6OkpTSFRNTEVsZW1lbnQ6OkxpbmtUYXJnZXQgICAgRG9udERlbGV0ZQotICB0eXBlICAgICAg
ICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6TGlua1R5cGUgICAgICBEb250RGVsZXRlCi0gIHNoZWV0
ICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpMaW5rU2hlZXQgICAgIERvbnREZWxldGV8UmVh
ZE9ubHkKLUBlbmQKLUBiZWdpbiBIVE1MVGl0bGVFbGVtZW50VGFibGUgMQotICB0ZXh0ICAgICAg
ICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6VGl0bGVUZXh0ICAgICBEb250RGVsZXRlCi1AZW5kCi1A
YmVnaW4gSFRNTE1ldGFFbGVtZW50VGFibGUgNAotICBjb250ZW50ICAgICAgIEtKUzo6SlNIVE1M
RWxlbWVudDo6TWV0YUNvbnRlbnQgICBEb250RGVsZXRlCi0gIGh0dHBFcXVpdiAgICAgS0pTOjpK
U0hUTUxFbGVtZW50OjpNZXRhSHR0cEVxdWl2IERvbnREZWxldGUKLSAgbmFtZSAgICAgICAgICBL
SlM6OkpTSFRNTEVsZW1lbnQ6Ok1ldGFOYW1lICAgICAgRG9udERlbGV0ZQotICBzY2hlbWUgICAg
ICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6TWV0YVNjaGVtZSAgICBEb250RGVsZXRlCi1AZW5kCi1A
YmVnaW4gSFRNTEJhc2VFbGVtZW50VGFibGUgMgotICBocmVmICAgICAgICAgIEtKUzo6SlNIVE1M
RWxlbWVudDo6QmFzZUhyZWYgICAgICBEb250RGVsZXRlCi0gIHRhcmdldCAgICAgICAgS0pTOjpK
U0hUTUxFbGVtZW50OjpCYXNlVGFyZ2V0ICAgIERvbnREZWxldGUKLUBlbmQKIEBiZWdpbiBIVE1M
SXNJbmRleEVsZW1lbnRUYWJsZSAyCiAgIGZvcm0gICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50
OjpJc0luZGV4Rm9ybSAgIERvbnREZWxldGV8UmVhZE9ubHkKICAgcHJvbXB0ICAgICAgICBLSlM6
OkpTSFRNTEVsZW1lbnQ6OklzSW5kZXhQcm9tcHQgRG9udERlbGV0ZQogQGVuZAotQGJlZ2luIEhU
TUxTdHlsZUVsZW1lbnRUYWJsZSA0Ci0gIGRpc2FibGVkICAgICAgS0pTOjpKU0hUTUxFbGVtZW50
OjpTdHlsZURpc2FibGVkIERvbnREZWxldGUKLSAgbWVkaWEgICAgICAgICBLSlM6OkpTSFRNTEVs
ZW1lbnQ6OlN0eWxlTWVkaWEgICAgRG9udERlbGV0ZQotICB0eXBlICAgICAgICAgIEtKUzo6SlNI
VE1MRWxlbWVudDo6U3R5bGVUeXBlICAgICBEb250RGVsZXRlCi0gIHNoZWV0ICAgICAgICAgS0pT
OjpKU0hUTUxFbGVtZW50OjpTdHlsZVNoZWV0ICAgIERvbnREZWxldGV8UmVhZE9ubHkKLUBlbmQK
IEBiZWdpbiBIVE1MQm9keUVsZW1lbnRUYWJsZSAxMAogICBhTGluayAgICAgICAgIEtKUzo6SlNI
VE1MRWxlbWVudDo6Qm9keUFMaW5rICAgICBEb250RGVsZXRlCiAgIGJhY2tncm91bmQgICAgS0pT
OjpKU0hUTUxFbGVtZW50OjpCb2R5QmFja2dyb3VuZCAgICAgICAgRG9udERlbGV0ZQpAQCAtODA4
LDc4ICs3NDUsNiBAQCBjb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMqIEpTSFRNTEVsCiAg
IGJsdXIgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpTZWxlY3RCbHVyICAgIERvbnREZWxl
dGV8RnVuY3Rpb24gMAogICBmb2N1cyAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6U2VsZWN0
Rm9jdXMgICBEb250RGVsZXRlfEZ1bmN0aW9uIDAKIEBlbmQKLUBiZWdpbiBIVE1MT3B0R3JvdXBF
bGVtZW50VGFibGUgMgotICBkaXNhYmxlZCAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6T3B0R3Jv
dXBEaXNhYmxlZCAgICAgIERvbnREZWxldGUKLSAgbGFiZWwgICAgICAgICBLSlM6OkpTSFRNTEVs
ZW1lbnQ6Ok9wdEdyb3VwTGFiZWwgICAgICAgICBEb250RGVsZXRlCi1AZW5kCi1AYmVnaW4gSFRN
TE9wdGlvbkVsZW1lbnRUYWJsZSA4Ci0gIGZvcm0gICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50
OjpPcHRpb25Gb3JtICAgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICBkZWZhdWx0U2Vs
ZWN0ZWQgS0pTOjpKU0hUTUxFbGVtZW50OjpPcHRpb25EZWZhdWx0U2VsZWN0ZWQgICAgICAgRG9u
dERlbGV0ZQotICB0ZXh0ICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6T3B0aW9uVGV4dCAg
ICAgICAgICAgIERvbnREZWxldGUKLSAgaW5kZXggICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6
Ok9wdGlvbkluZGV4ICAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gIGRpc2FibGVkICAg
ICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPcHRpb25EaXNhYmxlZCAgICAgICAgRG9udERlbGV0ZQot
ICBsYWJlbCAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6T3B0aW9uTGFiZWwgICAgICAgICAg
IERvbnREZWxldGUKLSAgc2VsZWN0ZWQgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6Ok9wdGlvblNl
bGVjdGVkICAgICAgICBEb250RGVsZXRlCi0gIHZhbHVlICAgICAgICAgS0pTOjpKU0hUTUxFbGVt
ZW50OjpPcHRpb25WYWx1ZSAgICAgICAgICAgRG9udERlbGV0ZQotQGVuZAotQGJlZ2luIEhUTUxJ
bnB1dEVsZW1lbnRUYWJsZSAyNAotICBkZWZhdWx0VmFsdWUgIEtKUzo6SlNIVE1MRWxlbWVudDo6
SW5wdXREZWZhdWx0VmFsdWUgICAgIERvbnREZWxldGUKLSAgZGVmYXVsdENoZWNrZWQgS0pTOjpK
U0hUTUxFbGVtZW50OjpJbnB1dERlZmF1bHRDaGVja2VkICBEb250RGVsZXRlCi0gIGZvcm0gICAg
ICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dEZvcm0gICAgICAgICAgICAgRG9udERlbGV0
ZXxSZWFkT25seQotICBhY2NlcHQgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRBY2Nl
cHQgICAgICAgICAgIERvbnREZWxldGUKLSAgYWNjZXNzS2V5ICAgICBLSlM6OkpTSFRNTEVsZW1l
bnQ6OklucHV0QWNjZXNzS2V5ICAgICAgICBEb250RGVsZXRlCi0gIGFsaWduICAgICAgICAgS0pT
OjpKU0hUTUxFbGVtZW50OjpJbnB1dEFsaWduICAgICAgICAgICAgRG9udERlbGV0ZQotICBhbHQg
ICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRBbHQgICAgICAgICAgICAgIERvbnRE
ZWxldGUKLSAgY2hlY2tlZCAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0Q2hlY2tlZCAg
ICAgICAgICBEb250RGVsZXRlCi0gIGRpc2FibGVkICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJ
bnB1dERpc2FibGVkICAgICAgICAgRG9udERlbGV0ZQotICBpbmRldGVybWluYXRlIEtKUzo6SlNI
VE1MRWxlbWVudDo6SW5wdXRJbmRldGVybWluYXRlICAgIERvbnREZWxldGUKLSAgbWF4TGVuZ3Ro
ICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0TWF4TGVuZ3RoICAgICAgICBEb250RGVsZXRl
Ci0gIG5hbWUgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dE5hbWUgICAgICAgICAg
ICAgRG9udERlbGV0ZQotICByZWFkT25seSAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRS
ZWFkT25seSAgICAgICAgIERvbnREZWxldGUKLSAgc2VsZWN0aW9uU3RhcnQgICAgICAgIEtKUzo6
SlNIVE1MRWxlbWVudDo6SW5wdXRTZWxlY3Rpb25TdGFydCAgIERvbnREZWxldGUKLSAgc2VsZWN0
aW9uRW5kICBLSlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0U2VsZWN0aW9uRW5kICAgICBEb250RGVs
ZXRlCi0gIHNpemUgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dFNpemUgICAgICAg
ICAgICAgRG9udERlbGV0ZQotICBzcmMgICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5w
dXRTcmMgICAgICAgICAgICAgIERvbnREZWxldGUKLSAgdGFiSW5kZXggICAgICBLSlM6OkpTSFRN
TEVsZW1lbnQ6OklucHV0VGFiSW5kZXggICAgICAgICBEb250RGVsZXRlCi0gIHR5cGUgICAgICAg
ICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dFR5cGUgICAgICAgICAgICAgRG9udERlbGV0ZQot
ICB1c2VNYXAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRVc2VNYXAgICAgICAgICAg
IERvbnREZWxldGUKLSAgdmFsdWUgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0VmFs
dWUgICAgICAgICAgICBEb250RGVsZXRlCi0gIGJsdXIgICAgICAgICAgS0pTOjpKU0hUTUxFbGVt
ZW50OjpJbnB1dEJsdXIgICAgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi0gIGZvY3Vz
ICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dEZvY3VzICAgICAgICAgICAgRG9udERl
bGV0ZXxGdW5jdGlvbiAwCi0gIHNlbGVjdCAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1
dFNlbGVjdCAgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi0gIGNsaWNrICAgICAgICAg
S0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dENsaWNrICAgICAgICAgICAgRG9udERlbGV0ZXxGdW5j
dGlvbiAwCi0gIHNldFNlbGVjdGlvblJhbmdlICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0
U2V0U2VsZWN0aW9uUmFuZ2UgICAgICAgIERvbnREZWxldGV8RnVuY3Rpb24gMgotQGVuZAotQGJl
Z2luIEhUTUxUZXh0QXJlYUVsZW1lbnRUYWJsZSAxNwotICBkZWZhdWx0VmFsdWUgIEtKUzo6SlNI
VE1MRWxlbWVudDo6VGV4dEFyZWFEZWZhdWx0VmFsdWUgIERvbnREZWxldGUKLSAgZm9ybSAgICAg
ICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OlRleHRBcmVhRm9ybSAgICAgICAgICBEb250RGVsZXRl
fFJlYWRPbmx5Ci0gIGFjY2Vzc0tleSAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0QXJlYUFj
Y2Vzc0tleSAgICAgRG9udERlbGV0ZQotICBjb2xzICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVu
dDo6VGV4dEFyZWFDb2xzICAgICAgICAgIERvbnREZWxldGUKLSAgZGlzYWJsZWQgICAgICBLSlM6
OkpTSFRNTEVsZW1lbnQ6OlRleHRBcmVhRGlzYWJsZWQgICAgICBEb250RGVsZXRlCi0gIG5hbWUg
ICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0QXJlYU5hbWUgICAgICAgICAgRG9udERl
bGV0ZQotICByZWFkT25seSAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6VGV4dEFyZWFSZWFkT25s
eSAgICAgIERvbnREZWxldGUKLSAgcm93cyAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OlRl
eHRBcmVhUm93cyAgICAgICAgICBEb250RGVsZXRlCi0gIHNlbGVjdGlvblN0YXJ0ICAgICAgICBL
SlM6OkpTSFRNTEVsZW1lbnQ6OlRleHRBcmVhU2VsZWN0aW9uU3RhcnQgICAgICAgIERvbnREZWxl
dGUKLSAgc2VsZWN0aW9uRW5kICBLSlM6OkpTSFRNTEVsZW1lbnQ6OlRleHRBcmVhU2VsZWN0aW9u
RW5kICBEb250RGVsZXRlCi0gIHRhYkluZGV4ICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0
QXJlYVRhYkluZGV4ICAgICAgRG9udERlbGV0ZQotICB0eXBlICAgICAgICAgIEtKUzo6SlNIVE1M
RWxlbWVudDo6VGV4dEFyZWFUeXBlICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgdmFs
dWUgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OlRleHRBcmVhVmFsdWUgICAgICAgICBEb250
RGVsZXRlCi0gIGJsdXIgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0QXJlYUJsdXIg
ICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi0gIGZvY3VzICAgICAgICAgS0pTOjpKU0hU
TUxFbGVtZW50OjpUZXh0QXJlYUZvY3VzICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi0g
IHNlbGVjdCAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0QXJlYVNlbGVjdCAgICAgICAg
RG9udERlbGV0ZXxGdW5jdGlvbiAwCi0gIHNldFNlbGVjdGlvblJhbmdlICAgICBLSlM6OkpTSFRN
TEVsZW1lbnQ6OlRleHRBcmVhU2V0U2VsZWN0aW9uUmFuZ2UgICAgIERvbnREZWxldGV8RnVuY3Rp
b24gMgotQGVuZAotQGJlZ2luIEhUTUxCdXR0b25FbGVtZW50VGFibGUgNwotICBmb3JtICAgICAg
ICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6QnV0dG9uRm9ybSAgICAgICAgICAgIERvbnREZWxldGV8
UmVhZE9ubHkKLSAgYWNjZXNzS2V5ICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkJ1dHRvbkFjY2Vz
c0tleSAgICAgICBEb250RGVsZXRlCi0gIGRpc2FibGVkICAgICAgS0pTOjpKU0hUTUxFbGVtZW50
OjpCdXR0b25EaXNhYmxlZCAgICAgICAgRG9udERlbGV0ZQotICBuYW1lICAgICAgICAgIEtKUzo6
SlNIVE1MRWxlbWVudDo6QnV0dG9uTmFtZSAgICAgICAgICAgIERvbnREZWxldGUKLSAgdGFiSW5k
ZXggICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkJ1dHRvblRhYkluZGV4ICAgICAgICBEb250RGVs
ZXRlCi0gIHR5cGUgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpCdXR0b25UeXBlICAgICAg
ICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICB2YWx1ZSAgICAgICAgIEtKUzo6SlNIVE1MRWxl
bWVudDo6QnV0dG9uVmFsdWUgICAgICAgICAgIERvbnREZWxldGUKLSAgYmx1ciAgICAgICAgICBL
SlM6OkpTSFRNTEVsZW1lbnQ6OkJ1dHRvbkJsdXIgICAgICAgICAgICBEb250RGVsZXRlfEZ1bmN0
aW9uIDAKLSAgZm9jdXMgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkJ1dHRvbkZvY3VzICAg
ICAgICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDAKLUBlbmQKIEBiZWdpbiBIVE1MTGFiZWxFbGVt
ZW50VGFibGUgNAogICBmb3JtICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6TGFiZWxGb3Jt
ICAgICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKICAgYWNjZXNzS2V5ICAgICBLSlM6OkpT
SFRNTEVsZW1lbnQ6OkxhYmVsQWNjZXNzS2V5ICAgICAgICBEb250RGVsZXRlCkBAIC0xMzE0LDI3
ICsxMTc5LDExIEBAIGJvb2wgSlNIVE1MRWxlbWVudDo6Z2V0T3duUHJvcGVydHlTbG90KEUKICAg
ICBjb25zdCBIYXNoVGFibGUqIHRhYmxlID0gY2xhc3NJbmZvKCktPnByb3BIYXNoVGFibGU7IC8v
IGdldCB0aGUgcmlnaHQgaGFzaHRhYmxlCiAgICAgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSA9IExv
b2t1cDo6ZmluZEVudHJ5KHRhYmxlLCBwcm9wZXJ0eU5hbWUpOwogICAgIGlmIChlbnRyeSkgewot
ICAgICAgICAvLyBkb24ndCBleHBvc2Ugc2VsZWN0aW9uIHByb3BlcnRpZXMgZm9yIGlucHV0IHR5
cGVzIHRoYXQgY2FuJ3QgaGF2ZSBhIHNlbGVjdGlvbgotICAgICAgICBpZiAoZWxlbWVudC5oYXNM
b2NhbE5hbWUoaW5wdXRUYWcpICYmICFzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oaW1w
bCgpKS0+Y2FuSGF2ZVNlbGVjdGlvbigpKSB7Ci0gICAgICAgICAgICBzd2l0Y2ggKGVudHJ5LT52
YWx1ZSkgewotICAgICAgICAgICAgY2FzZSBJbnB1dFNldFNlbGVjdGlvblJhbmdlOgotICAgICAg
ICAgICAgY2FzZSBJbnB1dFNlbGVjdGlvblN0YXJ0OgotICAgICAgICAgICAgY2FzZSBJbnB1dFNl
bGVjdGlvbkVuZDoKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICAgICAgaWYgKGVudHJ5LT5hdHRyICYgRnVuY3Rpb24pCi0gICAgICAgICAg
ICAgICAgICAgIHNsb3Quc2V0U3RhdGljRW50cnkodGhpcywgZW50cnksIHN0YXRpY0Z1bmN0aW9u
R2V0dGVyPEhUTUxFbGVtZW50RnVuY3Rpb24+KTsgCi0gICAgICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgICAgICBzbG90LnNldFN0YXRpY0VudHJ5KHRoaXMsIGVudHJ5LCBzdGF0aWNW
YWx1ZUdldHRlcjxKU0hUTUxFbGVtZW50Pik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAoZW50cnkt
PmF0dHIgJiBGdW5jdGlvbikKLSAgICAgICAgICAgICAgICBzbG90LnNldFN0YXRpY0VudHJ5KHRo
aXMsIGVudHJ5LCBzdGF0aWNGdW5jdGlvbkdldHRlcjxIVE1MRWxlbWVudEZ1bmN0aW9uPik7IAot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNsb3Quc2V0U3RhdGljRW50cnkodGhp
cywgZW50cnksIHN0YXRpY1ZhbHVlR2V0dGVyPEpTSFRNTEVsZW1lbnQ+KTsKLSAgICAgICAgICAg
IHJldHVybiB0cnVlOwotICAgICAgICB9CisgICAgICAgIGlmIChlbnRyeS0+YXR0ciAmIEZ1bmN0
aW9uKQorICAgICAgICAgICAgc2xvdC5zZXRTdGF0aWNFbnRyeSh0aGlzLCBlbnRyeSwgc3RhdGlj
RnVuY3Rpb25HZXR0ZXI8SFRNTEVsZW1lbnRGdW5jdGlvbj4pOyAKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgc2xvdC5zZXRTdGF0aWNFbnRyeSh0aGlzLCBlbnRyeSwgc3RhdGljVmFsdWVHZXR0
ZXI8SlNIVE1MRWxlbWVudD4pOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICAv
LyBCYXNlIEpTSFRNTEVsZW1lbnQgc3R1ZmYgb3IgcGFyZW50IGNsYXNzIGZvcndhcmQsIGFzIHVz
dWFsCkBAIC0xNDQ3LDExMSArMTI5Niw2IEBAIEpTVmFsdWUgKkpTSFRNTEVsZW1lbnQ6OnNlbGVj
dEdldHRlcihFeGUKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAotSlNWYWx1ZSAqSlNI
VE1MRWxlbWVudDo6b3B0R3JvdXBHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNv
bnN0Ci17Ci0gICAgSFRNTE9wdEdyb3VwRWxlbWVudCYgb3B0Z3JvdXAgPSAqc3RhdGljX2Nhc3Q8
SFRNTE9wdEdyb3VwRWxlbWVudCo+KGltcGwoKSk7Ci0gICAgc3dpdGNoICh0b2tlbikgewotICAg
ICAgICBjYXNlIE9wdEdyb3VwRGlzYWJsZWQ6ICAgICAgICByZXR1cm4ganNCb29sZWFuKG9wdGdy
b3VwLmRpc2FibGVkKCkpOwotICAgICAgICBjYXNlIE9wdEdyb3VwTGFiZWw6ICAgICAgICAgICBy
ZXR1cm4ganNTdHJpbmcob3B0Z3JvdXAubGFiZWwoKSk7Ci0gICAgfQotICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwotfQotCi1KU1ZhbHVlICpKU0hUTUxFbGVtZW50OjpvcHRpb25HZXR0ZXIoRXhl
Y1N0YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNvbnN0Ci17Ci0gICAgSFRNTE9wdGlvbkVsZW1lbnQm
IG9wdGlvbiA9ICpzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KGltcGwoKSk7Ci0gICAg
c3dpdGNoICh0b2tlbikgewotICAgICAgICBjYXNlIE9wdGlvbkZvcm06ICAgICAgICAgICAgcmV0
dXJuIHRvSlMoZXhlYyxvcHRpb24uZm9ybSgpKTsgLy8gdHlwZSBIVE1MRm9ybUVsZW1lbnQKLSAg
ICAgICAgY2FzZSBPcHRpb25EZWZhdWx0U2VsZWN0ZWQ6IHJldHVybiBqc0Jvb2xlYW4ob3B0aW9u
LmRlZmF1bHRTZWxlY3RlZCgpKTsKLSAgICAgICAgY2FzZSBPcHRpb25UZXh0OiAgICAgICAgICAg
IHJldHVybiBqc1N0cmluZyhvcHRpb24udGV4dCgpKTsKLSAgICAgICAgY2FzZSBPcHRpb25JbmRl
eDogICAgICAgICAgIHJldHVybiBqc051bWJlcihvcHRpb24uaW5kZXgoKSk7Ci0gICAgICAgIGNh
c2UgT3B0aW9uRGlzYWJsZWQ6ICAgICAgICByZXR1cm4ganNCb29sZWFuKG9wdGlvbi5kaXNhYmxl
ZCgpKTsKLSAgICAgICAgY2FzZSBPcHRpb25MYWJlbDogICAgICAgICAgIHJldHVybiBqc1N0cmlu
ZyhvcHRpb24ubGFiZWwoKSk7Ci0gICAgICAgIGNhc2UgT3B0aW9uU2VsZWN0ZWQ6ICAgICAgICBy
ZXR1cm4ganNCb29sZWFuKG9wdGlvbi5zZWxlY3RlZCgpKTsKLSAgICAgICAgY2FzZSBPcHRpb25W
YWx1ZTogICAgICAgICAgIHJldHVybiBqc1N0cmluZyhvcHRpb24udmFsdWUoKSk7Ci0gICAgfQot
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotfQotCi1zdGF0aWMgSlNWYWx1ZSAqZ2V0SW5wdXRT
ZWxlY3Rpb25TdGFydChIVE1MSW5wdXRFbGVtZW50ICZpbnB1dCkKLXsKLSAgICBpZiAoaW5wdXQu
Y2FuSGF2ZVNlbGVjdGlvbigpKQotICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5wdXQuc2VsZWN0
aW9uU3RhcnQoKSk7Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0KLXN0YXRpYyBKU1Zh
bHVlICpnZXRJbnB1dFNlbGVjdGlvbkVuZChIVE1MSW5wdXRFbGVtZW50ICZpbnB1dCkKLXsKLSAg
ICBpZiAoaW5wdXQuY2FuSGF2ZVNlbGVjdGlvbigpKQotICAgICAgICByZXR1cm4ganNOdW1iZXIo
aW5wdXQuc2VsZWN0aW9uRW5kKCkpOwotICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotfQotCi1K
U1ZhbHVlICpKU0hUTUxFbGVtZW50OjppbnB1dEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGludCB0
b2tlbikgY29uc3QKLXsKLSAgICBIVE1MSW5wdXRFbGVtZW50JiBpbnB1dCA9ICpzdGF0aWNfY2Fz
dDxIVE1MSW5wdXRFbGVtZW50Kj4oaW1wbCgpKTsKLSAgICBzd2l0Y2ggKHRva2VuKSB7Ci0gICAg
ICAgIGNhc2UgSW5wdXREZWZhdWx0VmFsdWU6ICAgIHJldHVybiBqc1N0cmluZyhpbnB1dC5kZWZh
dWx0VmFsdWUoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXREZWZhdWx0Q2hlY2tlZDogIHJldHVybiBq
c0Jvb2xlYW4oaW5wdXQuZGVmYXVsdENoZWNrZWQoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXRGb3Jt
OiAgICAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsaW5wdXQuZm9ybSgpKTsgLy8gdHlwZSBIVE1M
Rm9ybUVsZW1lbnQKLSAgICAgICAgY2FzZSBJbnB1dEFjY2VwdDogICAgICAgICAgcmV0dXJuIGpz
U3RyaW5nKGlucHV0LmFjY2VwdCgpKTsKLSAgICAgICAgY2FzZSBJbnB1dEFjY2Vzc0tleTogICAg
ICAgcmV0dXJuIGpzU3RyaW5nKGlucHV0LmFjY2Vzc0tleSgpKTsKLSAgICAgICAgY2FzZSBJbnB1
dEFsaWduOiAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGlucHV0LmFsaWduKCkpOwotICAgICAg
ICBjYXNlIElucHV0QWx0OiAgICAgICAgICAgICByZXR1cm4ganNTdHJpbmcoaW5wdXQuYWx0KCkp
OwotICAgICAgICBjYXNlIElucHV0Q2hlY2tlZDogICAgICAgICByZXR1cm4ganNCb29sZWFuKGlu
cHV0LmNoZWNrZWQoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXREaXNhYmxlZDogICAgICAgIHJldHVy
biBqc0Jvb2xlYW4oaW5wdXQuZGlzYWJsZWQoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXRJbmRldGVy
bWluYXRlOiAgIHJldHVybiBqc0Jvb2xlYW4oaW5wdXQuaW5kZXRlcm1pbmF0ZSgpKTsKLSAgICAg
ICAgY2FzZSBJbnB1dE1heExlbmd0aDogICAgICAgcmV0dXJuIGpzTnVtYmVyKGlucHV0Lm1heExl
bmd0aCgpKTsKLSAgICAgICAgY2FzZSBJbnB1dE5hbWU6ICAgICAgICAgICAgcmV0dXJuIGpzU3Ry
aW5nKGlucHV0Lm5hbWUoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXRSZWFkT25seTogICAgICAgIHJl
dHVybiBqc0Jvb2xlYW4oaW5wdXQucmVhZE9ubHkoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXRTZWxl
Y3Rpb25TdGFydDogIHJldHVybiBnZXRJbnB1dFNlbGVjdGlvblN0YXJ0KGlucHV0KTsKLSAgICAg
ICAgY2FzZSBJbnB1dFNlbGVjdGlvbkVuZDogICAgcmV0dXJuIGdldElucHV0U2VsZWN0aW9uRW5k
KGlucHV0KTsKLSAgICAgICAgY2FzZSBJbnB1dFNpemU6ICAgICAgICAgICAgcmV0dXJuIGpzTnVt
YmVyKGlucHV0LnNpemUoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXRTcmM6ICAgICAgICAgICAgIHJl
dHVybiBqc1N0cmluZyhpbnB1dC5zcmMoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXRUYWJJbmRleDog
ICAgICAgIHJldHVybiBqc051bWJlcihpbnB1dC50YWJJbmRleCgpKTsKLSAgICAgICAgY2FzZSBJ
bnB1dFR5cGU6ICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGlucHV0LnR5cGUoKSk7Ci0gICAg
ICAgIGNhc2UgSW5wdXRVc2VNYXA6ICAgICAgICAgIHJldHVybiBqc1N0cmluZyhpbnB1dC51c2VN
YXAoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXRWYWx1ZTogICAgICAgICAgIHJldHVybiBqc1N0cmlu
ZyhpbnB1dC52YWx1ZSgpKTsKLSAgICB9Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0K
LUpTVmFsdWUgKkpTSFRNTEVsZW1lbnQ6OnRleHRBcmVhR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywg
aW50IHRva2VuKSBjb25zdAotewotICAgIEhUTUxUZXh0QXJlYUVsZW1lbnQmIHRleHRhcmVhID0g
KnN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihpbXBsKCkpOwotICAgIHN3aXRjaCAo
dG9rZW4pIHsKLSAgICAgICAgY2FzZSBUZXh0QXJlYURlZmF1bHRWYWx1ZTogICAgcmV0dXJuIGpz
U3RyaW5nKHRleHRhcmVhLmRlZmF1bHRWYWx1ZSgpKTsKLSAgICAgICAgY2FzZSBUZXh0QXJlYUZv
cm06ICAgICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYyx0ZXh0YXJlYS5mb3JtKCkpOyAvLyB0eXBl
IEhUTUxGb3JtRWxlbWVudAotICAgICAgICBjYXNlIFRleHRBcmVhQWNjZXNzS2V5OiAgICAgICBy
ZXR1cm4ganNTdHJpbmcodGV4dGFyZWEuYWNjZXNzS2V5KCkpOwotICAgICAgICBjYXNlIFRleHRB
cmVhQ29sczogICAgICAgICAgICByZXR1cm4ganNOdW1iZXIodGV4dGFyZWEuY29scygpKTsKLSAg
ICAgICAgY2FzZSBUZXh0QXJlYURpc2FibGVkOiAgICAgICAgcmV0dXJuIGpzQm9vbGVhbih0ZXh0
YXJlYS5kaXNhYmxlZCgpKTsKLSAgICAgICAgY2FzZSBUZXh0QXJlYU5hbWU6ICAgICAgICAgICAg
cmV0dXJuIGpzU3RyaW5nKHRleHRhcmVhLm5hbWUoKSk7Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFS
ZWFkT25seTogICAgICAgIHJldHVybiBqc0Jvb2xlYW4odGV4dGFyZWEucmVhZE9ubHkoKSk7Ci0g
ICAgICAgIGNhc2UgVGV4dEFyZWFSb3dzOiAgICAgICAgICAgIHJldHVybiBqc051bWJlcih0ZXh0
YXJlYS5yb3dzKCkpOwotICAgICAgICBjYXNlIFRleHRBcmVhU2VsZWN0aW9uU3RhcnQ6ICByZXR1
cm4ganNOdW1iZXIodGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQoKSk7Ci0gICAgICAgIGNhc2UgVGV4
dEFyZWFTZWxlY3Rpb25FbmQ6ICAgIHJldHVybiBqc051bWJlcih0ZXh0YXJlYS5zZWxlY3Rpb25F
bmQoKSk7Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFUYWJJbmRleDogICAgICAgIHJldHVybiBqc051
bWJlcih0ZXh0YXJlYS50YWJJbmRleCgpKTsKLSAgICAgICAgY2FzZSBUZXh0QXJlYVR5cGU6ICAg
ICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKHRleHRhcmVhLnR5cGUoKSk7Ci0gICAgICAgIGNhc2Ug
VGV4dEFyZWFWYWx1ZTogICAgICAgICAgIHJldHVybiBqc1N0cmluZyh0ZXh0YXJlYS52YWx1ZSgp
KTsKLSAgICB9Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0KLUpTVmFsdWUgKkpTSFRN
TEVsZW1lbnQ6OmJ1dHRvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29uc3QK
LXsKLSAgICBIVE1MQnV0dG9uRWxlbWVudCYgYnV0dG9uID0gKnN0YXRpY19jYXN0PEhUTUxCdXR0
b25FbGVtZW50Kj4oaW1wbCgpKTsKLSAgICBzd2l0Y2ggKHRva2VuKSB7Ci0gICAgICAgIGNhc2Ug
QnV0dG9uRm9ybTogICAgICAgICAgICByZXR1cm4gdG9KUyhleGVjLGJ1dHRvbi5mb3JtKCkpOyAv
LyB0eXBlIEhUTUxGb3JtRWxlbWVudAotICAgICAgICBjYXNlIEJ1dHRvbkFjY2Vzc0tleTogICAg
ICAgcmV0dXJuIGpzU3RyaW5nKGJ1dHRvbi5hY2Nlc3NLZXkoKSk7Ci0gICAgICAgIGNhc2UgQnV0
dG9uRGlzYWJsZWQ6ICAgICAgICByZXR1cm4ganNCb29sZWFuKGJ1dHRvbi5kaXNhYmxlZCgpKTsK
LSAgICAgICAgY2FzZSBCdXR0b25OYW1lOiAgICAgICAgICAgIHJldHVybiBqc1N0cmluZyhidXR0
b24ubmFtZSgpKTsKLSAgICAgICAgY2FzZSBCdXR0b25UYWJJbmRleDogICAgICAgIHJldHVybiBq
c051bWJlcihidXR0b24udGFiSW5kZXgoKSk7Ci0gICAgICAgIGNhc2UgQnV0dG9uVHlwZTogICAg
ICAgICAgICByZXR1cm4ganNTdHJpbmcoYnV0dG9uLnR5cGUoKSk7Ci0gICAgICAgIGNhc2UgQnV0
dG9uVmFsdWU6ICAgICAgICAgICByZXR1cm4ganNTdHJpbmcoYnV0dG9uLnZhbHVlKCkpOwotICAg
IH0KLSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLX0KLQogSlNWYWx1ZSAqSlNIVE1MRWxlbWVu
dDo6bGFiZWxHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNvbnN0CiB7CiAgICAg
SFRNTExhYmVsRWxlbWVudCYgbGFiZWwgPSAqc3RhdGljX2Nhc3Q8SFRNTExhYmVsRWxlbWVudCo+
KGltcGwoKSk7CkBAIC0yMjIwLDQwICsxOTY0LDYgQEAgSlNWYWx1ZSAqSFRNTEVsZW1lbnRGdW5j
dGlvbjo6Y2FsbEFzRnVuYwogICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAg
ICAgIH0KICAgICB9Ci0gICAgZWxzZSBpZiAoZWxlbWVudC5oYXNMb2NhbE5hbWUoaW5wdXRUYWcp
KSB7Ci0gICAgICAgIEhUTUxJbnB1dEVsZW1lbnQgJmlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElu
cHV0RWxlbWVudCAmPihlbGVtZW50KTsKLSAgICAgICAgaWYgKGlkID09IEpTSFRNTEVsZW1lbnQ6
OklucHV0Qmx1cikgewotICAgICAgICAgICAgaW5wdXQuYmx1cigpOwotICAgICAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoaWQgPT0gSlNI
VE1MRWxlbWVudDo6SW5wdXRGb2N1cykgewotICAgICAgICAgICAgaW5wdXQuZm9jdXMoKTsKLSAg
ICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2Ug
aWYgKGlkID09IEpTSFRNTEVsZW1lbnQ6OklucHV0U2VsZWN0KSB7Ci0gICAgICAgICAgICBpbnB1
dC5zZWxlY3QoKTsKLSAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9
Ci0gICAgICAgIGVsc2UgaWYgKGlkID09IEpTSFRNTEVsZW1lbnQ6OklucHV0Q2xpY2spIHsKLSAg
ICAgICAgICAgIGlucHV0LmNsaWNrKCk7Ci0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChpZCA9PSBKU0hUTUxFbGVtZW50OjpJbnB1
dFNldFNlbGVjdGlvblJhbmdlKSB7Ci0gICAgICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5n
ZShhcmdzWzBdLT50b0ludDMyKGV4ZWMpLCBhcmdzWzFdLT50b0ludDMyKGV4ZWMpKTsKLSAgICAg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgfQotICAgIGVsc2Ug
aWYgKGVsZW1lbnQuaGFzTG9jYWxOYW1lKGJ1dHRvblRhZykpIHsKLSAgICAgICAgSFRNTEJ1dHRv
bkVsZW1lbnQgJmJ1dHRvbiA9IHN0YXRpY19jYXN0PEhUTUxCdXR0b25FbGVtZW50ICY+KGVsZW1l
bnQpOwotICAgICAgICBpZiAoaWQgPT0gSlNIVE1MRWxlbWVudDo6QnV0dG9uQmx1cikgewotICAg
ICAgICAgICAgYnV0dG9uLmJsdXIoKTsKLSAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKGlkID09IEpTSFRNTEVsZW1lbnQ6OkJ1dHRv
bkZvY3VzKSB7Ci0gICAgICAgICAgICBidXR0b24uZm9jdXMoKTsKLSAgICAgICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgfQogICAgIGVsc2UgaWYgKGVsZW1lbnQu
aGFzTG9jYWxOYW1lKGxhYmVsVGFnKSkgewogICAgICAgICBIVE1MTGFiZWxFbGVtZW50ICZsYWJl
bCA9IHN0YXRpY19jYXN0PEhUTUxMYWJlbEVsZW1lbnQgJj4oZWxlbWVudCk7CiAgICAgICAgIGlm
IChpZCA9PSBKU0hUTUxFbGVtZW50OjpMYWJlbEZvY3VzKSB7CkBAIC0yMjY4LDI1ICsxOTc4LDYg
QEAgSlNWYWx1ZSAqSFRNTEVsZW1lbnRGdW5jdGlvbjo6Y2FsbEFzRnVuYwogICAgICAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgZWxzZSBpZiAoZWxl
bWVudC5oYXNMb2NhbE5hbWUodGV4dGFyZWFUYWcpKSB7Ci0gICAgICAgIEhUTUxUZXh0QXJlYUVs
ZW1lbnQgJnRleHRhcmVhID0gc3RhdGljX2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCAmPihlbGVt
ZW50KTsKLSAgICAgICAgaWYgKGlkID09IEpTSFRNTEVsZW1lbnQ6OlRleHRBcmVhQmx1cikgewot
ICAgICAgICAgICAgdGV4dGFyZWEuYmx1cigpOwotICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoaWQgPT0gSlNIVE1MRWxlbWVudDo6
VGV4dEFyZWFGb2N1cykgewotICAgICAgICAgICAgdGV4dGFyZWEuZm9jdXMoKTsKLSAgICAgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKGlk
ID09IEpTSFRNTEVsZW1lbnQ6OlRleHRBcmVhU2VsZWN0KSB7Ci0gICAgICAgICAgICB0ZXh0YXJl
YS5zZWxlY3QoKTsKLSAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9
Ci0gICAgICAgIGVsc2UgaWYgKGlkID09IEpTSFRNTEVsZW1lbnQ6OlRleHRBcmVhU2V0U2VsZWN0
aW9uUmFuZ2UpIHsKLSAgICAgICAgICAgIHRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKGFyZ3Nb
MF0tPnRvSW50MzIoZXhlYyksIGFyZ3NbMV0tPnRvSW50MzIoZXhlYykpOwotICAgICAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgIH0KLSAgICB9CiAgICAgZWxzZSBpZiAoZWxl
bWVudC5oYXNMb2NhbE5hbWUoYVRhZykpIHsKICAgICAgICAgSFRNTEFuY2hvckVsZW1lbnQgJmFu
Y2hvciA9IHN0YXRpY19jYXN0PEhUTUxBbmNob3JFbGVtZW50ICY+KGVsZW1lbnQpOwogICAgICAg
ICBpZiAoaWQgPT0gSlNIVE1MRWxlbWVudDo6QW5jaG9yQmx1cikgewpAQCAtMjM5Myw4ICsyMDg0
LDcgQEAgdm9pZCBKU0hUTUxFbGVtZW50OjpwdXQoRXhlY1N0YXRlICpleGVjLAogICAgICAgICBp
ZiAoZW50cnktPmF0dHIgJiBGdW5jdGlvbikgeyAvLyBmdW5jdGlvbjogcHV0IGFzIG92ZXJyaWRl
IHByb3BlcnR5CiAgICAgICAgICAgICBKU09iamVjdDo6cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIGF0dHIpOwogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGVs
c2UgaWYgKCEoZW50cnktPmF0dHIgJiBSZWFkT25seSkpIHsgLy8gbGV0IGxvb2t1cFB1dCBwcmlu
dCB0aGUgd2FybmluZyBpZiByZWFkLW9ubHkKKyAgICAgICAgfSBlbHNlIGlmICghKGVudHJ5LT5h
dHRyICYgUmVhZE9ubHkpKSB7IC8vIGxldCBsb29rdXBQdXQgcHJpbnQgdGhlIHdhcm5pbmcgaWYg
cmVhZC1vbmx5CiAgICAgICAgICAgICBwdXRWYWx1ZVByb3BlcnR5KGV4ZWMsIGVudHJ5LT52YWx1
ZSwgdmFsdWUsIGF0dHIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0yNDA1
LDkgKzIwOTUsOSBAQCB2b2lkIEpTSFRNTEVsZW1lbnQ6OnB1dChFeGVjU3RhdGUgKmV4ZWMsCiAK
IHZvaWQgSlNIVE1MRWxlbWVudDo6aHRtbFNldHRlcihFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tl
biwgSlNWYWx1ZSAqdmFsdWUsIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgc3RyKQogewotICAgIEhU
TUxIZWFkRWxlbWVudCAmaGVhZCA9ICpzdGF0aWNfY2FzdDxIVE1MSGVhZEVsZW1lbnQqPihpbXBs
KCkpOwotICAgIGlmICh0b2tlbiA9PSBIZWFkUHJvZmlsZSkgCi0gICAgICAgIGhlYWQuc2V0UHJv
ZmlsZShzdHIpOworICAgIEhUTUxIdG1sRWxlbWVudCYgaHRtbCA9ICpzdGF0aWNfY2FzdDxIVE1M
SHRtbEVsZW1lbnQqPihpbXBsKCkpOworICAgIGlmICh0b2tlbiA9PSBIdG1sVmVyc2lvbikKKyAg
ICAgICAgaHRtbC5zZXRWZXJzaW9uKHN0cik7CiB9CiAKIHZvaWQgSlNIVE1MRWxlbWVudDo6aXNJ
bmRleFNldHRlcihFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbiwgSlNWYWx1ZSAqdmFsdWUsIGNv
bnN0IFdlYkNvcmU6OlN0cmluZyYgc3RyKQpAQCAtMjQ4MCw5MyArMjE3MCw2IEBAIHZvaWQgSlNI
VE1MRWxlbWVudDo6c2VsZWN0U2V0dGVyKEV4ZWNTdGEKICAgICB9CiB9CiAKLXZvaWQgSlNIVE1M
RWxlbWVudDo6b3B0R3JvdXBTZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFs
dWUgKnZhbHVlLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIHN0cikKLXsKLSAgICBIVE1MT3B0R3Jv
dXBFbGVtZW50JiBvcHRncm91cCA9ICpzdGF0aWNfY2FzdDxIVE1MT3B0R3JvdXBFbGVtZW50Kj4o
aW1wbCgpKTsKLSAgICBzd2l0Y2ggKHRva2VuKSB7Ci0gICAgICAgIGNhc2UgT3B0R3JvdXBEaXNh
YmxlZDogICAgICAgIHsgb3B0Z3JvdXAuc2V0RGlzYWJsZWQodmFsdWUtPnRvQm9vbGVhbihleGVj
KSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIE9wdEdyb3VwTGFiZWw6ICAgICAgICAgICB7IG9w
dGdyb3VwLnNldExhYmVsKHN0cik7IHJldHVybjsgfQotICAgIH0KLX0KLQotdm9pZCBKU0hUTUxF
bGVtZW50OjpvcHRpb25TZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUg
KnZhbHVlLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIHN0cikKLXsKLSAgICBET01FeGNlcHRpb25U
cmFuc2xhdG9yIGV4Y2VwdGlvbihleGVjKTsKLSAgICBIVE1MT3B0aW9uRWxlbWVudCYgb3B0aW9u
ID0gKnN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4oaW1wbCgpKTsKLSAgICBzd2l0Y2gg
KHRva2VuKSB7Ci0gICAgICAgIC8vIHJlYWQtb25seTogZm9ybQotICAgICAgICBjYXNlIE9wdGlv
bkRlZmF1bHRTZWxlY3RlZDogeyBvcHRpb24uc2V0RGVmYXVsdFNlbGVjdGVkKHZhbHVlLT50b0Jv
b2xlYW4oZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBPcHRpb25UZXh0OiAgICAgICAg
ICAgIHsgb3B0aW9uLnNldFRleHQoc3RyLCBleGNlcHRpb24pOyByZXR1cm47IH0KLSAgICAgICAg
Ly8gcmVhZC1vbmx5OiBpbmRleAotICAgICAgICBjYXNlIE9wdGlvbkRpc2FibGVkOiAgICAgICAg
eyBvcHRpb24uc2V0RGlzYWJsZWQodmFsdWUtPnRvQm9vbGVhbihleGVjKSk7IHJldHVybjsgfQot
ICAgICAgICBjYXNlIE9wdGlvbkxhYmVsOiAgICAgICAgICAgeyBvcHRpb24uc2V0TGFiZWwoc3Ry
KTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgT3B0aW9uU2VsZWN0ZWQ6ICAgICAgICB7IG9wdGlv
bi5zZXRTZWxlY3RlZCh2YWx1ZS0+dG9Cb29sZWFuKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAg
IGNhc2UgT3B0aW9uVmFsdWU6ICAgICAgICAgICB7IG9wdGlvbi5zZXRWYWx1ZShzdHIpOyByZXR1
cm47IH0KLSAgICB9Ci19Ci0KLXZvaWQgSlNIVE1MRWxlbWVudDo6aW5wdXRTZXR0ZXIoRXhlY1N0
YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBjb25zdCBXZWJDb3JlOjpTdHJp
bmcmIHN0cikKLXsKLSAgICBIVE1MSW5wdXRFbGVtZW50JiBpbnB1dCA9ICpzdGF0aWNfY2FzdDxI
VE1MSW5wdXRFbGVtZW50Kj4oaW1wbCgpKTsKLSAgICBzd2l0Y2ggKHRva2VuKSB7Ci0gICAgICAg
IGNhc2UgSW5wdXREZWZhdWx0VmFsdWU6ICAgIHsgaW5wdXQuc2V0RGVmYXVsdFZhbHVlKHN0cik7
IHJldHVybjsgfQotICAgICAgICBjYXNlIElucHV0RGVmYXVsdENoZWNrZWQ6ICB7IGlucHV0LnNl
dERlZmF1bHRDaGVja2VkKHZhbHVlLT50b0Jvb2xlYW4oZXhlYykpOyByZXR1cm47IH0KLSAgICAg
ICAgLy8gcmVhZC1vbmx5OiBmb3JtCi0gICAgICAgIGNhc2UgSW5wdXRBY2NlcHQ6ICAgICAgICAg
IHsgaW5wdXQuc2V0QWNjZXB0KHN0cik7IHJldHVybjsgfQotICAgICAgICBjYXNlIElucHV0QWNj
ZXNzS2V5OiAgICAgICB7IGlucHV0LnNldEFjY2Vzc0tleShzdHIpOyByZXR1cm47IH0KLSAgICAg
ICAgY2FzZSBJbnB1dEFsaWduOiAgICAgICAgICAgeyBpbnB1dC5zZXRBbGlnbihzdHIpOyByZXR1
cm47IH0KLSAgICAgICAgY2FzZSBJbnB1dEFsdDogICAgICAgICAgICAgeyBpbnB1dC5zZXRBbHQo
c3RyKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSW5wdXRDaGVja2VkOiAgICAgICAgIHsgaW5w
dXQuc2V0Q2hlY2tlZCh2YWx1ZS0+dG9Cb29sZWFuKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAg
IGNhc2UgSW5wdXREaXNhYmxlZDogICAgICAgIHsgaW5wdXQuc2V0RGlzYWJsZWQodmFsdWUtPnRv
Qm9vbGVhbihleGVjKSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIElucHV0SW5kZXRlcm1pbmF0
ZTogICB7IGlucHV0LnNldEluZGV0ZXJtaW5hdGUodmFsdWUtPnRvQm9vbGVhbihleGVjKSk7IHJl
dHVybjsgfQotICAgICAgICBjYXNlIElucHV0TWF4TGVuZ3RoOiAgICAgICB7IGlucHV0LnNldE1h
eExlbmd0aCh2YWx1ZS0+dG9JbnQzMihleGVjKSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIElu
cHV0TmFtZTogICAgICAgICAgICB7IGlucHV0LnNldE5hbWUoQXRvbWljU3RyaW5nKHN0cikpOyBy
ZXR1cm47IH0KLSAgICAgICAgY2FzZSBJbnB1dFJlYWRPbmx5OiAgICAgICAgeyBpbnB1dC5zZXRS
ZWFkT25seSh2YWx1ZS0+dG9Cb29sZWFuKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2Ug
SW5wdXRTaXplOiAgICAgICAgICAgIHsgaW5wdXQuc2V0U2l6ZSh2YWx1ZS0+dG9JbnQzMihleGVj
KSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIElucHV0U2VsZWN0aW9uU3RhcnQ6ICB7IGlucHV0
LnNldFNlbGVjdGlvblN0YXJ0KHZhbHVlLT50b0ludDMyKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAg
ICAgIGNhc2UgSW5wdXRTZWxlY3Rpb25FbmQ6ICAgIHsgaW5wdXQuc2V0U2VsZWN0aW9uRW5kKHZh
bHVlLT50b0ludDMyKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSW5wdXRTcmM6ICAg
ICAgICAgICAgIHsgaW5wdXQuc2V0U3JjKHN0cik7IHJldHVybjsgfQotICAgICAgICBjYXNlIElu
cHV0VGFiSW5kZXg6ICAgICAgICB7IGlucHV0LnNldFRhYkluZGV4KHZhbHVlLT50b0ludDMyKGV4
ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSW5wdXRUeXBlOiAgICAgICAgICAgIHsgaW5w
dXQuc2V0VHlwZShzdHIpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBJbnB1dFVzZU1hcDogICAg
ICAgICAgeyBpbnB1dC5zZXRVc2VNYXAoc3RyKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSW5w
dXRWYWx1ZTogICAgICAgICAgIHsgaW5wdXQuc2V0VmFsdWUoc3RyKTsgcmV0dXJuOyB9Ci0gICAg
fQotfQotCi12b2lkIEpTSFRNTEVsZW1lbnQ6OnRleHRBcmVhU2V0dGVyKEV4ZWNTdGF0ZSAqZXhl
YywgaW50IHRva2VuLCBKU1ZhbHVlICp2YWx1ZSwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzdHIp
Ci17Ci0gICAgSFRNTFRleHRBcmVhRWxlbWVudCYgdGV4dGFyZWEgPSAqc3RhdGljX2Nhc3Q8SFRN
TFRleHRBcmVhRWxlbWVudCo+KGltcGwoKSk7Ci0gICAgc3dpdGNoICh0b2tlbikgewotICAgICAg
ICBjYXNlIFRleHRBcmVhRGVmYXVsdFZhbHVlOiAgICB7IHRleHRhcmVhLnNldERlZmF1bHRWYWx1
ZShzdHIpOyByZXR1cm47IH0KLSAgICAgICAgLy8gcmVhZC1vbmx5OiBmb3JtCi0gICAgICAgIGNh
c2UgVGV4dEFyZWFBY2Nlc3NLZXk6ICAgICAgIHsgdGV4dGFyZWEuc2V0QWNjZXNzS2V5KHN0cik7
IHJldHVybjsgfQotICAgICAgICBjYXNlIFRleHRBcmVhQ29sczogICAgICAgICAgICB7IHRleHRh
cmVhLnNldENvbHModmFsdWUtPnRvSW50MzIoZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAgY2Fz
ZSBUZXh0QXJlYURpc2FibGVkOiAgICAgICAgeyB0ZXh0YXJlYS5zZXREaXNhYmxlZCh2YWx1ZS0+
dG9Cb29sZWFuKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFOYW1lOiAg
ICAgICAgICAgIHsgdGV4dGFyZWEuc2V0TmFtZShBdG9taWNTdHJpbmcoc3RyKSk7IHJldHVybjsg
fQotICAgICAgICBjYXNlIFRleHRBcmVhUmVhZE9ubHk6ICAgICAgICB7IHRleHRhcmVhLnNldFJl
YWRPbmx5KHZhbHVlLT50b0Jvb2xlYW4oZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBU
ZXh0QXJlYVJvd3M6ICAgICAgICAgICAgeyB0ZXh0YXJlYS5zZXRSb3dzKHZhbHVlLT50b0ludDMy
KGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFTZWxlY3Rpb25TdGFydDog
IHsgdGV4dGFyZWEuc2V0U2VsZWN0aW9uU3RhcnQodmFsdWUtPnRvSW50MzIoZXhlYykpOyByZXR1
cm47IH0KLSAgICAgICAgY2FzZSBUZXh0QXJlYVNlbGVjdGlvbkVuZDogICAgeyB0ZXh0YXJlYS5z
ZXRTZWxlY3Rpb25FbmQodmFsdWUtPnRvSW50MzIoZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAg
Y2FzZSBUZXh0QXJlYVRhYkluZGV4OiAgICAgICAgeyB0ZXh0YXJlYS5zZXRUYWJJbmRleCh2YWx1
ZS0+dG9JbnQzMihleGVjKSk7IHJldHVybjsgfQotICAgICAgICAvLyByZWFkLW9ubHk6IHR5cGUK
LSAgICAgICAgY2FzZSBUZXh0QXJlYVZhbHVlOiAgICAgICAgICAgeyB0ZXh0YXJlYS5zZXRWYWx1
ZShzdHIpOyByZXR1cm47IH0KLSAgICB9Ci19Ci0KLXZvaWQgSlNIVE1MRWxlbWVudDo6YnV0dG9u
U2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuLCBKU1ZhbHVlICp2YWx1ZSwgY29uc3Qg
V2ViQ29yZTo6U3RyaW5nJiBzdHIpCi17Ci0gICAgSFRNTEJ1dHRvbkVsZW1lbnQmIGJ1dHRvbiA9
ICpzdGF0aWNfY2FzdDxIVE1MQnV0dG9uRWxlbWVudCo+KGltcGwoKSk7Ci0gICAgc3dpdGNoICh0
b2tlbikgewotICAgICAgICAvLyByZWFkLW9ubHk6IGZvcm0KLSAgICAgICAgY2FzZSBCdXR0b25B
Y2Nlc3NLZXk6ICAgICAgIHsgYnV0dG9uLnNldEFjY2Vzc0tleShzdHIpOyByZXR1cm47IH0KLSAg
ICAgICAgY2FzZSBCdXR0b25EaXNhYmxlZDogICAgICAgIHsgYnV0dG9uLnNldERpc2FibGVkKHZh
bHVlLT50b0Jvb2xlYW4oZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBCdXR0b25OYW1l
OiAgICAgICAgICAgIHsgYnV0dG9uLnNldE5hbWUoQXRvbWljU3RyaW5nKHN0cikpOyByZXR1cm47
IH0KLSAgICAgICAgY2FzZSBCdXR0b25UYWJJbmRleDogICAgICAgIHsgYnV0dG9uLnNldFRhYklu
ZGV4KHZhbHVlLT50b0ludDMyKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIC8vIHJlYWQtb25s
eTogdHlwZQotICAgICAgICBjYXNlIEJ1dHRvblZhbHVlOiAgICAgICAgICAgeyBidXR0b24uc2V0
VmFsdWUoc3RyKTsgcmV0dXJuOyB9Ci0gICAgfQotfQotCiB2b2lkIEpTSFRNTEVsZW1lbnQ6Omxh
YmVsU2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuLCBKU1ZhbHVlICp2YWx1ZSwgY29u
c3QgV2ViQ29yZTo6U3RyaW5nJiBzdHIpCiB7CiAgICAgSFRNTExhYmVsRWxlbWVudCYgbGFiZWwg
PSAqc3RhdGljX2Nhc3Q8SFRNTExhYmVsRWxlbWVudCo+KGltcGwoKSk7CkBAIC0zMzI0LDQzICsy
OTI3LDYgQEAgdm9pZCBKU0hUTUxTZWxlY3RDb2xsZWN0aW9uOjpwdXQoRXhlY1N0YQogICBzZXRE
T01FeGNlcHRpb24oZXhlYywgZXhjZXB0aW9uKTsKIH0KIAotLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LyBPcHRpb24gT2JqZWN0IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1PcHRpb25Db25zdHJ1
Y3RvckltcDo6T3B0aW9uQ29uc3RydWN0b3JJbXAoRXhlY1N0YXRlICpleGVjLCBEb2N1bWVudCAq
ZCkKLSAgICA6IG1fZG9jKGQpCi17Ci0gIHB1dChleGVjLGxlbmd0aFByb3BlcnR5TmFtZSwganNO
dW1iZXIoNCksIFJlYWRPbmx5fERvbnREZWxldGV8RG9udEVudW0pOwotfQotCi1ib29sIE9wdGlv
bkNvbnN0cnVjdG9ySW1wOjppbXBsZW1lbnRzQ29uc3RydWN0KCkgY29uc3QKLXsKLSAgcmV0dXJu
IHRydWU7Ci19Ci0KLUpTT2JqZWN0ICpPcHRpb25Db25zdHJ1Y3RvckltcDo6Y29uc3RydWN0KEV4
ZWNTdGF0ZSAqZXhlYywgY29uc3QgTGlzdCAmYXJncykKLXsKLSAgaW50IGV4Y2VwdGlvbiA9IDA7
Ci0gIFJlZlB0cjxFbGVtZW50PiBlbChtX2RvYy0+Y3JlYXRlRWxlbWVudCgib3B0aW9uIiwgZXhj
ZXB0aW9uKSk7Ci0gIEhUTUxPcHRpb25FbGVtZW50ICpvcHQgPSAwOwotICBpZiAoZWwpIHsKLSAg
ICBvcHQgPSBzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KGVsLmdldCgpKTsKLSAgICBp
bnQgc3ogPSBhcmdzLnNpemUoKTsKLSAgICBSZWZQdHI8VGV4dD4gdCA9IG1fZG9jLT5jcmVhdGVU
ZXh0Tm9kZSgiIik7Ci0gICAgb3B0LT5hcHBlbmRDaGlsZCh0LCBleGNlcHRpb24pOwotICAgIGlm
IChleGNlcHRpb24gPT0gMCAmJiBzeiA+IDApCi0gICAgICB0LT5zZXREYXRhKGFyZ3NbMF0tPnRv
U3RyaW5nKGV4ZWMpLCBleGNlcHRpb24pOyAvLyBzZXQgdGhlIHRleHQKLSAgICBpZiAoZXhjZXB0
aW9uID09IDAgJiYgc3ogPiAxKQotICAgICAgb3B0LT5zZXRWYWx1ZShhcmdzWzFdLT50b1N0cmlu
ZyhleGVjKSk7Ci0gICAgaWYgKGV4Y2VwdGlvbiA9PSAwICYmIHN6ID4gMikKLSAgICAgIG9wdC0+
c2V0RGVmYXVsdFNlbGVjdGVkKGFyZ3NbMl0tPnRvQm9vbGVhbihleGVjKSk7Ci0gICAgaWYgKGV4
Y2VwdGlvbiA9PSAwICYmIHN6ID4gMykKLSAgICAgIG9wdC0+c2V0U2VsZWN0ZWQoYXJnc1szXS0+
dG9Cb29sZWFuKGV4ZWMpKTsKLSAgfQotCi0gIHNldERPTUV4Y2VwdGlvbihleGVjLCBleGNlcHRp
b24pOwotICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNPYmplY3QqPih0b0pTKGV4ZWMsb3B0KSk7Ci19
Ci0KIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gSW1hZ2UgT2JqZWN0IC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwogCiBJbWFnZUNvbnN0cnVjdG9ySW1wOjpJbWFnZUNvbnN0cnVjdG9ySW1wKEV4ZWNT
dGF0ZSAqLCBEb2N1bWVudCAqZCkKSW5kZXg6IGJpbmRpbmdzL2pzL2tqc193aW5kb3cuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGJpbmRpbmdzL2pzL2tqc193aW5kb3cuY3BwCShyZXZpc2lvbiAxNDQzNCkK
KysrIGJpbmRpbmdzL2pzL2tqc193aW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiSlNET01QYXJzZXIuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvdy5o
IgogI2luY2x1ZGUgIkpTRXZlbnQuaCIKKyNpbmNsdWRlICJKU0hUTUxPcHRpb25FbGVtZW50Q29u
c3RydWN0b3IuaCIKICNpbmNsdWRlICJKU011dGF0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJKU05v
ZGUuaCIKICNpbmNsdWRlICJKU05vZGVGaWx0ZXIuaCIKQEAgLTc3MSw3ICs3NzIsNyBAQCBKU1Zh
bHVlICpXaW5kb3c6OmdldFZhbHVlUHJvcGVydHkoRXhlY1N0CiAgICAgICAvLyB0aW1lCiAgICAg
ICByZXR1cm4gbmV3IEltYWdlQ29uc3RydWN0b3JJbXAoZXhlYywgbV9mcmFtZS0+ZG9jdW1lbnQo
KSk7CiAgICAgY2FzZSBPcHRpb246Ci0gICAgICByZXR1cm4gbmV3IE9wdGlvbkNvbnN0cnVjdG9y
SW1wKGV4ZWMsIG1fZnJhbWUtPmRvY3VtZW50KCkpOworICAgICAgcmV0dXJuIG5ldyBKU0hUTUxP
cHRpb25FbGVtZW50Q29uc3RydWN0b3IoZXhlYywgbV9mcmFtZS0+ZG9jdW1lbnQoKSk7CiAgICAg
Y2FzZSBYTUxIdHRwUmVxdWVzdDoKICAgICAgIHJldHVybiBuZXcgSlNYTUxIdHRwUmVxdWVzdENv
bnN0cnVjdG9ySW1wKGV4ZWMsIG1fZnJhbWUtPmRvY3VtZW50KCkpOwogICAgIGNhc2UgWE1MU2Vy
aWFsaXplcjoKSW5kZXg6IGJpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEJhc2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBiaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmgJKHJldmlzaW9u
IDApCisrKyBiaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmgJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1w
bGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAq
LworCisjaWZuZGVmIEpTSFRNTElucHV0RWxlbWVudEJhc2VfSAorI2RlZmluZSBKU0hUTUxJbnB1
dEVsZW1lbnRCYXNlX0gKKworI2luY2x1ZGUgImtqc19odG1sLmgiCisjaW5jbHVkZSAia2pzX2Jp
bmRpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgSFRNTElucHV0RWxl
bWVudDsKKworICAgIEtKU19ERUZJTkVfUFJPVE9UWVBFX1dJVEhfUFJPVE9UWVBFKEpTSFRNTElu
cHV0RWxlbWVudEJhc2VQcm90bywgS0pTOjpKU0hUTUxFbGVtZW50UHJvdG8pCisKKyAgICBjbGFz
cyBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlIDogcHVibGljIEtKUzo6SlNIVE1MRWxlbWVudCB7Cisg
ICAgcHVibGljOgorICAgICAgICBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlKEtKUzo6RXhlY1N0YXRl
KiwgUGFzc1JlZlB0cjxIVE1MSW5wdXRFbGVtZW50Pik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoS0pTOjpFeGVjU3RhdGUqLCBjb25zdCBLSlM6OklkZW50aWZpZXIm
LCBLSlM6OlByb3BlcnR5U2xvdCYpOworICAgICAgICB2aXJ0dWFsIGNvbnN0IEtKUzo6Q2xhc3NJ
bmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmaW5mbzsgfQorICAgICAgICBzdGF0aWMg
Y29uc3QgS0pTOjpDbGFzc0luZm8gaW5mbzsKKyAgICAgICAgZW51bSB7IFNldFNlbGVjdGlvblJh
bmdlLCBTZWxlY3Rpb25TdGFydCwgU2VsZWN0aW9uRW5kIH07CisgICAgfTsKK30KKworI2VuZGlm
CkluZGV4OiBEZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIERlcml2ZWRTb3VyY2Vz
Lm1ha2UJKHJldmlzaW9uIDE0NDM0KQorKysgRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBj
b3B5KQpAQCAtNjMsMTQgKzYzLDIwIEBAIGFsbCA6IFwKICAgICBKU0VsZW1lbnQuaCBcCiAgICAg
SlNFdmVudC5oIFwKICAgICBKU0VudGl0eS5oIFwKKyAgICBKU0hUTUxCdXR0b25FbGVtZW50Lmgg
XAogICAgIEpTSFRNTEJhc2VFbGVtZW50LmggXAogICAgIEpTSFRNTENhbnZhc0VsZW1lbnQuaCBc
CiAgICAgSlNIVE1MRG9jdW1lbnQuaCBcCiAgICAgSlNIVE1MRWxlbWVudC5oIFwKICAgICBKU0hU
TUxIZWFkRWxlbWVudC5oIFwKKyAgICBKU0hUTUxJbnB1dEVsZW1lbnQuaCBcCisgICAgSlNIVE1M
SW5wdXRFbGVtZW50QmFzZVRhYmxlLmNwcCBcCiAgICAgSlNIVE1MTGlua0VsZW1lbnQuaCBcCisg
ICAgSlNIVE1MT3B0aW9uRWxlbWVudC5oIFwKKyAgICBKU0hUTUxPcHRHcm91cEVsZW1lbnQuaCBc
CiAgICAgSlNIVE1MTWV0YUVsZW1lbnQuaCBcCiAgICAgSlNIVE1MU3R5bGVFbGVtZW50LmggXAor
ICAgIEpTSFRNTFRleHRBcmVhRWxlbWVudC5oIFwKICAgICBKU0hUTUxUaXRsZUVsZW1lbnQuaCBc
CiAgICAgSlNLZXlib2FyZEV2ZW50LmggXAogICAgIEpTTW91c2VFdmVudC5oIFwKSW5kZXg6IGh0
bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaHRtbC9IVE1MT3B0R3Jv
dXBFbGVtZW50LmlkbAkocmV2aXNpb24gMCkKKysrIGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5p
ZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAyMTEx
LTEzMDcsIFVTQS4KKyAqLworCittb2R1bGUgaHRtbCB7CisKKyAgICBpbnRlcmZhY2UgW0xlZ2Fj
eVBhcmVudD1LSlM6OkpTSFRNTEVsZW1lbnRdIEhUTUxPcHRHcm91cEVsZW1lbnQgOiBIVE1MRWxl
bWVudCB7CisgICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAgICAgZGlzYWJsZWQ7
CisgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgbGFiZWw7CisgICAgfTsK
KworfQpJbmRleDogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQorKysgaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
KyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0
ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkg
b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAqIEJvc3RvbiwgTUEg
MDIxMTEtMTMwNywgVVNBLgorICovCisKK21vZHVsZSBodG1sIHsKKworICAgIGludGVyZmFjZSBb
TGVnYWN5UGFyZW50PUpTSFRNTElucHV0RWxlbWVudEJhc2VdIEhUTUxJbnB1dEVsZW1lbnQgOiBI
VE1MRWxlbWVudCB7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAg
ICAgICAgZGVmYXVsdFZhbHVlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4g
ICAgICAgICAgICAgIGRlZmF1bHRDaGVja2VkOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
IEhUTUxGb3JtRWxlbWVudCAgICAgIGZvcm07CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAg
RE9NU3RyaW5nICAgICAgICAgICAgYWNjZXB0OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUg
IERPTVN0cmluZyAgICAgICAgICAgIGFjY2Vzc0tleTsKKyAgICAgICAgICAgICAgICAgYXR0cmli
dXRlICBET01TdHJpbmcgICAgICAgICAgICBhbGlnbjsKKyAgICAgICAgICAgICAgICAgYXR0cmli
dXRlICBET01TdHJpbmcgICAgICAgICAgICBhbHQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSAgYm9vbGVhbiAgICAgICAgICAgICAgY2hlY2tlZDsKKyAgICAgICAgICAgICAgICAgYXR0cmli
dXRlICBib29sZWFuICAgICAgICAgICAgICBkaXNhYmxlZDsKKyAgICAgICAgICAgICAgICAgYXR0
cmlidXRlICBsb25nICAgICAgICAgICAgICAgICBtYXhMZW5ndGg7CisgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgbmFtZTsKKyAgICAgICAgICAgICAgICAg
YXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICByZWFkT25seTsKKyAgICAgICAgLy8gVGhl
IEhUTUwgRE9NIDEgc3BlYyBjbGFpbXMgInNpemUiIHNob3VsZCBiZSBhIERPTVN0cmluZywgeWV0
IEZpcmVGb3ggbWFrZXMgaXQgYSBudW1iZXIKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBs
b25nICAgICAgICAgICAgICAgICBzaXplOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERP
TVN0cmluZyAgICAgICAgICAgIHNyYzsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBsb25n
ICAgICAgICAgICAgICAgICB0YWJJbmRleDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBE
T01TdHJpbmcgICAgICAgICAgICB0eXBlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERP
TVN0cmluZyAgICAgICAgICAgIHVzZU1hcDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBE
T01TdHJpbmcgICAgICAgICAgICB2YWx1ZTsKKyAgICAgICAgCisgICAgICAgIHZvaWQgICAgYmx1
cigpOworICAgICAgICB2b2lkICAgIGZvY3VzKCk7CisgICAgICAgIHZvaWQgICAgc2VsZWN0KCk7
CisgICAgICAgIHZvaWQgICAgY2xpY2soKTsKKyAgICB9OworCit9CkluZGV4OiBodG1sL0hUTUxP
cHRpb25FbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBodG1sL0hUTUxPcHRpb25FbGVtZW50Lmlk
bAkocmV2aXNpb24gMCkKKysrIGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1
dGVyLCBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVt
cGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisg
Ki8KKworbW9kdWxlIGh0bWwgeworCisgICAgaW50ZXJmYWNlIFtMZWdhY3lQYXJlbnQ9S0pTOjpK
U0hUTUxFbGVtZW50XSBIVE1MT3B0aW9uRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlICBIVE1MRm9ybUVsZW1lbnQgICAgICBmb3JtOworICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIGRlZmF1bHRTZWxlY3RlZDsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICB0ZXh0Owor
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGxvbmcgICAgICAgICAgICAgICAgIGluZGV4Cisg
ICAgICAgICAgICAgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIChkb206OkRPTUV4Y2VwdGlvbik7
IC8vIEZJWE1FOiBXZSBkaXNhbGxvdyBzZXR0aW5nIGluIHZpb2xhdGlvbiBvZiBET00gMSBIVE1M
LgorICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIGRpc2Fi
bGVkOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAgIGxh
YmVsOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIHNl
bGVjdGVkOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAg
IHZhbHVlOworICAgIH07CisKK30KSW5kZXg6IGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQorKysg
aHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAz
MzAsCisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqLworCittb2R1bGUgaHRtbCB7
CisKKyAgICBpbnRlcmZhY2UgW0xlZ2FjeVBhcmVudD1LSlM6OkpTSFRNTEVsZW1lbnRdIEhUTUxC
dXR0b25FbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
IEhUTUxGb3JtRWxlbWVudCAgICAgIGZvcm07CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAg
RE9NU3RyaW5nICAgICAgICAgICAgYWNjZXNzS2V5OworICAgICAgICAgICAgICAgICBhdHRyaWJ1
dGUgIGJvb2xlYW4gICAgICAgICAgICAgIGRpc2FibGVkOworICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAgIG5hbWU7CisgICAgICAgICAgICAgICAgIGF0dHJp
YnV0ZSAgbG9uZyAgICAgICAgICAgICAgICAgdGFiSW5kZXg7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgdHlwZTsKKyAgICAgICAgICAgICAgICAgYXR0
cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICB2YWx1ZTsKKyAgICB9OworCit9CkluZGV4OiBo
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGh0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5pZGwJKHJldmlzaW9uIDApCisrKyBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQu
aWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICog
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hv
dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJ
TkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorICogQm9zdG9uLCBNQSAwMjEx
MS0xMzA3LCBVU0EuCisgKi8KKworbW9kdWxlIGh0bWwgeworCisgICAgaW50ZXJmYWNlIFtMZWdh
Y3lQYXJlbnQ9S0pTOjpKU0hUTUxFbGVtZW50XSBIVE1MVGV4dEFyZWFFbGVtZW50IDogSFRNTEVs
ZW1lbnQgeworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAg
IGRlZmF1bHRWYWx1ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBIVE1MRm9ybUVsZW1l
bnQgICAgICBmb3JtOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAg
ICAgICAgIGFjY2Vzc0tleTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBsb25nICAgICAg
ICAgICAgICAgICBjb2xzOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAg
ICAgICAgICAgIGRpc2FibGVkOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERPTVN0cmlu
ZyAgICAgICAgICAgIG5hbWU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAg
ICAgICAgICAgICAgcmVhZE9ubHk7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgbG9uZyAg
ICAgICAgICAgICAgICAgcm93czsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBsb25nICAg
ICAgICAgICAgICAgICB0YWJJbmRleDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBET01T
dHJpbmcgICAgICAgICAgICB0eXBlOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERPTVN0
cmluZyAgICAgICAgICAgIHZhbHVlOworICAgICAgICAKKyAgICAgICAgdm9pZCAgICAgYmx1cigp
OworICAgICAgICB2b2lkICAgICBmb2N1cygpOworICAgICAgICB2b2lkICAgICBzZWxlY3QoKTsK
KyAgICB9OworCit9CkluZGV4OiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAx
NDQzNCkKKysrIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtNjQ1LDYgKzY0NSwyMyBAQAogCQlBODBFN0IxMzBBMTlENjA2MDA3RkI4QzUgLyogSlNI
VE1MVGl0bGVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4MEU3QjA5MEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxUaXRsZUVsZW1lbnQu
Y3BwICovOyB9OwogCQlBODBFN0IxNDBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MSGVhZEVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgw
RTdCMEEwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEhlYWRFbGVtZW50LmNwcCAqLzsgfTsKIAkJ
QTgwRTdCMTUwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEhlYWRFbGVtZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFN0IwQjBBMTlENjA2MDA3
RkI4QzUgLyogSlNIVE1MSGVhZEVsZW1lbnQuaCAqLzsgfTsKKwkJQTgwRTdFMUEwQTFBN0NDQjAw
N0ZCOEM1IC8qIEhUTUxUZXh0QXJlYUVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFN0UxNjBBMUE3Q0NCMDA3RkI4QzUgLyogSFRN
TFRleHRBcmVhRWxlbWVudC5pZGwgKi87IH07CisJCUE4MEU3RTFCMEExQTdDQ0IwMDdGQjhDNSAv
KiBIVE1MSW5wdXRFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTgwRTdFMTcwQTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxJbnB1dEVsZW1l
bnQuaWRsICovOyB9OworCQlBODBFN0UxQzBBMUE3Q0NCMDA3RkI4QzUgLyogSFRNTE9wdGlvbkVs
ZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBODBFN0UxODBBMUE3Q0NCMDA3RkI4QzUgLyogSFRNTE9wdGlvbkVsZW1lbnQuaWRsICovOyB9
OworCQlBODBFN0UxRDBBMUE3Q0NCMDA3RkI4QzUgLyogSFRNTE9wdEdyb3VwRWxlbWVudC5pZGwg
aW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3RTE5
MEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MT3B0R3JvdXBFbGVtZW50LmlkbCAqLzsgfTsKKwkJQTgw
RTdFNTYwQTFBN0ZCMzAwN0ZCOEM1IC8qIEhUTUxCdXR0b25FbGVtZW50LmlkbCBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTdFNTUwQTFBN0ZCMzAw
N0ZCOEM1IC8qIEhUTUxCdXR0b25FbGVtZW50LmlkbCAqLzsgfTsKKwkJQTgwRTdFNjUwQTFBODJF
QzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVudEJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3RTYzMEExQTgyRUMwMDdGQjhDNSAvKiBK
U0hUTUxJbnB1dEVsZW1lbnRCYXNlLmggKi87IH07CisJCUE4MEU3RTY2MEExQTgyRUMwMDdGQjhD
NSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3RTY0MEExQTgyRUMwMDdGQjhDNSAvKiBKU0hUTUxJ
bnB1dEVsZW1lbnRCYXNlLmNwcCAqLzsgfTsKKwkJQTgwRTdFOTcwQTFBODNFMzAwN0ZCOEM1IC8q
IEpTSFRNTElucHV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTgwRTdFOEQwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVu
dC5oICovOyB9OworCQlBODBFN0U5ODBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
MEU3RThFMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnQuY3BwICovOyB9Owor
CQlBODBFN0U5OTBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MT3B0aW9uRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTdFOEYwQTFBODNF
MzAwN0ZCOEM1IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnQuaCAqLzsgfTsKKwkJQTgwRTdFOUEwQTFB
ODNFMzAwN0ZCOEM1IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTdFOTAwQTFBODNFMzAwN0ZCOEM1IC8q
IEpTSFRNTE9wdGlvbkVsZW1lbnQuY3BwICovOyB9OworCQlBODBFN0U5QjBBMUE4M0UzMDA3RkI4
QzUgLyogSlNIVE1MT3B0R3JvdXBFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFN0U5MTBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MT3B0
R3JvdXBFbGVtZW50LmggKi87IH07CisJCUE4MEU3RTlDMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hU
TUxPcHRHcm91cEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTgwRTdFOTIwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTE9wdEdyb3VwRWxl
bWVudC5jcHAgKi87IH07CisJCUE4MEU3RTlEMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxUZXh0
QXJlYUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4MEU3RTkzMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxUZXh0QXJlYUVsZW1lbnQuaCAq
LzsgfTsKKwkJQTgwRTdFOUUwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTFRleHRBcmVhRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBF
N0U5NDBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCAqLzsgfTsK
KwkJQTgwRTdFOUYwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTEJ1dHRvbkVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3RTk1MEExQTgz
RTMwMDdGQjhDNSAvKiBKU0hUTUxCdXR0b25FbGVtZW50LmggKi87IH07CisJCUE4MEU3RUEwMEEx
QTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxCdXR0b25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3RTk2MEExQTgzRTMwMDdGQjhDNSAv
KiBKU0hUTUxCdXR0b25FbGVtZW50LmNwcCAqLzsgfTsKIAkJQTgxMzY5Q0EwOTczNzRGNjAwRDc0
NDYzIC8qIEhUTUxJc0luZGV4RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTgxMzY5QUUwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxJc0luZGV4
RWxlbWVudC5oICovOyB9OwogCQlBODEzNjlDQjA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTElzSW5k
ZXhFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4MTM2OUFGMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MSXNJbmRleEVsZW1lbnQuY3BwICov
OyB9OwogCQlBODEzNjlDQzA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTElucHV0RWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgxMzY5QjAwOTcz
NzRGNTAwRDc0NDYzIC8qIEhUTUxJbnB1dEVsZW1lbnQuaCAqLzsgfTsKQEAgLTcwMCw2ICs3MTcs
OCBAQAogCQlBODIzOUUwMDA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODIzOURGRTA5QjNDRjhBMDBC
NjA2NDEgLyogTG9nZ2luZy5jcHAgKi87IH07CiAJCUE4MjM5RTAxMDlCM0NGOEEwMEI2MDY0MSAv
KiBMb2dnaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBODIzOURGRjA5QjNDRjhBMDBCNjA2NDEgLyogTG9nZ2luZy5oICovOyB9OwogCQlBODIzQTc1
QzA5QjZFNTM5MDBCNjA2NDEgLyogR3JhcGhpY3NDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MjNBNzVCMDlCNkU1MzkwMEI2MDY0MSAv
KiBHcmFwaGljc0NvbnRleHQuY3BwICovOyB9OworCQlBODI2RThBRTBBMUE4RjIzMDBDRDFCQjYg
LyogSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODI2RThBQzBBMUE4RjIzMDBDRDFCQjYgLyogSlNI
VE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmggKi87IH07CisJCUE4MjZFQzQ4MEExQjBDQkUw
MENEMUJCNiAvKiBKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgyNkU4QUQwQTFBOEYyMzAwQ0Qx
QkI2IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAgKi87IH07CiAJCUE4NjYy
OUNGMDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NjYyOUM5MDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJ
RXZlbnQuaCAqLzsgfTsKIAkJQTg2NjI5RDAwOURBMkI0ODAwOTYzM0E1IC8qIEpTVUlFdmVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODY2MjlD
QTA5REEyQjQ3MDA5NjMzQTUgLyogSlNVSUV2ZW50LmNwcCAqLzsgfTsKIAkJQTg2NjI5RDEwOURB
MkI0ODAwOTYzM0E1IC8qIEpTTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTg2NjI5Q0IwOURBMkI0NzAwOTYzM0E1IC8qIEpTTW91c2VF
dmVudC5oICovOyB9OwpAQCAtMjA2Nyw2ICsyMDg2LDIzIEBACiAJCUE4MEU3QjA5MEExOUQ2MDYw
MDdGQjhDNSAvKiBKU0hUTUxUaXRsZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTSFRNTFRpdGxlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4MEU3QjBBMEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxIZWFkRWxlbWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MSGVhZEVs
ZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFN0IwQjBBMTlENjA2
MDA3RkI4QzUgLyogSlNIVE1MSGVhZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTSFRNTEhlYWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUE4MEU3RTE2MEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MVGV4dEFyZWFFbGVtZW50LmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTFRleHRBcmVhRWxlbWVudC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MEU3RTE3MEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MSW5w
dXRFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTElucHV0RWxlbWVudC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MEU3RTE4MEExQTdDQ0IwMDdGQjhD
NSAvKiBIVE1MT3B0aW9uRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxP
cHRpb25FbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgwRTdFMTkw
QTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxPcHRHcm91cEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBIVE1MT3B0R3JvdXBFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTgwRTdFNTUwQTFBN0ZCMzAwN0ZCOEM1IC8qIEhUTUxCdXR0b25FbGVtZW50Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTEJ1dHRvbkVsZW1lbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBODBFN0U2MzBBMUE4MkVDMDA3RkI4QzUgLyogSlNIVE1M
SW5wdXRFbGVtZW50QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNI
VE1MSW5wdXRFbGVtZW50QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODBF
N0U2NDBBMUE4MkVDMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MEU3RThEMEExQTgzRTMwMDdGQjhD
NSAvKiBKU0hUTUxJbnB1dEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTSFRNTElucHV0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
ODBFN0U4RTBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxJbnB1dEVsZW1lbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODBFN0U4RjBBMUE4M0UzMDA3RkI4QzUgLyog
SlNIVE1MT3B0aW9uRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNIVE1MT3B0aW9uRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODBF
N0U5MDBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MT3B0aW9uRWxlbWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MT3B0aW9uRWxlbWVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MEU3RTkxMEExQTgzRTMwMDdGQjhDNSAvKiBK
U0hUTUxPcHRHcm91cEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTSFRNTE9wdEdyb3VwRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlB
ODBFN0U5MjBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MT3B0R3JvdXBFbGVtZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxPcHRHcm91cEVsZW1lbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODBFN0U5MzBBMUE4M0UzMDA3RkI4
QzUgLyogSlNIVE1MVGV4dEFyZWFFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU0hUTUxUZXh0QXJlYUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQTgwRTdFOTQwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTFRleHRBcmVhRWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MVGV4dEFyZWFF
bGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgwRTdFOTUwQTFBODNF
MzAwN0ZCOEM1IC8qIEpTSFRNTEJ1dHRvbkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTSFRNTEJ1dHRvbkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQTgwRTdFOTYwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTEJ1dHRvbkVsZW1lbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTEJ1dHRvbkVs
ZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODEwRTM5MzA4QTQxNjBG
MDAzMzNEOTggLyogS0NhbnZhc1RyZWVEZWJ1Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtDYW52YXNUcmVlRGVidWcuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4MTBFMzk0MDhB
NDE2MEYwMDMzM0Q5OCAvKiBLQ2FudmFzVHJlZURlYnVnLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS0NhbnZhc1RyZWVEZWJ1Zy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9Owog
CQlBODEyMkM3RTA4RDU2NEIwMDA4NDRGQTMgLyogR2V0U1ZHRG9jdW1lbnQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2V0U1ZHRG9jdW1lbnQuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTIy
NDMsNiArMjI3OSw4IEBACiAJCUE4MjM5REZFMDlCM0NGOEEwMEI2MDY0MSAvKiBMb2dnaW5nLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2dnaW5nLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgyMzlERkYwOUIzQ0Y4QTAwQjYwNjQxIC8qIExv
Z2dpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvZ2dpbmcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgyM0E3NUIwOUI2RTUzOTAwQjYwNjQxIC8qIEdy
YXBoaWNzQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
R3JhcGhpY3NDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgyNkU4
QUMwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0
cnVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MjZFOEFEMEExQThGMjMw
MENEMUJCNiAvKiBKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rv
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MkZDMzNCMDhDQkIwN0MwMEVG
RUUyMyAvKiBTVkdDdXJzb3JFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQ3Vyc29yRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQTgyRkMzM0MwOENCQjA3
QzAwRUZFRTIzIC8qIFNWR0N1cnNvckVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdDdXJzb3JFbGVtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4
NUQ3QTJGMDg3OUVCQTkwMDZBOTE3MiAvKiBRdWFydHpDb3JlLmZyYW1ld29yayAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3Jr
OyBuYW1lID0gUXVhcnR6Q29yZS5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJh
bWV3b3Jrcy9RdWFydHpDb3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+Ijsg
fTsKQEAgLTMyODAsNiArMzMxOCw4IEBACiAJCQkJMTRFODM3OEQwOUY4NUQ0RjAwQjg1QUU0IC8q
IEpTRXZlbnQuaCAqLywKIAkJCQlBODBFN0IwODBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MQmFz
ZUVsZW1lbnQuY3BwICovLAogCQkJCUE4MEU3QjA3MEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxC
YXNlRWxlbWVudC5oICovLAorCQkJCUE4MEU3RTk2MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxC
dXR0b25FbGVtZW50LmNwcCAqLywKKwkJCQlBODBFN0U5NTBBMUE4M0UzMDA3RkI4QzUgLyogSlNI
VE1MQnV0dG9uRWxlbWVudC5oICovLAogCQkJCTkzOEU2NjVGMDlGMDlCODEwMDhBNDhFQyAvKiBK
U0hUTUxDYW52YXNFbGVtZW50LmNwcCAqLywKIAkJCQk5MzhFNjY2MTA5RjA5Qjg3MDA4QTQ4RUMg
LyogSlNIVE1MQ2FudmFzRWxlbWVudC5oICovLAogCQkJCTFBNDk0RTMyMEExMjM1OEEwMEZEQUZD
MSAvKiBKU0hUTUxEb2N1bWVudC5jcHAgKi8sCkBAIC0zMjg4LDEyICszMzI4LDIwIEBACiAJCQkJ
MUE0OTRCRjkwQTEyMkY0NDAwRkRBRkMxIC8qIEpTSFRNTEVsZW1lbnQuaCAqLywKIAkJCQlBODBF
N0IwQTBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MSGVhZEVsZW1lbnQuY3BwICovLAogCQkJCUE4
MEU3QjBCMEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxIZWFkRWxlbWVudC5oICovLAorCQkJCUE4
MEU3RThFMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnQuY3BwICovLAorCQkJ
CUE4MEU3RThEMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnQuaCAqLywKIAkJ
CQlBODBFN0IwNjBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MTGlua0VsZW1lbnQuY3BwICovLAog
CQkJCUE4MEU3QjAzMEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxMaW5rRWxlbWVudC5oICovLAog
CQkJCUE4MEU3QTE1MEExOUMzRDYwMDdGQjhDNSAvKiBKU0hUTUxNZXRhRWxlbWVudC5jcHAgKi8s
CiAJCQkJQTgwRTdBMTYwQTE5QzNENjAwN0ZCOEM1IC8qIEpTSFRNTE1ldGFFbGVtZW50LmggKi8s
CisJCQkJQTgwRTdFOTIwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTE9wdEdyb3VwRWxlbWVudC5j
cHAgKi8sCisJCQkJQTgwRTdFOTEwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTE9wdEdyb3VwRWxl
bWVudC5oICovLAorCQkJCUE4MEU3RTkwMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxPcHRpb25F
bGVtZW50LmNwcCAqLywKKwkJCQlBODBFN0U4RjBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MT3B0
aW9uRWxlbWVudC5oICovLAogCQkJCUE4MEU3QjA1MEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxT
dHlsZUVsZW1lbnQuY3BwICovLAogCQkJCUE4MEU3QjA0MEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hU
TUxTdHlsZUVsZW1lbnQuaCAqLywKKwkJCQlBODBFN0U5NDBBMUE4M0UzMDA3RkI4QzUgLyogSlNI
VE1MVGV4dEFyZWFFbGVtZW50LmNwcCAqLywKKwkJCQlBODBFN0U5MzBBMUE4M0UzMDA3RkI4QzUg
LyogSlNIVE1MVGV4dEFyZWFFbGVtZW50LmggKi8sCiAJCQkJQTgwRTdCMDkwQTE5RDYwNjAwN0ZC
OEM1IC8qIEpTSFRNTFRpdGxlRWxlbWVudC5jcHAgKi8sCiAJCQkJQTgwRTdCMDIwQTE5RDYwNjAw
N0ZCOEM1IC8qIEpTSFRNTFRpdGxlRWxlbWVudC5oICovLAogCQkJCUE4NjYyOUNFMDlEQTJCNDcw
MDk2MzNBNSAvKiBKU0tleWJvYXJkRXZlbnQuY3BwICovLApAQCAtMzYzOCw2ICszNjg2LDcgQEAK
IAkJCQlBOENGRjdBMDBBMTU2OTc4MDAwQTQyMzQgLyogSFRNTEJSRWxlbWVudC5oICovLAogCQkJ
CUE4MTM2OUI3MDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MQnV0dG9uRWxlbWVudC5jcHAgKi8sCiAJ
CQkJQTgxMzY5QjYwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxCdXR0b25FbGVtZW50LmggKi8sCisJ
CQkJQTgwRTdFNTUwQTFBN0ZCMzAwN0ZCOEM1IC8qIEhUTUxCdXR0b25FbGVtZW50LmlkbCAqLywK
IAkJCQk1MUY2QTNENTA2NjNCRjA0MDA0RDI5MTkgLyogSFRNTENhbnZhc0VsZW1lbnQuY3BwICov
LAogCQkJCTUxRjZBM0Q2MDY2M0JGMDQwMDREMjkxOSAvKiBIVE1MQ2FudmFzRWxlbWVudC5oICov
LAogCQkJCTkzOEU2NjI1MDlGMDk5NTYwMDhBNDhFQyAvKiBIVE1MQ2FudmFzRWxlbWVudC5pZGwg
Ki8sCkBAIC0zNjkwLDYgKzM3MzksNyBAQAogCQkJCUE4RUE3RDIzMEExOTM4NTUwMEE4RUY1RiAv
KiBIVE1MSW1hZ2VMb2FkZXIuaCAqLywKIAkJCQlBODEzNjlCMTA5NzM3NEY1MDBENzQ0NjMgLyog
SFRNTElucHV0RWxlbWVudC5jcHAgKi8sCiAJCQkJQTgxMzY5QjAwOTczNzRGNTAwRDc0NDYzIC8q
IEhUTUxJbnB1dEVsZW1lbnQuaCAqLywKKwkJCQlBODBFN0UxNzBBMUE3Q0NCMDA3RkI4QzUgLyog
SFRNTElucHV0RWxlbWVudC5pZGwgKi8sCiAJCQkJQTgxMzY5QUYwOTczNzRGNTAwRDc0NDYzIC8q
IEhUTUxJc0luZGV4RWxlbWVudC5jcHAgKi8sCiAJCQkJQTgxMzY5QUUwOTczNzRGNTAwRDc0NDYz
IC8qIEhUTUxJc0luZGV4RWxlbWVudC5oICovLAogCQkJCUE4MTM2OUM5MDk3Mzc0RjYwMEQ3NDQ2
MyAvKiBIVE1MS2V5Z2VuRWxlbWVudC5jcHAgKi8sCkBAIC0zNzI0LDggKzM3NzQsMTAgQEAKIAkJ
CQlBOEVBNzlFNTBBMTkxNkRGMDBBOEVGNUYgLyogSFRNTE9MaXN0RWxlbWVudC5oICovLAogCQkJ
CUE4MTM2OUMzMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MT3B0R3JvdXBFbGVtZW50LmNwcCAqLywK
IAkJCQlBODEzNjlDMjA5NzM3NEY1MDBENzQ0NjMgLyogSFRNTE9wdEdyb3VwRWxlbWVudC5oICov
LAorCQkJCUE4MEU3RTE5MEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MT3B0R3JvdXBFbGVtZW50Lmlk
bCAqLywKIAkJCQlBODEzNjlDMTA5NzM3NEY1MDBENzQ0NjMgLyogSFRNTE9wdGlvbkVsZW1lbnQu
Y3BwICovLAogCQkJCUE4MTM2OUMwMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MT3B0aW9uRWxlbWVu
dC5oICovLAorCQkJCUE4MEU3RTE4MEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MT3B0aW9uRWxlbWVu
dC5pZGwgKi8sCiAJCQkJOTMyN0E5NDEwOTk2OEQxQTAwNjhBNTQ2IC8qIEhUTUxPcHRpb25zQ29s
bGVjdGlvbi5jcHAgKi8sCiAJCQkJQTgxMzY5QkUwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxPcHRp
b25zQ29sbGVjdGlvbi5oICovLAogCQkJCUE4RUE3Q0E0MEExOTJCOUMwMEE4RUY1RiAvKiBIVE1M
UGFyYWdyYXBoRWxlbWVudC5jcHAgKi8sCkBAIC0zNzYzLDYgKzM4MTUsNyBAQAogCQkJCUE4NzFE
QjE3MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oICovLAogCQkJ
CUE4MTM2OUJCMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCAqLywK
IAkJCQlBODEzNjlCQTA5NzM3NEY1MDBENzQ0NjMgLyogSFRNTFRleHRBcmVhRWxlbWVudC5oICov
LAorCQkJCUE4MEU3RTE2MEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MVGV4dEFyZWFFbGVtZW50Lmlk
bCAqLywKIAkJCQlBQjIzQTMxMDA5QkJBNzc2MDA2N0NDNTMgLyogSFRNTFRleHRGaWVsZElubmVy
RWxlbWVudC5jcHAgKi8sCiAJCQkJQUIyM0EzMTEwOUJCQTc3NjAwNjdDQzUzIC8qIEhUTUxUZXh0
RmllbGRJbm5lckVsZW1lbnQuaCAqLywKIAkJCQlBODcxREMxRDBBMTUyMDU3MDBCMTJBNjggLyog
SFRNTFRpdGxlRWxlbWVudC5jcHAgKi8sCkBAIC00NDEzLDYgKzQ0NjYsMTAgQEAKIAkJCQk5M0I3
MEQ0MDA5RUIwQzdDMDA5RDg0NjggLyogSlNET01QYXJzZXIuaCAqLywKIAkJCQk5MzhFNjVGNjA5
RjA5ODVEMDA4QTQ4RUMgLyogSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCAqLywKIAkJ
CQk5MzhFNjVGMDA5RjA5ODQwMDA4QTQ4RUMgLyogSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5
LmggKi8sCisJCQkJQTgwRTdFNjQwQTFBODJFQzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVu
dEJhc2UuY3BwICovLAorCQkJCUE4MEU3RTYzMEExQTgyRUMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1
dEVsZW1lbnRCYXNlLmggKi8sCisJCQkJQTgyNkU4QUQwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTSFRN
TE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAgKi8sCisJCQkJQTgyNkU4QUMwQTFBOEYyMzAw
Q0QxQkI2IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5oICovLAogCQkJCTkzQjcw
RDQxMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1hNTEh0dHBSZXF1ZXN0LmNwcCAqLywKIAkJCQk5M0I3
MEQ0MjA5RUIwQzdDMDA5RDg0NjggLyogSlNYTUxIdHRwUmVxdWVzdC5oICovLAogCQkJCTkzQjcw
RDQzMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1hNTFNlcmlhbGl6ZXIuY3BwICovLApAQCAtNTc0MSw2
ICs1Nzk4LDEzIEBACiAJCQkJQTgwRTdCMEUwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTFN0eWxl
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTdCMTEwQTE5RDYwNjAwN0ZCOEM1IC8q
IEpTSFRNTEJhc2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFN0IxNTBBMTlENjA2
MDA3RkI4QzUgLyogSlNIVE1MSGVhZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4MEU3
RTY1MEExQTgyRUMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlBODBFN0U5NzBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQlBODBFN0U5OTBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1M
T3B0aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTgwRTdFOUIwQTFBODNFMzAwN0ZC
OEM1IC8qIEpTSFRNTE9wdEdyb3VwRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTgwRTdF
OUQwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTFRleHRBcmVhRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQTgwRTdFOUYwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTEJ1dHRvbkVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCUE4MjZFOEFFMEExQThGMjMwMENEMUJCNiAvKiBKU0hUTUxP
cHRpb25FbGVtZW50Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNTkwMSw2ICs1OTY1
LDExIEBACiAJCQkJQTgwRTdBQjUwQTE5RDFGMTAwN0ZCOEM1IC8qIEhUTUxMaW5rRWxlbWVudC5p
ZGwgaW4gUmVzb3VyY2VzICovLAogCQkJCUE4MEU3QUI2MEExOUQxRjEwMDdGQjhDNSAvKiBIVE1M
SGVhZEVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKIAkJCQlBODBFN0FCNzBBMTlEMUYxMDA3
RkI4QzUgLyogSFRNTFN0eWxlRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MEU3
RTFBMEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MVGV4dEFyZWFFbGVtZW50LmlkbCBpbiBSZXNvdXJj
ZXMgKi8sCisJCQkJQTgwRTdFMUIwQTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxJbnB1dEVsZW1lbnQu
aWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODBFN0UxQzBBMUE3Q0NCMDA3RkI4QzUgLyogSFRN
TE9wdGlvbkVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODBFN0UxRDBBMUE3Q0NC
MDA3RkI4QzUgLyogSFRNTE9wdEdyb3VwRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJ
CUE4MEU3RTU2MEExQTdGQjMwMDdGQjhDNSAvKiBIVE1MQnV0dG9uRWxlbWVudC5pZGwgaW4gUmVz
b3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpAQCAtNjU4NCw2ICs2NjUzLDEzIEBACiAJCQkJQTgwRTdCMTIwQTE5RDYwNjAw
N0ZCOEM1IC8qIEpTSFRNTEJhc2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU3
QjEzMEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxUaXRsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTgwRTdCMTQwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEhlYWRFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUE4MEU3RTY2MEExQTgyRUMwMDdGQjhDNSAvKiBKU0hUTUxJ
bnB1dEVsZW1lbnRCYXNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4MEU3RTk4MEExQTgzRTMw
MDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTgw
RTdFOUEwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQTgwRTdFOUMwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTE9wdEdyb3VwRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBODBFN0U5RTBBMUE4M0UzMDA3RkI4QzUgLyog
SlNIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4MEU3RUEwMEEx
QTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxCdXR0b25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUE4MjZFQzQ4MEExQjBDQkUwMENEMUJCNiAvKiBKU0hUTUxPcHRpb25FbGVtZW50Q29uc3Ry
dWN0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBDaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
Q2hhbmdlTG9nCShyZXZpc2lvbiAxNDQzNCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDUwIEBACisyMDA2LTA1LTE3ICBFcmljIFNlaWRlbCAgPGVzZWlkZWxAYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0
b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUJ1dHRvbldyYXBwZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlSW5wdXRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZU9wdEdyb3VwV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVPcHRpb25XcmFwcGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVRleHRBcmVhV3JhcHBlcik6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVKU1dyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTElu
cHV0RWxlbWVudEJhc2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTElucHV0
RWxlbWVudEJhc2VQcm90b0Z1bmM6OmNhbGxBc0Z1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
Oik6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1lbnRCYXNlOjpKU0hUTUxJbnB1
dEVsZW1lbnRCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTElucHV0RWxlbWVudEJhc2U6
OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MSW5wdXRF
bGVtZW50QmFzZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTElucHV0RWxlbWVu
dEJhc2U6OmNsYXNzSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1lbnRC
YXNlOjopOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MSW5wdXRFbGVtZW50QmFzZTo6aW1wbCk6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0
b3I6OkpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpK
U0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3I6OmltcGxlbWVudHNDb25zdHJ1Y3QpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yOjpjb25zdHJ1Y3Qp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5o
OiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ranNfZG9tbm9kZS5oOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL2tqc19odG1sLmNwcDoKKyAgICAgICAgKEtKUzo6KToKKyAgICAgICAgKEtK
Uzo6SlNIVE1MRWxlbWVudDo6Y2xhc3NJbmZvKToKKyAgICAgICAgKEtKUzo6SlNIVE1MRWxlbWVu
dDo6YWNjZXNzb3JzKToKKyAgICAgICAgKEtKUzo6SlNIVE1MRWxlbWVudDo6Z2V0T3duUHJvcGVy
dHlTbG90KToKKyAgICAgICAgKEtKUzo6SFRNTEVsZW1lbnRGdW5jdGlvbjo6Y2FsbEFzRnVuY3Rp
b24pOgorICAgICAgICAoS0pTOjpKU0hUTUxFbGVtZW50OjpwdXQpOgorICAgICAgICAoS0pTOjpK
U0hUTUxFbGVtZW50OjpodG1sU2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ranNfaHRt
bC5oOgorICAgICAgICAoS0pTOjpKU0hUTUxFbGVtZW50OjopOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL2tqc193aW5kb3cuY3BwOgorICAgICAgICAoS0pTOjpXaW5kb3c6OmdldFZhbHVlUHJvcGVy
dHkpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAg
ICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91
cEVsZW1lbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50Lmlk
bDogQWRkZWQuCisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbDogQWRkZWQu
CisKIDIwMDYtMDUtMTcgIE1pdHogUGV0dGVsICA8b3BlbmRhcndpbi5vcmdAbWl0enBldHRlbC5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqLCB0d2Vha2VkIGJ5IERhcmluLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8376</attachid>
            <date>2006-05-17 14:55:51 -0700</date>
            <delta_ts>2006-05-17 15:02:06 -0700</delta_ts>
            <desc>final patch with test cases</desc>
            <filename>auto.patch</filename>
            <type>text/plain</type>
            <size>95533</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE0NDUwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTEgQEAKKzIwMDYtMDUtMTcgIEVyaWMgU2VpZGVsICA8ZXNl
aWRlbEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2RvbS9IVE1MSHRtbEVsZW1lbnQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxIdG1sRWxlbWVudC9zZXQtdmVyc2lvbi5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9IVE1MSW5wdXRFbGVtZW50OiBBZGRlZC4KKwogMjAwNi0wNS0xNyAgQWxleGV5
IFByb3NrdXJ5YWtvdiAgPGFwQG55cG9wLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
bi4KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQko
cmV2aXNpb24gMTQ0NTApCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNyArMTE4LDkgQEAgc3ViIEdldFBhcmVudENs
YXNzTmFtZQogc3ViIEdldExlZ2FjeUhlYWRlckluY2x1ZGVzCiB7CiAgIG15ICRsZWdhY3lQYXJl
bnQgPSBzaGlmdDsKLSAgaWYgKCRsZWdhY3lQYXJlbnQgZXEgIktKUzo6V2luZG93IikgeworICBp
ZiAoJGxlZ2FjeVBhcmVudCBlcSAiSlNIVE1MSW5wdXRFbGVtZW50QmFzZSIpIHsKKyAgICAgIHJl
dHVybiAiI2luY2x1ZGUgXCJKU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmhcIlxuXG4iOworICB9IGVs
c2lmICgkbGVnYWN5UGFyZW50IGVxICJLSlM6OldpbmRvdyIpIHsKICAgICAgIHJldHVybiAiI2lu
Y2x1ZGUgXCJranNfd2luZG93LmhcIlxuXG4iOwogICB9IGVsc2lmICgkbGVnYWN5UGFyZW50IGVx
ICJLSlM6OkRPTU5vZGUiKSB7CiAgICAgICByZXR1cm4gIiNpbmNsdWRlIFwia2pzX2RvbW5vZGUu
aFwiXG5cbiI7CkBAIC02MzYsNyArNjM4LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PCRj
bGFzc05hbWUsICRwYXJlbnRDbGFzc05hbWU+KGV4ZWMsICYke2NsYXNzTmFtZX1UYWJsZSwgdGhp
cywgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOwogICAgIHB1c2goQGltcGxDb250ZW50LCAifVxu
XG4iKTsKICAgCi0gICAgcHVzaChAaW1wbENvbnRlbnQsICJKU1ZhbHVlKiAke2NsYXNzTmFtZX06
OmdldFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4pIGNvbnN0XG57XG4i
KTsKKyAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTVmFsdWUqICR7Y2xhc3NOYW1lfTo6Z2V0VmFs
dWVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29uc3RcbntcbiIpOwogICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICRpbXBsQ2xhc3NOYW1lKiBpbXBsID0gc3RhdGljX2Nh
c3Q8JGltcGxDbGFzc05hbWUqPigke2NsYXNzTmFtZX06OmltcGwoKSk7XG5cbiIpOwogICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIHN3aXRjaCAodG9rZW4pIHtcbiIpOwogCkBAIC0xMDU2LDYg
KzEwNTgsMTAgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICB9IGVsc2lmICgkdHlwZSBlcSAiRE9N
T2JqZWN0IikgewogICAgICRpbXBsSW5jbHVkZXN7IkpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmgifSA9IDE7CiAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsICR2YWx1ZSkiOworICB9IGVsc2lmICgk
dHlwZSBlcSAiSFRNTEZvcm1FbGVtZW50IikgeworICAgICRpbXBsSW5jbHVkZXN7Imtqc19odG1s
LmgifSA9IDE7CisgICAgJGltcGxJbmNsdWRlc3siSFRNTEZvcm1FbGVtZW50LmgifSA9IDE7Cisg
ICAgcmV0dXJuICJ0b0pTKGV4ZWMsICR2YWx1ZSkiOwogICB9IGVsc2UgewogICAgICRpbXBsSW5j
bHVkZXN7IkpTJHR5cGUuaCJ9ID0gMTsKICAgICByZXR1cm4gInRvSlMoZXhlYywgJHZhbHVlKSI7
CkBAIC0xMjgzLDcgKzEyODksNyBAQCBFT0YKICAgICBpZiAoJGNhbkNvbnN0cnVjdCkgewogJGlt
cGxDb250ZW50IC49IDw8ICJFT0YiOwogICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ29uc3Ry
dWN0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgSlNPYmplY3QqIGNvbnN0
cnVjdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IExpc3QgJmFyZ3MpIHsgcmV0dXJuIHN0YXRpY19j
YXN0PEpTT2JqZWN0ICo+KHRvSlMoZXhlYywgbmV3ICRpbnRlcmZhY2VOYW1lKSk7IH0KKyAgICB2
aXJ0dWFsIEpTT2JqZWN0KiBjb25zdHJ1Y3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBMaXN0JiBh
cmdzKSB7IHJldHVybiBzdGF0aWNfY2FzdDxKU09iamVjdCo+KHRvSlMoZXhlYywgbmV3ICRpbnRl
cmZhY2VOYW1lKSk7IH0KIEVPRgogICAgIH0KIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAwKQor
KysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuaAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBB
cHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAqIEJvc3RvbiwgTUEgMDIxMTEtMTMw
NywgVVNBLgorICovCisKKyNpZm5kZWYgSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yX0gK
KyNkZWZpbmUgSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yX0gKKworI2luY2x1ZGUgImtq
c19iaW5kaW5nLmgiCisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKKyAgICBjbGFzcyBKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IgOiBwdWJsaWMg
S0pTOjpET01PYmplY3QgeworICAgIHB1YmxpYzoKKyAgICAgICAgSlNIVE1MT3B0aW9uRWxlbWVu
dENvbnN0cnVjdG9yKEtKUzo6RXhlY1N0YXRlKiwgRG9jdW1lbnQqKTsKKyAgICAgICAgdmlydHVh
bCBib29sIGltcGxlbWVudHNDb25zdHJ1Y3QoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBLSlM6
OkpTT2JqZWN0ICpjb25zdHJ1Y3QoS0pTOjpFeGVjU3RhdGUqLCBjb25zdCBLSlM6Okxpc3QmIGFy
Z3MpOworICAgIHByaXZhdGU6CisgICAgICAgIFJlZlB0cjxEb2N1bWVudD4gbV9kb2M7CisgICAg
fTsKKworfQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2h0bWwuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19odG1sLmgJKHJldmlzaW9uIDE0
NDUwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfaHRtbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC03OSw4ICs3OSw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHN0YXRpYyBjb25zdCBDbGFzc0lu
Zm8gaW5mbzsKIAogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gaHRtbF9pbmZvLCBpc0luZGV4
X2luZm8sIGJvZHlfaW5mbywgZm9ybV9pbmZvLAotICAgICAgc2VsZWN0X2luZm8sIG9wdEdyb3Vw
X2luZm8sIG9wdGlvbl9pbmZvLCBpbnB1dF9pbmZvLCB0ZXh0QXJlYV9pbmZvLAotICAgICAgYnV0
dG9uX2luZm8sIGxhYmVsX2luZm8sIGZpZWxkU2V0X2luZm8sIGxlZ2VuZF9pbmZvLCB1bF9pbmZv
LCBvbF9pbmZvLAorICAgICAgc2VsZWN0X2luZm8sIGxhYmVsX2luZm8sIGZpZWxkU2V0X2luZm8s
IGxlZ2VuZF9pbmZvLCB1bF9pbmZvLCBvbF9pbmZvLAogICAgICAgZGxfaW5mbywgZGlyX2luZm8s
IG1lbnVfaW5mbywgbGlfaW5mbywgZGl2X2luZm8sIHBfaW5mbywgaGVhZGluZ19pbmZvLAogICAg
ICAgYmxvY2tRdW90ZV9pbmZvLCBxX2luZm8sIHByZV9pbmZvLCBicl9pbmZvLCBiYXNlRm9udF9p
bmZvLCBmb250X2luZm8sCiAgICAgICBocl9pbmZvLCBtb2RfaW5mbywgYV9pbmZvLCBpbWdfaW5m
bywgb2JqZWN0X2luZm8sIHBhcmFtX2luZm8sCkBAIC05NCw4ICs5Myw3IEBAIG5hbWVzcGFjZSBL
SlMgewogICAgIHN0cnVjdCBBY2Nlc3NvcnMgeyBHZXR0ZXJGdW5jdGlvbiBtX2dldHRlcjsgU2V0
dGVyRnVuY3Rpb24gbV9zZXR0ZXI7IH07CiAgICAgY29uc3QgQWNjZXNzb3JzKiBhY2Nlc3NvcnMo
KSBjb25zdDsKICAgICBzdGF0aWMgY29uc3QgQWNjZXNzb3JzIGh0bWxfYWNjZXNzb3JzLCBpc0lu
ZGV4X2FjY2Vzc29ycywgYm9keV9hY2Nlc3NvcnMsIGZvcm1fYWNjZXNzb3JzLAotICAgICAgc2Vs
ZWN0X2FjY2Vzc29ycywgb3B0R3JvdXBfYWNjZXNzb3JzLCBvcHRpb25fYWNjZXNzb3JzLCBpbnB1
dF9hY2Nlc3NvcnMsIHRleHRBcmVhX2FjY2Vzc29ycywKLSAgICAgIGJ1dHRvbl9hY2Nlc3NvcnMs
IGxhYmVsX2FjY2Vzc29ycywgZmllbGRTZXRfYWNjZXNzb3JzLCBsZWdlbmRfYWNjZXNzb3JzLCB1
bF9hY2Nlc3NvcnMsIG9sX2FjY2Vzc29ycywKKyAgICAgIHNlbGVjdF9hY2Nlc3NvcnMsIGxhYmVs
X2FjY2Vzc29ycywgZmllbGRTZXRfYWNjZXNzb3JzLCBsZWdlbmRfYWNjZXNzb3JzLCB1bF9hY2Nl
c3NvcnMsIG9sX2FjY2Vzc29ycywKICAgICAgIGRsX2FjY2Vzc29ycywgZGlyX2FjY2Vzc29ycywg
bWVudV9hY2Nlc3NvcnMsIGxpX2FjY2Vzc29ycywgZGl2X2FjY2Vzc29ycywgcF9hY2Nlc3NvcnMs
IGhlYWRpbmdfYWNjZXNzb3JzLAogICAgICAgYmxvY2tRdW90ZV9hY2Nlc3NvcnMsIHFfYWNjZXNz
b3JzLCBwcmVfYWNjZXNzb3JzLCBicl9hY2Nlc3NvcnMsIGJhc2VGb250X2FjY2Vzc29ycywgZm9u
dF9hY2Nlc3NvcnMsCiAgICAgICBocl9hY2Nlc3NvcnMsIG1vZF9hY2Nlc3NvcnMsIGFfYWNjZXNz
b3JzLCBpbWdfYWNjZXNzb3JzLCBvYmplY3RfYWNjZXNzb3JzLCBwYXJhbV9hY2Nlc3NvcnMsCkBA
IC0xMTMsMTYgKzExMSw2IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHZvaWQgIGZvcm1TZXR0ZXIo
RXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBjb25zdCBXZWJDb3Jl
OjpTdHJpbmcmIHN0cik7CiAgICAgSlNWYWx1ZSAqc2VsZWN0R2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgaW50IHRva2VuKSBjb25zdDsKICAgICB2b2lkICBzZWxlY3RTZXR0ZXIoRXhlY1N0YXRlICpl
eGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIHN0
cik7Ci0gICAgSlNWYWx1ZSAqb3B0R3JvdXBHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9r
ZW4pIGNvbnN0OwotICAgIHZvaWQgIG9wdEdyb3VwU2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgaW50
IHRva2VuLCBKU1ZhbHVlICp2YWx1ZSwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzdHIpOwotICAg
IEpTVmFsdWUgKm9wdGlvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29uc3Q7
Ci0gICAgdm9pZCAgb3B0aW9uU2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuLCBKU1Zh
bHVlICp2YWx1ZSwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzdHIpOwotICAgIEpTVmFsdWUgKmlu
cHV0R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdDsKLSAgICB2b2lkICBp
bnB1dFNldHRlcihFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbiwgSlNWYWx1ZSAqdmFsdWUsIGNv
bnN0IFdlYkNvcmU6OlN0cmluZyYgc3RyKTsKLSAgICBKU1ZhbHVlICp0ZXh0QXJlYUdldHRlcihF
eGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29uc3Q7Ci0gICAgdm9pZCAgdGV4dEFyZWFTZXR0
ZXIoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBjb25zdCBXZWJD
b3JlOjpTdHJpbmcmIHN0cik7Ci0gICAgSlNWYWx1ZSAqYnV0dG9uR2V0dGVyKEV4ZWNTdGF0ZSog
ZXhlYywgaW50IHRva2VuKSBjb25zdDsKLSAgICB2b2lkICBidXR0b25TZXR0ZXIoRXhlY1N0YXRl
ICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcm
IHN0cik7CiAgICAgSlNWYWx1ZSAqbGFiZWxHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9r
ZW4pIGNvbnN0OwogICAgIHZvaWQgIGxhYmVsU2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRv
a2VuLCBKU1ZhbHVlICp2YWx1ZSwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzdHIpOwogICAgIEpT
VmFsdWUgKmZpZWxkU2V0R2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdDsK
QEAgLTIwMiwzMSArMTkwLDE1IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIEpTVmFsdWUgKm1hcnF1
ZWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNvbnN0OwogICAgIHZvaWQgIG1h
cnF1ZWVTZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBj
b25zdCBXZWJDb3JlOjpTdHJpbmcmIHN0cik7CiAKLSAgICBlbnVtIHsgSHRtbFZlcnNpb24sIEhl
YWRQcm9maWxlLCBMaW5rSHJlZiwgTGlua1JlbCwgTGlua01lZGlhLAotICAgICAgICAgICBMaW5r
Q2hhcnNldCwgTGlua0Rpc2FibGVkLCBMaW5rSHJlZkxhbmcsIExpbmtSZXYsIExpbmtUYXJnZXQs
IExpbmtUeXBlLAotICAgICAgICAgICBMaW5rU2hlZXQsIFRpdGxlVGV4dCwgTWV0YU5hbWUsIE1l
dGFIdHRwRXF1aXYsIE1ldGFDb250ZW50LCBNZXRhU2NoZW1lLAotICAgICAgICAgICBCYXNlSHJl
ZiwgQmFzZVRhcmdldCwgSXNJbmRleEZvcm0sIElzSW5kZXhQcm9tcHQsIFN0eWxlRGlzYWJsZWQs
Ci0gICAgICAgICAgIFN0eWxlU2hlZXQsIFN0eWxlVHlwZSwgU3R5bGVNZWRpYSwgQm9keUJhY2tn
cm91bmQsIEJvZHlWTGluaywgQm9keVRleHQsCisgICAgZW51bSB7IEh0bWxWZXJzaW9uLCBJc0lu
ZGV4Rm9ybSwgSXNJbmRleFByb21wdCwKKyAgICAgICAgICAgQm9keUJhY2tncm91bmQsIEJvZHlW
TGluaywgQm9keVRleHQsCiAgICAgICAgICAgIEJvZHlMaW5rLCBCb2R5QUxpbmssIEJvZHlCZ0Nv
bG9yLCBCb2R5U2Nyb2xsTGVmdCwgQm9keVNjcm9sbFRvcCwgQm9keVNjcm9sbEhlaWdodCwgQm9k
eVNjcm9sbFdpZHRoLAogICAgICAgICAgICBGb3JtQWN0aW9uLCBGb3JtRW5jVHlwZSwgRm9ybUVs
ZW1lbnRzLCBGb3JtTGVuZ3RoLCBGb3JtQWNjZXB0Q2hhcnNldCwKICAgICAgICAgICAgRm9ybVJl
c2V0LCBGb3JtVGFyZ2V0LCBGb3JtTmFtZSwgRm9ybU1ldGhvZCwgRm9ybVN1Ym1pdCwgU2VsZWN0
QWRkLAogICAgICAgICAgICBTZWxlY3RUYWJJbmRleCwgU2VsZWN0VmFsdWUsIFNlbGVjdFNlbGVj
dGVkSW5kZXgsIFNlbGVjdExlbmd0aCwKICAgICAgICAgICAgU2VsZWN0UmVtb3ZlLCBTZWxlY3RG
b3JtLCBTZWxlY3RCbHVyLCBTZWxlY3RUeXBlLCBTZWxlY3RPcHRpb25zLAogICAgICAgICAgICBT
ZWxlY3REaXNhYmxlZCwgU2VsZWN0TXVsdGlwbGUsIFNlbGVjdE5hbWUsIFNlbGVjdFNpemUsIFNl
bGVjdEZvY3VzLAotICAgICAgICAgICBPcHRHcm91cERpc2FibGVkLCBPcHRHcm91cExhYmVsLCBP
cHRpb25JbmRleCwgT3B0aW9uU2VsZWN0ZWQsCi0gICAgICAgICAgIE9wdGlvbkZvcm0sIE9wdGlv
blRleHQsIE9wdGlvbkRlZmF1bHRTZWxlY3RlZCwgT3B0aW9uRGlzYWJsZWQsCi0gICAgICAgICAg
IE9wdGlvbkxhYmVsLCBPcHRpb25WYWx1ZSwgSW5wdXRCbHVyLCBJbnB1dFJlYWRPbmx5LCBJbnB1
dEFjY2VwdCwKLSAgICAgICAgICAgSW5wdXRTaXplLCBJbnB1dERlZmF1bHRWYWx1ZSwgSW5wdXRU
YWJJbmRleCwgSW5wdXRWYWx1ZSwgSW5wdXRUeXBlLAotICAgICAgICAgICBJbnB1dEZvY3VzLCBJ
bnB1dE1heExlbmd0aCwgSW5wdXREZWZhdWx0Q2hlY2tlZCwgSW5wdXREaXNhYmxlZCwKLSAgICAg
ICAgICAgSW5wdXRDaGVja2VkLCBJbnB1dEluZGV0ZXJtaW5hdGUsIElucHV0Rm9ybSwgSW5wdXRB
Y2Nlc3NLZXksIElucHV0QWxpZ24sIElucHV0QWx0LAotICAgICAgICAgICBJbnB1dE5hbWUsIElu
cHV0U3JjLCBJbnB1dFVzZU1hcCwgSW5wdXRTZWxlY3QsIElucHV0Q2xpY2ssCi0gICAgICAgICAg
IElucHV0U2VsZWN0aW9uU3RhcnQsIElucHV0U2VsZWN0aW9uRW5kLCBJbnB1dFNldFNlbGVjdGlv
blJhbmdlLAotICAgICAgICAgICBUZXh0QXJlYUFjY2Vzc0tleSwgVGV4dEFyZWFOYW1lLCBUZXh0
QXJlYURlZmF1bHRWYWx1ZSwgVGV4dEFyZWFTZWxlY3QsIFRleHRBcmVhU2V0U2VsZWN0aW9uUmFu
Z2UsCi0gICAgICAgICAgIFRleHRBcmVhQ29scywgVGV4dEFyZWFEaXNhYmxlZCwgVGV4dEFyZWFG
b3JtLCBUZXh0QXJlYVR5cGUsCi0gICAgICAgICAgIFRleHRBcmVhVGFiSW5kZXgsIFRleHRBcmVh
UmVhZE9ubHksIFRleHRBcmVhUm93cywgVGV4dEFyZWFWYWx1ZSwKLSAgICAgICAgICAgVGV4dEFy
ZWFTZWxlY3Rpb25TdGFydCwgVGV4dEFyZWFTZWxlY3Rpb25FbmQsCi0gICAgICAgICAgIFRleHRB
cmVhQmx1ciwgVGV4dEFyZWFGb2N1cywgQnV0dG9uQmx1ciwgQnV0dG9uRm9jdXMsIEJ1dHRvbkZv
cm0sIEJ1dHRvblRhYkluZGV4LCBCdXR0b25OYW1lLAotICAgICAgICAgICBCdXR0b25EaXNhYmxl
ZCwgQnV0dG9uQWNjZXNzS2V5LCBCdXR0b25UeXBlLCBCdXR0b25WYWx1ZSwgTGFiZWxIdG1sRm9y
LAorICAgICAgICAgICBMYWJlbEh0bWxGb3IsCiAgICAgICAgICAgIExhYmVsRm9ybSwgTGFiZWxG
b2N1cywgTGFiZWxBY2Nlc3NLZXksIEZpZWxkU2V0Rm9ybSwgTGVnZW5kRm9ybSwgTGVnZW5kQWNj
ZXNzS2V5LAogICAgICAgICAgICBMZWdlbmRBbGlnbiwgTGVnZW5kRm9jdXMsIFVMaXN0VHlwZSwg
VUxpc3RDb21wYWN0LCBPTGlzdFN0YXJ0LCBPTGlzdENvbXBhY3QsCiAgICAgICAgICAgIE9MaXN0
VHlwZSwgRExpc3RDb21wYWN0LCBEaXJlY3RvcnlDb21wYWN0LCBNZW51Q29tcGFjdCwgTElUeXBl
LApAQCAtMzMyLDE3ICszMDQsNiBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICB2aXJ0dWFsIGJvb2wg
bWFzcXVlcmFkZUFzVW5kZWZpbmVkKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICB9OwogICAK
LSAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBPcHRpb24gT2JqZWN0IC8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwotCi0gIGNsYXNzIE9wdGlvbkNvbnN0cnVjdG9ySW1wIDogcHVibGljIERPTU9iamVj
dCB7Ci0gIHB1YmxpYzoKLSAgICBPcHRpb25Db25zdHJ1Y3RvckltcChFeGVjU3RhdGUgKmV4ZWMs
IFdlYkNvcmU6OkRvY3VtZW50ICpkKTsKLSAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NvbnN0
cnVjdCgpIGNvbnN0OwotICAgIHZpcnR1YWwgSlNPYmplY3QgKmNvbnN0cnVjdChFeGVjU3RhdGUg
KmV4ZWMsIGNvbnN0IExpc3QgJmFyZ3MpOwotICBwcml2YXRlOgotICAgIFJlZlB0cjxXZWJDb3Jl
OjpEb2N1bWVudD4gbV9kb2M7Ci0gIH07Ci0KICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBJbWFn
ZSBPYmplY3QgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKICAgY2xhc3MgSW1hZ2VDb25zdHJ1
Y3RvckltcCA6IHB1YmxpYyBET01PYmplY3QgewpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hUTUxJbnB1dEVsZW1lbnRCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSFRNTElucHV0RWxlbWVudEJhc2UuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmNwcAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxh
Y2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5oIgor
CisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorCisjaW5jbHVkZSAiSlNIVE1MSW5wdXRF
bGVtZW50QmFzZVRhYmxlLmNwcCIKKwordXNpbmcgbmFtZXNwYWNlIEtKUzsKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCisvKgorQGJlZ2luIEpTSFRNTElucHV0RWxlbWVudEJhc2VUYWJsZSAzCisg
IHNlbGVjdGlvblN0YXJ0ICAgICAgICBXZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1lbnRCYXNlOjpT
ZWxlY3Rpb25TdGFydCAgICAgICAgICAgIERvbnREZWxldGUKKyAgc2VsZWN0aW9uRW5kICAgICAg
ICAgIFdlYkNvcmU6OkpTSFRNTElucHV0RWxlbWVudEJhc2U6OlNlbGVjdGlvbkVuZCAgICAgICAg
ICAgICAgRG9udERlbGV0ZQorQGVuZAorQGJlZ2luIEpTSFRNTElucHV0RWxlbWVudEJhc2VQcm90
b1RhYmxlIDEKKyAgc2V0U2VsZWN0aW9uUmFuZ2UgICAgIFdlYkNvcmU6OkpTSFRNTElucHV0RWxl
bWVudEJhc2U6OlNldFNlbGVjdGlvblJhbmdlICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAy
CitAZW5kCisqLworCitLSlNfSU1QTEVNRU5UX1BST1RPRlVOQyhKU0hUTUxJbnB1dEVsZW1lbnRC
YXNlUHJvdG9GdW5jKQorS0pTX0lNUExFTUVOVF9QUk9UT1RZUEUoIkpTSFRNTElucHV0RWxlbWVu
dEJhc2UiLCBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlUHJvdG8sIEpTSFRNTElucHV0RWxlbWVudEJh
c2VQcm90b0Z1bmMpCisKK0pTVmFsdWUqIEpTSFRNTElucHV0RWxlbWVudEJhc2VQcm90b0Z1bmM6
OmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmosIGNvbnN0
IExpc3QmIGFyZ3MpCit7CisgICAgSFRNTElucHV0RWxlbWVudCYgaW5wdXQgPSAqc3RhdGljX2Nh
c3Q8SFRNTElucHV0RWxlbWVudCo+KHN0YXRpY19jYXN0PEpTSFRNTElucHV0RWxlbWVudEJhc2Uq
Pih0aGlzT2JqKS0+aW1wbCgpKTsKKyAgICBpZiAoaWQgPT0gSlNIVE1MSW5wdXRFbGVtZW50QmFz
ZTo6U2V0U2VsZWN0aW9uUmFuZ2UpIHsKKyAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2Uo
YXJnc1swXS0+dG9JbnQzMihleGVjKSwgYXJnc1sxXS0+dG9JbnQzMihleGVjKSk7CisgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIH0KKyAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
K30KKworY29uc3QgQ2xhc3NJbmZvIEpTSFRNTElucHV0RWxlbWVudEJhc2U6OmluZm8gPSB7ICJK
U0hUTUxJbnB1dEVsZW1lbnRCYXNlIiwgJktKUzo6SlNIVE1MRWxlbWVudDo6aW5mbywgJkpTSFRN
TElucHV0RWxlbWVudEJhc2VUYWJsZSwgMCB9OworCitKU0hUTUxJbnB1dEVsZW1lbnRCYXNlOjpK
U0hUTUxJbnB1dEVsZW1lbnRCYXNlKEV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjxIVE1MSW5w
dXRFbGVtZW50PiBlKQorICAgIDogS0pTOjpKU0hUTUxFbGVtZW50KGV4ZWMsIGUuZ2V0KCkpCit7
CisgICAgc2V0UHJvdG90eXBlKEpTSFRNTElucHV0RWxlbWVudEJhc2VQcm90bzo6c2VsZihleGVj
KSk7Cit9CisKK2Jvb2wgSlNIVE1MSW5wdXRFbGVtZW50QmFzZTo6Z2V0T3duUHJvcGVydHlTbG90
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCit7CisgICAgSFRNTElucHV0RWxlbWVudCYgaW5wdXQgPSAqc3RhdGljX2Nh
c3Q8SFRNTElucHV0RWxlbWVudCo+KGltcGwoKSk7CisgICAgCisgICAgLy8gaWYgdGhpcyBlbGVt
ZW50IGRvZXNuJ3Qgc3VwcG9ydCBzZWxlY3Rpb24sIHdlIGhhdmUgbm90aGluZyB0byBkbywgdHJ5
IG91ciBwYXJlbnQKKyAgICBpZiAoIWlucHV0LmNhbkhhdmVTZWxlY3Rpb24oKSkKKyAgICAgIHJl
dHVybiBLSlM6OkpTSFRNTEVsZW1lbnQ6OmdldE93blByb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOworICAgIAorICAgIC8vIG90aGVyd2lzZSwgZG8gb3VyIG93biBmdW5jdGlv
biBsb29rdXAgb24gb3VyIHByb3RvdHlwZQorICAgIGNvbnN0IEhhc2hFbnRyeSogZW50cnkgPSBM
b29rdXA6OmZpbmRFbnRyeSgmSlNIVE1MSW5wdXRFbGVtZW50QmFzZVByb3RvVGFibGUsIHByb3Bl
cnR5TmFtZSk7CisgICAgaWYgKGVudHJ5ICYmIChlbnRyeS0+dmFsdWUgPT0gU2V0U2VsZWN0aW9u
UmFuZ2UpKSB7CisgICAgICAgIHNsb3Quc2V0U3RhdGljRW50cnkodGhpcywgZW50cnksIHN0YXRp
Y0Z1bmN0aW9uR2V0dGVyPEpTSFRNTElucHV0RWxlbWVudEJhc2VQcm90b0Z1bmM+KTsgCisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBBU1NFUlQoIWVudHJ5KTsKKyAgICAKKyAgICAv
LyBmaW5hbGx5IHRyeSB2YWx1ZSBsb29rdXAgb3Igd2FsayB0aGUgcGFyZW50IGNoYWluCisgICAg
cmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU0hUTUxJbnB1dEVsZW1lbnRCYXNlLCBLSlM6OkpT
SFRNTEVsZW1lbnQ+KGV4ZWMsICZKU0hUTUxJbnB1dEVsZW1lbnRCYXNlVGFibGUsIHRoaXMsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7Cit9CisKK0pTVmFsdWUqIEpTSFRNTElucHV0RWxlbWVudEJhc2U6
OmdldFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNvbnN0Cit7Cisg
ICAgSFRNTElucHV0RWxlbWVudCYgaW5wdXQgPSAqc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVu
dCo+KGltcGwoKSk7CisgICAgQVNTRVJUKGlucHV0LmNhbkhhdmVTZWxlY3Rpb24oKSk7CisgICAg
c3dpdGNoICh0b2tlbikgeworICAgIGNhc2UgU2VsZWN0aW9uU3RhcnQ6CisgICAgICAgIHJldHVy
biBqc051bWJlcihpbnB1dC5zZWxlY3Rpb25TdGFydCgpKTsKKyAgICBjYXNlIFNlbGVjdGlvbkVu
ZDoKKyAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGlucHV0LnNlbGVjdGlvbkVuZCgpKTsKKyAgICB9
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cit9
CisKK3ZvaWQgSlNIVE1MSW5wdXRFbGVtZW50QmFzZTo6cHV0KEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKiB2YWx1ZSwgaW50IGF0dHIpCit7
CisgICAgbG9va3VwUHV0PEpTSFRNTElucHV0RWxlbWVudEJhc2UsIEtKUzo6SlNIVE1MRWxlbWVu
dD4oZXhlYywgcHJvcGVydHlOYW1lLCB2YWx1ZSwgYXR0ciwgJkpTSFRNTElucHV0RWxlbWVudEJh
c2VUYWJsZSwgdGhpcyk7Cit9CisKK3ZvaWQgSlNIVE1MSW5wdXRFbGVtZW50QmFzZTo6cHV0VmFs
dWVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbiwgSlNWYWx1ZSogdmFsdWUsIGlu
dCAvKmF0dHIqLykKK3sKKyAgICBIVE1MSW5wdXRFbGVtZW50JiBpbnB1dCA9ICpzdGF0aWNfY2Fz
dDxIVE1MSW5wdXRFbGVtZW50Kj4oaW1wbCgpKTsKKyAgICBBU1NFUlQoaW5wdXQuY2FuSGF2ZVNl
bGVjdGlvbigpKTsKKyAgICBzd2l0Y2ggKHRva2VuKSB7CisgICAgY2FzZSBTZWxlY3Rpb25TdGFy
dDoKKyAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uU3RhcnQodmFsdWUtPnRvSW50MzIoZXhlYykp
OworICAgICAgICByZXR1cm47CisgICAgY2FzZSBTZWxlY3Rpb25FbmQ6CisgICAgICAgIGlucHV0
LnNldFNlbGVjdGlvbkVuZCh2YWx1ZS0+dG9JbnQzMihleGVjKSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK30KSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3MvanMva2pzX2RvbW5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdz
L2pzL2tqc19kb21ub2RlLmgJKHJldmlzaW9uIDE0NDUwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9q
cy9ranNfZG9tbm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSwxOCArMzUsMTggQEAgS0pTX0RF
RklORV9QUk9UT1RZUEUoRE9NTm9kZVByb3RvKQogY2xhc3MgRE9NTm9kZSA6IHB1YmxpYyBET01P
YmplY3QgewogcHVibGljOgogICAgIHZpcnR1YWwgfkRPTU5vZGUoKTsKLSAgICB2aXJ0dWFsIGJv
b2wgdG9Cb29sZWFuKEV4ZWNTdGF0ZSAqKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90
Jik7Ci0gICAgSlNWYWx1ZSAqZ2V0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIGludCB0
b2tlbikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHRvQm9vbGVhbihFeGVjU3RhdGUqKSBjb25z
dDsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSosIGNvbnN0
IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKKyAgICBKU1ZhbHVlICpnZXRWYWx1ZVByb3Bl
cnR5KEV4ZWNTdGF0ZSosIGludCB0b2tlbikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIG1hcmso
KTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmll
ciAmcHJvcGVydHlOYW1lLCBKU1ZhbHVlICp2YWx1ZSwgaW50IGF0dHIgPSBOb25lKTsKLSAgICB2
b2lkIHB1dFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUg
KnZhbHVlLCBpbnQgYXR0cik7CisgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUsIEpTVmFsdWUqLCBpbnQgYXR0ciA9IE5vbmUpOwor
ICAgIHZvaWQgcHV0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUqLCBpbnQgdG9rZW4sIEpTVmFsdWUq
LCBpbnQgYXR0cik7CiAgICAgV2ViQ29yZTo6Tm9kZSAqaW1wbCgpIGNvbnN0IHsgcmV0dXJuIG1f
aW1wbC5nZXQoKTsgfQogICAgIHZpcnR1YWwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKSBj
b25zdCB7IHJldHVybiAmaW5mbzsgfQogICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gaW5mbzsK
ICAgICAKLSAgICB2aXJ0dWFsIEpTVmFsdWUgKnRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSAqZXhlYywg
SlNUeXBlIHByZWZlcnJlZCA9IFVuZGVmaW5lZFR5cGUpIGNvbnN0OwotICAgIHZpcnR1YWwgVVN0
cmluZyB0b1N0cmluZyhFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0OworICAgIHZpcnR1YWwgSlNWYWx1
ZSAqdG9QcmltaXRpdmUoRXhlY1N0YXRlKiwgSlNUeXBlIHByZWZlcnJlZCA9IFVuZGVmaW5lZFR5
cGUpIGNvbnN0OworICAgIHZpcnR1YWwgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUqKSBjb25z
dDsKICAgICAKICAgICBlbnVtIHsgTm9kZU5hbWUsIE5vZGVWYWx1ZSwgTm9kZVR5cGUsIFBhcmVu
dE5vZGUsIFBhcmVudEVsZW1lbnQsCiAgICAgICAgIENoaWxkTm9kZXMsIEZpcnN0Q2hpbGQsIExh
c3RDaGlsZCwgUHJldmlvdXNTaWJsaW5nLCBOZXh0U2libGluZywgSXRlbSwKQEAgLTYzLDcgKzYz
LDcgQEAgcHJpdmF0ZToKICAgICAvLyBEb24ndCB1c2UgdGhpcyBjbGFzcyBkaXJlY3RseSAtLSB1
c2UgSlNOb2RlIGluc3RlYWQKICAgICBmcmllbmQgY2xhc3MgV2ViQ29yZTo6SlNOb2RlOwogICAg
IERPTU5vZGUoKTsKLSAgICBET01Ob2RlKEV4ZWNTdGF0ZSAqZXhlYywgV2ViQ29yZTo6Tm9kZSAq
bik7CisgICAgRE9NTm9kZShFeGVjU3RhdGUqLCBXZWJDb3JlOjpOb2RlICpuKTsKICAgICBET01O
b2RlKFdlYkNvcmU6Ok5vZGUgKm4pOwogfTsKIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAkocmV2aXNpb24gMTQ0NTAp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIwLDI0ICsyMCwzOSBAQAogI2luY2x1ZGUgIkpTSFRNTEVsZW1l
bnRXcmFwcGVyRmFjdG9yeS5oIgogCiAjaW5jbHVkZSAiSFRNTEJhc2VFbGVtZW50LmgiCisjaW5j
bHVkZSAiSFRNTEJ1dHRvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQ2FudmFzRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTWV0YUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0R3JvdXBFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TE9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MU3R5bGVFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUaXRsZUVsZW1lbnQuaCIK
KwogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorCiAjaW5jbHVkZSAiSlNIVE1MQmFzZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJKU0hUTUxCdXR0b25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MQ2Fu
dmFzRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAi
SlNIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MTGlua0VsZW1lbnQuaCIKICNp
bmNsdWRlICJKU0hUTUxNZXRhRWxlbWVudC5oIgorI2luY2x1ZGUgIkpTSFRNTE9wdEdyb3VwRWxl
bWVudC5oIgorI2luY2x1ZGUgIkpTSFRNTE9wdGlvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hU
TUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU0hUTUxUZXh0QXJlYUVsZW1lbnQuaCIKICNp
bmNsdWRlICJKU0hUTUxUaXRsZUVsZW1lbnQuaCIKKwogI2luY2x1ZGUgImtqc19odG1sLmgiCiAK
IHVzaW5nIG5hbWVzcGFjZSBLSlM7CiAKKy8vIEZJWE1FOiBFdmVudHVhbGx5IHRoaXMgZmlsZSBz
aG91bGQgYmUgYXV0b2dlbmVyYXRlZCwganVzdCBsaWtlIEhUTUxOYW1lcywgSFRNTEVsZW1lbnRG
YWN0b3J5LCBldGMuCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKQEAgLTQ5LDYgKzY0LDExIEBAIHN0YXRpYyBET01Ob2RlKiBjcmVhdGVCYXNlV3Jh
cHBlcihFeGVjU3QKICAgICByZXR1cm4gbmV3IEpTSFRNTEJhc2VFbGVtZW50KGV4ZWMsIHN0YXRp
Y19jYXN0PEhUTUxCYXNlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKIH0KIAorc3RhdGljIERP
TU5vZGUqIGNyZWF0ZUJ1dHRvbldyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPEhU
TUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgSlNIVE1MQnV0dG9uRWxlbWVu
dChleGVjLCBzdGF0aWNfY2FzdDxIVE1MQnV0dG9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsK
K30KKwogc3RhdGljIERPTU5vZGUqIGNyZWF0ZUNhbnZhc1dyYXBwZXIoRXhlY1N0YXRlKiBleGVj
LCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQogewogICAgIHJldHVybiBuZXcgSlNI
VE1MQ2FudmFzRWxlbWVudChleGVjLCBzdGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+KGVs
ZW1lbnQuZ2V0KCkpKTsKQEAgLTY0LDE2ICs4NCwzNiBAQCBzdGF0aWMgRE9NTm9kZSogY3JlYXRl
TGlua1dyYXBwZXIoRXhlY1N0CiAgICAgcmV0dXJuIG5ldyBKU0hUTUxMaW5rRWxlbWVudChleGVj
LCBzdGF0aWNfY2FzdDxIVE1MTGlua0VsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7CiB9CiAKK3N0
YXRpYyBET01Ob2RlKiBjcmVhdGVJbnB1dFdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBuZXcgSlNIVE1MSW5wdXRF
bGVtZW50KGV4ZWMsIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7Cit9CisKIHN0YXRpYyBET01Ob2RlKiBjcmVhdGVNZXRhV3JhcHBlcihFeGVjU3RhdGUqIGV4
ZWMsIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCiB7CiAgICAgcmV0dXJuIG5ldyBK
U0hUTUxNZXRhRWxlbWVudChleGVjLCBzdGF0aWNfY2FzdDxIVE1MTWV0YUVsZW1lbnQqPihlbGVt
ZW50LmdldCgpKSk7CiB9CiAKK3N0YXRpYyBET01Ob2RlKiBjcmVhdGVPcHRHcm91cFdyYXBwZXIo
RXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAg
IHJldHVybiBuZXcgSlNIVE1MT3B0R3JvdXBFbGVtZW50KGV4ZWMsIHN0YXRpY19jYXN0PEhUTUxP
cHRHcm91cEVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKK3N0YXRpYyBET01Ob2RlKiBj
cmVhdGVPcHRpb25XcmFwcGVyKEV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjxIVE1MRWxlbWVu
dD4gZWxlbWVudCkKK3sKKyAgICByZXR1cm4gbmV3IEpTSFRNTE9wdGlvbkVsZW1lbnQoZXhlYywg
c3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKIHN0
YXRpYyBET01Ob2RlKiBjcmVhdGVTdHlsZVdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVm
UHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQogewogICAgIHJldHVybiBuZXcgSlNIVE1MU3R5bGVF
bGVtZW50KGV4ZWMsIHN0YXRpY19jYXN0PEhUTUxTdHlsZUVsZW1lbnQqPihlbGVtZW50LmdldCgp
KSk7CiB9CiAKK3N0YXRpYyBET01Ob2RlKiBjcmVhdGVUZXh0QXJlYVdyYXBwZXIoRXhlY1N0YXRl
KiBleGVjLCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50KQoreworICAgIHJldHVybiBu
ZXcgSlNIVE1MVGV4dEFyZWFFbGVtZW50KGV4ZWMsIHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVs
ZW1lbnQqPihlbGVtZW50LmdldCgpKSk7Cit9CisKIHN0YXRpYyBET01Ob2RlKiBjcmVhdGVUaXRs
ZVdyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVtZW50
KQogewogICAgIHJldHVybiBuZXcgSlNIVE1MVGl0bGVFbGVtZW50KGV4ZWMsIHN0YXRpY19jYXN0
PEhUTUxUaXRsZUVsZW1lbnQqPihlbGVtZW50LmdldCgpKSk7CkBAIC04NCwxMSArMTI0LDE2IEBA
IERPTU5vZGUqIGNyZWF0ZUpTV3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMKICAgICBzdGF0aWMgSGFz
aE1hcDxXZWJDb3JlOjpBdG9taWNTdHJpbmdJbXBsKiwgQ3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVy
RnVuY3Rpb24+IG1hcDsKICAgICBpZiAobWFwLmlzRW1wdHkoKSkgewogICAgICAgICBtYXAuc2V0
KGJhc2VUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCYXNlV3JhcHBlcik7CisgICAgICAg
IG1hcC5zZXQoYnV0dG9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlQnV0dG9uV3JhcHBl
cik7CiAgICAgICAgIG1hcC5zZXQoY2FudmFzVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRl
Q2FudmFzV3JhcHBlcik7CiAgICAgICAgIG1hcC5zZXQoaGVhZFRhZy5sb2NhbE5hbWUoKS5pbXBs
KCksIGNyZWF0ZUhlYWRXcmFwcGVyKTsKKyAgICAgICAgbWFwLnNldChpbnB1dFRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksIGNyZWF0ZUlucHV0V3JhcHBlcik7CiAgICAgICAgIG1hcC5zZXQobGlua1Rh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUxpbmtXcmFwcGVyKTsKICAgICAgICAgbWFwLnNl
dChtZXRhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlTWV0YVdyYXBwZXIpOworICAgICAg
ICBtYXAuc2V0KG9wdGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlT3B0R3JvdXBX
cmFwcGVyKTsKKyAgICAgICAgbWFwLnNldChvcHRpb25UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBj
cmVhdGVPcHRpb25XcmFwcGVyKTsKICAgICAgICAgbWFwLnNldChzdHlsZVRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksIGNyZWF0ZVN0eWxlV3JhcHBlcik7CisgICAgICAgIG1hcC5zZXQodGV4dGFyZWFU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUZXh0QXJlYVdyYXBwZXIpOwogICAgICAgICBt
YXAuc2V0KHRpdGxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3JlYXRlVGl0bGVXcmFwcGVyKTsK
ICAgICB9CiAgICAgQ3JlYXRlSFRNTEVsZW1lbnRXcmFwcGVyRnVuY3Rpb24gZiA9IG1hcC5nZXQo
ZWxlbWVudC0+bG9jYWxOYW1lKCkuaW1wbCgpKTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMv
SlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9u
IDApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rv
ci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAy
MTExLTEzMDcsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNI
VE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSlNIVE1MT3B0aW9uRWxl
bWVudC5oIgorI2luY2x1ZGUgIlRleHQuaCIKKwordXNpbmcgbmFtZXNwYWNlIEtKUzsKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3I6OkpTSFRN
TE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIERvY3VtZW50KiBkKQor
ICAgIDogbV9kb2MoZCkKK3sKKyAgICBwdXQoZXhlYywgbGVuZ3RoUHJvcGVydHlOYW1lLCBqc051
bWJlcig0KSwgUmVhZE9ubHl8RG9udERlbGV0ZXxEb250RW51bSk7Cit9CisKK2Jvb2wgSlNIVE1M
T3B0aW9uRWxlbWVudENvbnN0cnVjdG9yOjppbXBsZW1lbnRzQ29uc3RydWN0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworSlNPYmplY3QqIEpTSFRNTE9wdGlvbkVsZW1lbnRDb25z
dHJ1Y3Rvcjo6Y29uc3RydWN0KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgTGlzdCYgYXJncykKK3sK
KyAgICBpbnQgZXhjZXB0aW9uID0gMDsKKyAgICBSZWZQdHI8RWxlbWVudD4gZWwobV9kb2MtPmNy
ZWF0ZUVsZW1lbnQoIm9wdGlvbiIsIGV4Y2VwdGlvbikpOworICAgIEhUTUxPcHRpb25FbGVtZW50
KiBvcHQgPSAwOworICAgIGlmIChlbCkgeworICAgICAgICBvcHQgPSBzdGF0aWNfY2FzdDxIVE1M
T3B0aW9uRWxlbWVudCo+KGVsLmdldCgpKTsKKyAgICAgICAgaW50IHN6ID0gYXJncy5zaXplKCk7
CisgICAgICAgIFJlZlB0cjxUZXh0PiB0ZXh0ID0gbV9kb2MtPmNyZWF0ZVRleHROb2RlKCIiKTsK
KyAgICAgICAgb3B0LT5hcHBlbmRDaGlsZCh0ZXh0LCBleGNlcHRpb24pOworICAgICAgICBpZiAo
ZXhjZXB0aW9uID09IDAgJiYgc3ogPiAwKQorICAgICAgICAgICAgdGV4dC0+c2V0RGF0YShhcmdz
WzBdLT50b1N0cmluZyhleGVjKSwgZXhjZXB0aW9uKTsKKyAgICAgICAgaWYgKGV4Y2VwdGlvbiA9
PSAwICYmIHN6ID4gMSkKKyAgICAgICAgICAgIG9wdC0+c2V0VmFsdWUoYXJnc1sxXS0+dG9TdHJp
bmcoZXhlYykpOworICAgICAgICBpZiAoZXhjZXB0aW9uID09IDAgJiYgc3ogPiAyKQorICAgICAg
ICAgICAgb3B0LT5zZXREZWZhdWx0U2VsZWN0ZWQoYXJnc1syXS0+dG9Cb29sZWFuKGV4ZWMpKTsK
KyAgICAgICAgaWYgKGV4Y2VwdGlvbiA9PSAwICYmIHN6ID4gMykKKyAgICAgICAgICAgIG9wdC0+
c2V0U2VsZWN0ZWQoYXJnc1szXS0+dG9Cb29sZWFuKGV4ZWMpKTsKKyAgICB9CisKKyAgICBzZXRE
T01FeGNlcHRpb24oZXhlYywgZXhjZXB0aW9uKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNP
YmplY3QqPih0b0pTKGV4ZWMsIG9wdCkpOworfQorCit9CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L2pzL2tqc19odG1sLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19o
dG1sLmNwcAkocmV2aXNpb24gMTQ0NTApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19odG1s
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTIgKzI4LDEwIEBACiAjaW5jbHVkZSAiSFRNTEFu
Y2hvckVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQXBwbGV0RWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxBcmVhRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxCYXNlRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxCYXNlRm9udEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQmxvY2txdW90ZUVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MQm9keUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQlJFbGVt
ZW50LmgiCi0jaW5jbHVkZSAiSFRNTEJ1dHRvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRGly
ZWN0b3J5RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTERMaXN0RWxlbWVudC5oIgpAQCAtNDMsNyArNDEsNiBAQAogI2luY2x1ZGUgIkhUTUxGb250
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxG
cmFtZVNldEVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MSGVhZEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MSGVhZGluZ0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSFJFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTEh0bWxFbGVtZW50LmgiCkBAIC01MywxNSArNTAsMTIgQEAKICNpbmNsdWRlICJI
VE1MTGFiZWxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTExlZ2VuZEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MTElFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTExpbmtFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTWVudUVsZW1lbnQuaCIKLSNp
bmNsdWRlICJIVE1MTWV0YUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTW9kRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTE9MaXN0RWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxPcHRHcm91cEVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxPcHRp
b25zQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkhUTUxQYXJhZ3JhcGhFbGVtZW50LmgiCkBAIC02
OSwxNSArNjMsMTIgQEAKICNpbmNsdWRlICJIVE1MUHJlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxTY3JpcHRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFNlbGVjdEVsZW1lbnQuaCIKLSNpbmNs
dWRlICJIVE1MU3R5bGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlQ2FwdGlvbkVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MVGFibGVDZWxsRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxU
YWJsZUNvbEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGFibGVFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTFRhYmxlUm93RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUYWJsZVNlY3Rpb25FbGVt
ZW50LmgiCi0jaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxU
aXRsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUXVvdGVFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTFVMaXN0RWxlbWVudC5oIgogI2luY2x1ZGUgIk5hbWVOb2RlTGlzdC5oIgpAQCAtNDY2LDcg
KzQ1Nyw2IEBAIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpiYXNlRm9udF8KIGNvbnN0
IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpibG9ja1F1b3RlX2luZm8gPSB7ICJIVE1MQmxvY2tR
dW90ZUVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxCbG9ja1F1b3RlRWxlbWVu
dFRhYmxlLCAwIH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6Ym9keV9pbmZvID0g
eyAiSFRNTEJvZHlFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MQm9keUVsZW1l
bnRUYWJsZSwgMCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OmJyX2luZm8gPSB7
ICJIVE1MQlJFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MQlJFbGVtZW50VGFi
bGUsIDAgfTsKLWNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpidXR0b25faW5mbyA9IHsg
IkhUTUxCdXR0b25FbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MQnV0dG9uRWxl
bWVudFRhYmxlLCAwIH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6Y2FwdGlvbl9p
bmZvID0geyAiSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywg
JkhUTUxUYWJsZUNhcHRpb25FbGVtZW50VGFibGUsIDAgfTsKIGNvbnN0IENsYXNzSW5mbyBKU0hU
TUxFbGVtZW50Ojpjb2xfaW5mbyA9IHsgIkhUTUxUYWJsZUNvbEVsZW1lbnQiLCAmSlNIVE1MRWxl
bWVudDo6aW5mbywgJkhUTUxUYWJsZUNvbEVsZW1lbnRUYWJsZSwgMCB9OwogY29uc3QgQ2xhc3NJ
bmZvIEpTSFRNTEVsZW1lbnQ6OmRpcl9pbmZvID0geyAiSFRNTERpcmVjdG9yeUVsZW1lbnQiLCAm
SlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxEaXJlY3RvcnlFbGVtZW50VGFibGUsIDAgfTsKQEAg
LTQ4NCw3ICs0NzQsNiBAQCBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6aHRtbF9pbmZv
CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6aUZyYW1lX2luZm8gPSB7ICJIVE1MSUZy
YW1lRWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTElGcmFtZUVsZW1lbnRUYWJs
ZSwgMCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OmltZ19pbmZvID0geyAiSFRN
TEltYWdlRWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTEltYWdlRWxlbWVudFRh
YmxlLCAwIH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6aW5mbyA9IHsgIkhUTUxF
bGVtZW50IiwgJkpTRWxlbWVudDo6aW5mbywgJkhUTUxFbGVtZW50VGFibGUsIDAgfTsKLWNvbnN0
IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjppbnB1dF9pbmZvID0geyAiSFRNTElucHV0RWxlbWVu
dCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTElucHV0RWxlbWVudFRhYmxlLCAwIH07CiBj
b25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6aXNJbmRleF9pbmZvID0geyAiSFRNTElzSW5k
ZXhFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MSXNJbmRleEVsZW1lbnRUYWJs
ZSwgMCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OmxhYmVsX2luZm8gPSB7ICJI
VE1MTGFiZWxFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MTGFiZWxFbGVtZW50
VGFibGUsIDAgfTsKIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpsZWdlbmRfaW5mbyA9
IHsgIkhUTUxMZWdlbmRFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MTGVnZW5k
RWxlbWVudFRhYmxlLCAwIH07CkBAIC00OTUsOCArNDg0LDYgQEAgY29uc3QgQ2xhc3NJbmZvIEpT
SFRNTEVsZW1lbnQ6Om1lbnVfaW5mbwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6Om1v
ZF9pbmZvID0geyAiSFRNTE1vZEVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxN
b2RFbGVtZW50VGFibGUsIDAgfTsKIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpvYmpl
Y3RfaW5mbyA9IHsgIkhUTUxPYmplY3RFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZI
VE1MT2JqZWN0RWxlbWVudFRhYmxlLCAwIH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVu
dDo6b2xfaW5mbyA9IHsgIkhUTUxPTGlzdEVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywg
JkhUTUxPTGlzdEVsZW1lbnRUYWJsZSwgMCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1l
bnQ6Om9wdEdyb3VwX2luZm8gPSB7ICJIVE1MT3B0R3JvdXBFbGVtZW50IiwgJkpTSFRNTEVsZW1l
bnQ6OmluZm8sICZIVE1MT3B0R3JvdXBFbGVtZW50VGFibGUsIDAgfTsKLWNvbnN0IENsYXNzSW5m
byBKU0hUTUxFbGVtZW50OjpvcHRpb25faW5mbyA9IHsgIkhUTUxPcHRpb25FbGVtZW50IiwgJkpT
SFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MT3B0aW9uRWxlbWVudFRhYmxlLCAwIH07CiBjb25zdCBD
bGFzc0luZm8gSlNIVE1MRWxlbWVudDo6cF9pbmZvID0geyAiSFRNTFBhcmFncmFwaEVsZW1lbnQi
LCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxQYXJhZ3JhcGhFbGVtZW50VGFibGUsIDAgfTsK
IGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpwYXJhbV9pbmZvID0geyAiSFRNTFBhcmFt
RWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTFBhcmFtRWxlbWVudFRhYmxlLCAw
IH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6cHJlX2luZm8gPSB7ICJIVE1MUHJl
RWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTFByZUVsZW1lbnRUYWJsZSwgMCB9
OwpAQCAtNTA2LDcgKzQ5Myw2IEBAIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpzZWxl
Y3RfaW4KIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50Ojp0YWJsZV9pbmZvID0geyAiSFRN
TFRhYmxlRWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTFRhYmxlRWxlbWVudFRh
YmxlLCAwIH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6dGFibGVjZWxsX2luZm8g
PSB7ICJIVE1MVGFibGVDZWxsRWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTFRh
YmxlQ2VsbEVsZW1lbnRUYWJsZSwgMCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6
OnRhYmxlc2VjdGlvbl9pbmZvID0geyAiSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQiLCAmSlNIVE1M
RWxlbWVudDo6aW5mbywgJkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50VGFibGUsIDAgfTsKLWNvbnN0
IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50Ojp0ZXh0QXJlYV9pbmZvID0geyAiSFRNTFRleHRBcmVh
RWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTFRleHRBcmVhRWxlbWVudFRhYmxl
LCAwIH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6dHJfaW5mbyA9IHsgIkhUTUxU
YWJsZVJvd0VsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxUYWJsZVJvd0VsZW1l
bnRUYWJsZSwgMCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OnVsX2luZm8gPSB7
ICJIVE1MVUxpc3RFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MVUxpc3RFbGVt
ZW50VGFibGUsIDAgfTsKIApAQCAtNTIwLDcgKzUwNiw2IEBAIGNvbnN0IENsYXNzSW5mbyogSlNI
VE1MRWxlbWVudDo6Y2xhc3NJbmYKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldChibG9ja3F1b3Rl
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmJsb2NrUXVvdGVfaW5mbyk7CiAgICAgICAgIGNsYXNz
SW5mb01hcC5zZXQoYm9keVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZib2R5X2luZm8pOwogICAg
ICAgICBjbGFzc0luZm9NYXAuc2V0KGJyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmJyX2luZm8p
OwotICAgICAgICBjbGFzc0luZm9NYXAuc2V0KGJ1dHRvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
ICZidXR0b25faW5mbyk7CiAgICAgICAgIGNsYXNzSW5mb01hcC5zZXQoY2FwdGlvblRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksICZjYXB0aW9uX2luZm8pOwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0
KGNvbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZjb2xfaW5mbyk7CiAgICAgICAgIGNsYXNzSW5m
b01hcC5zZXQoY29sZ3JvdXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmY29sX2luZm8pOwpAQCAt
NTQ0LDcgKzUyOSw2IEBAIGNvbnN0IENsYXNzSW5mbyogSlNIVE1MRWxlbWVudDo6Y2xhc3NJbmYK
ICAgICAgICAgY2xhc3NJbmZvTWFwLnNldChodG1sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmh0
bWxfaW5mbyk7CiAgICAgICAgIGNsYXNzSW5mb01hcC5zZXQoaWZyYW1lVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgJmlGcmFtZV9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldChpbWdUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCAmaW1nX2luZm8pOwotICAgICAgICBjbGFzc0luZm9NYXAuc2V0
KGlucHV0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmlucHV0X2luZm8pOwogICAgICAgICBjbGFz
c0luZm9NYXAuc2V0KGluc1RhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZtb2RfaW5mbyk7CiAgICAg
ICAgIGNsYXNzSW5mb01hcC5zZXQoaXNpbmRleFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZpc0lu
ZGV4X2luZm8pOwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KGxhYmVsVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgJmxhYmVsX2luZm8pOwpAQCAtNTU2LDggKzU0MCw2IEBAIGNvbnN0IENsYXNzSW5m
byogSlNIVE1MRWxlbWVudDo6Y2xhc3NJbmYKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldChtZW51
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJm1lbnVfaW5mbyk7CiAgICAgICAgIGNsYXNzSW5mb01h
cC5zZXQob2JqZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJm9iamVjdF9pbmZvKTsKICAgICAg
ICAgY2xhc3NJbmZvTWFwLnNldChvbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZvbF9pbmZvKTsK
LSAgICAgICAgY2xhc3NJbmZvTWFwLnNldChvcHRncm91cFRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
ICZvcHRHcm91cF9pbmZvKTsKLSAgICAgICAgY2xhc3NJbmZvTWFwLnNldChvcHRpb25UYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCAmb3B0aW9uX2luZm8pOwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0
KHBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmcF9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFw
LnNldChwYXJhbVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZwYXJhbV9pbmZvKTsKICAgICAgICAg
Y2xhc3NJbmZvTWFwLnNldChwcmVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmcHJlX2luZm8pOwpA
QCAtNTY3LDcgKzU0OSw2IEBAIGNvbnN0IENsYXNzSW5mbyogSlNIVE1MRWxlbWVudDo6Y2xhc3NJ
bmYKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldCh0YWJsZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
ICZ0YWJsZV9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldCh0Ym9keVRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksICZ0YWJsZXNlY3Rpb25faW5mbyk7CiAgICAgICAgIGNsYXNzSW5mb01hcC5z
ZXQodGRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmdGFibGVjZWxsX2luZm8pOwotICAgICAgICBj
bGFzc0luZm9NYXAuc2V0KHRleHRhcmVhVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJnRleHRBcmVh
X2luZm8pOwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KHRmb290VGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgJnRhYmxlc2VjdGlvbl9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldCh0aFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksICZ0YWJsZWNlbGxfaW5mbyk7CiAgICAgICAgIGNsYXNzSW5m
b01hcC5zZXQodGhlYWRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmdGFibGVzZWN0aW9uX2luZm8p
OwpAQCAtNTg4LDExICs1NjksNiBAQCBjb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMgSlNI
VE1MRWxlCiBjb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMgSlNIVE1MRWxlbWVudDo6Ym9k
eV9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50Ojpib2R5R2V0dGVyLCAmSlNIVE1MRWxlbWVu
dDo6Ym9keVNldHRlciB9OwogY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRNTEVs
ZW1lbnQ6OmZvcm1fYWNjZXNzb3JzID0geyAmSlNIVE1MRWxlbWVudDo6Zm9ybUdldHRlciwgJkpT
SFRNTEVsZW1lbnQ6OmZvcm1TZXR0ZXIgfTsKIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29y
cyBKU0hUTUxFbGVtZW50OjpzZWxlY3RfYWNjZXNzb3JzID0geyAmSlNIVE1MRWxlbWVudDo6c2Vs
ZWN0R2V0dGVyLCAmSlNIVE1MRWxlbWVudDo6c2VsZWN0U2V0dGVyIH07Ci1jb25zdCBKU0hUTUxF
bGVtZW50OjpBY2Nlc3NvcnMgSlNIVE1MRWxlbWVudDo6b3B0R3JvdXBfYWNjZXNzb3JzID0geyAm
SlNIVE1MRWxlbWVudDo6b3B0R3JvdXBHZXR0ZXIsICZKU0hUTUxFbGVtZW50OjpvcHRHcm91cFNl
dHRlciB9OwotY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRNTEVsZW1lbnQ6Om9w
dGlvbl9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50OjpvcHRpb25HZXR0ZXIsICZKU0hUTUxF
bGVtZW50OjpvcHRpb25TZXR0ZXIgfTsKLWNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyBK
U0hUTUxFbGVtZW50OjppbnB1dF9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50OjppbnB1dEdl
dHRlciwgJkpTSFRNTEVsZW1lbnQ6OmlucHV0U2V0dGVyIH07Ci1jb25zdCBKU0hUTUxFbGVtZW50
OjpBY2Nlc3NvcnMgSlNIVE1MRWxlbWVudDo6dGV4dEFyZWFfYWNjZXNzb3JzID0geyAmSlNIVE1M
RWxlbWVudDo6dGV4dEFyZWFHZXR0ZXIsICZKU0hUTUxFbGVtZW50Ojp0ZXh0QXJlYVNldHRlciB9
OwotY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRNTEVsZW1lbnQ6OmJ1dHRvbl9h
Y2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50OjpidXR0b25HZXR0ZXIsICZKU0hUTUxFbGVtZW50
OjpidXR0b25TZXR0ZXIgfTsKIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyBKU0hUTUxF
bGVtZW50OjpsYWJlbF9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50OjpsYWJlbEdldHRlciwg
JkpTSFRNTEVsZW1lbnQ6OmxhYmVsU2V0dGVyIH07CiBjb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nl
c3NvcnMgSlNIVE1MRWxlbWVudDo6ZmllbGRTZXRfYWNjZXNzb3JzID0geyAmSlNIVE1MRWxlbWVu
dDo6ZmllbGRTZXRHZXR0ZXIsICZKU0hUTUxFbGVtZW50OjpmaWVsZFNldFNldHRlciB9OwogY29u
c3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRNTEVsZW1lbnQ6OmxlZ2VuZF9hY2Nlc3Nv
cnMgPSB7ICZKU0hUTUxFbGVtZW50OjpsZWdlbmRHZXR0ZXIsICZKU0hUTUxFbGVtZW50OjpsZWdl
bmRTZXR0ZXIgfTsKQEAgLTY0NCw3ICs2MjAsNiBAQCBjb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nl
c3NvcnMqIEpTSFRNTEVsCiAgICAgICAgIGFjY2Vzc29yTWFwLmFkZChibG9ja3F1b3RlVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgJmJsb2NrUXVvdGVfYWNjZXNzb3JzKTsgCiAgICAgICAgIGFjY2Vz
c29yTWFwLmFkZChib2R5VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmJvZHlfYWNjZXNzb3JzKTsK
ICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKGJyVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmJyX2Fj
Y2Vzc29ycyk7Ci0gICAgICAgIGFjY2Vzc29yTWFwLmFkZChidXR0b25UYWcubG9jYWxOYW1lKCku
aW1wbCgpLCAmYnV0dG9uX2FjY2Vzc29ycyk7CiAgICAgICAgIGFjY2Vzc29yTWFwLmFkZChjYXB0
aW9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmNhcHRpb25fYWNjZXNzb3JzKTsKICAgICAgICAg
YWNjZXNzb3JNYXAuYWRkKGNvbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZjb2xfYWNjZXNzb3Jz
KTsKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKGNvbGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgJmNvbF9hY2Nlc3NvcnMpOwpAQCAtNjY4LDcgKzY0Myw2IEBAIGNvbnN0IEpTSFRNTEVsZW1l
bnQ6OkFjY2Vzc29ycyogSlNIVE1MRWwKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKGh0bWxUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCAmaHRtbF9hY2Nlc3NvcnMpOwogICAgICAgICBhY2Nlc3Nvck1h
cC5hZGQoaWZyYW1lVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmlGcmFtZV9hY2Nlc3NvcnMpOwog
ICAgICAgICBhY2Nlc3Nvck1hcC5hZGQoaW1nVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmltZ19h
Y2Nlc3NvcnMpOwotICAgICAgICBhY2Nlc3Nvck1hcC5hZGQoaW5wdXRUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCAmaW5wdXRfYWNjZXNzb3JzKTsKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKGluc1Rh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksICZtb2RfYWNjZXNzb3JzKTsKICAgICAgICAgYWNjZXNzb3JN
YXAuYWRkKGlzaW5kZXhUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmaXNJbmRleF9hY2Nlc3NvcnMp
OwogICAgICAgICBhY2Nlc3Nvck1hcC5hZGQobGFiZWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAm
bGFiZWxfYWNjZXNzb3JzKTsKQEAgLTY4MCw4ICs2NTQsNiBAQCBjb25zdCBKU0hUTUxFbGVtZW50
OjpBY2Nlc3NvcnMqIEpTSFRNTEVsCiAgICAgICAgIGFjY2Vzc29yTWFwLmFkZChtZW51VGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgJm1lbnVfYWNjZXNzb3JzKTsKICAgICAgICAgYWNjZXNzb3JNYXAu
YWRkKG9iamVjdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZvYmplY3RfYWNjZXNzb3JzKTsKICAg
ICAgICAgYWNjZXNzb3JNYXAuYWRkKG9sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJm9sX2FjY2Vz
c29ycyk7Ci0gICAgICAgIGFjY2Vzc29yTWFwLmFkZChvcHRpb25UYWcubG9jYWxOYW1lKCkuaW1w
bCgpLCAmb3B0aW9uX2FjY2Vzc29ycyk7Ci0gICAgICAgIGFjY2Vzc29yTWFwLmFkZChvcHRncm91
cFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZvcHRHcm91cF9hY2Nlc3NvcnMpOwogICAgICAgICBh
Y2Nlc3Nvck1hcC5hZGQocFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZwX2FjY2Vzc29ycyk7CiAg
ICAgICAgIGFjY2Vzc29yTWFwLmFkZChwYXJhbVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZwYXJh
bV9hY2Nlc3NvcnMpOwogICAgICAgICBhY2Nlc3Nvck1hcC5hZGQocHJlVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgJnByZV9hY2Nlc3NvcnMpOwpAQCAtNjkxLDcgKzY2Myw2IEBAIGNvbnN0IEpTSFRN
TEVsZW1lbnQ6OkFjY2Vzc29ycyogSlNIVE1MRWwKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKHRh
YmxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJnRhYmxlX2FjY2Vzc29ycyk7CiAgICAgICAgIGFj
Y2Vzc29yTWFwLmFkZCh0Ym9keVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZ0YWJsZXNlY3Rpb25f
YWNjZXNzb3JzKTsKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKHRkVGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgJnRhYmxlY2VsbF9hY2Nlc3NvcnMpOwotICAgICAgICBhY2Nlc3Nvck1hcC5hZGQodGV4
dGFyZWFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmdGV4dEFyZWFfYWNjZXNzb3JzKTsKICAgICAg
ICAgYWNjZXNzb3JNYXAuYWRkKHRoVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJnRhYmxlY2VsbF9h
Y2Nlc3NvcnMpOwogICAgICAgICBhY2Nlc3Nvck1hcC5hZGQodGhlYWRUYWcubG9jYWxOYW1lKCku
aW1wbCgpLCAmdGFibGVzZWN0aW9uX2FjY2Vzc29ycyk7CiAgICAgICAgIGFjY2Vzc29yTWFwLmFk
ZCh0Zm9vdFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZ0YWJsZXNlY3Rpb25fYWNjZXNzb3JzKTsK
QEAgLTcyNyw0NCArNjk4LDEwIEBAIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyogSlNI
VE1MRWwKIEBiZWdpbiBIVE1MSHRtbEVsZW1lbnRUYWJsZSAxCiAgIHZlcnNpb24gICAgICAgS0pT
OjpKU0hUTUxFbGVtZW50OjpIdG1sVmVyc2lvbiAgIERvbnREZWxldGUKIEBlbmQKLUBiZWdpbiBI
VE1MSGVhZEVsZW1lbnRUYWJsZSAxCi0gIHByb2ZpbGUgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50
OjpIZWFkUHJvZmlsZSAgIERvbnREZWxldGUKLUBlbmQKLUBiZWdpbiBIVE1MTGlua0VsZW1lbnRU
YWJsZSAxMQotICBkaXNhYmxlZCAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6TGlua0Rpc2FibGVk
ICBEb250RGVsZXRlCi0gIGNoYXJzZXQgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpMaW5rQ2hh
cnNldCAgIERvbnREZWxldGUKLSAgaHJlZiAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6Okxp
bmtIcmVmICAgICAgRG9udERlbGV0ZQotICBocmVmbGFuZyAgICAgIEtKUzo6SlNIVE1MRWxlbWVu
dDo6TGlua0hyZWZMYW5nICBEb250RGVsZXRlCi0gIG1lZGlhICAgICAgICAgS0pTOjpKU0hUTUxF
bGVtZW50OjpMaW5rTWVkaWEgICAgIERvbnREZWxldGUKLSAgcmVsICAgICAgICAgICBLSlM6OkpT
SFRNTEVsZW1lbnQ6OkxpbmtSZWwgICAgICAgRG9udERlbGV0ZQotICByZXYgICAgICAgICAgIEtK
Uzo6SlNIVE1MRWxlbWVudDo6TGlua1JldiAgICAgICBEb250RGVsZXRlCi0gIHRhcmdldCAgICAg
ICAgS0pTOjpKU0hUTUxFbGVtZW50OjpMaW5rVGFyZ2V0ICAgIERvbnREZWxldGUKLSAgdHlwZSAg
ICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkxpbmtUeXBlICAgICAgRG9udERlbGV0ZQotICBz
aGVldCAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6TGlua1NoZWV0ICAgICBEb250RGVsZXRl
fFJlYWRPbmx5Ci1AZW5kCi1AYmVnaW4gSFRNTFRpdGxlRWxlbWVudFRhYmxlIDEKLSAgdGV4dCAg
ICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OlRpdGxlVGV4dCAgICAgRG9udERlbGV0ZQotQGVu
ZAotQGJlZ2luIEhUTUxNZXRhRWxlbWVudFRhYmxlIDQKLSAgY29udGVudCAgICAgICBLSlM6OkpT
SFRNTEVsZW1lbnQ6Ok1ldGFDb250ZW50ICAgRG9udERlbGV0ZQotICBodHRwRXF1aXYgICAgIEtK
Uzo6SlNIVE1MRWxlbWVudDo6TWV0YUh0dHBFcXVpdiBEb250RGVsZXRlCi0gIG5hbWUgICAgICAg
ICAgS0pTOjpKU0hUTUxFbGVtZW50OjpNZXRhTmFtZSAgICAgIERvbnREZWxldGUKLSAgc2NoZW1l
ICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6Ok1ldGFTY2hlbWUgICAgRG9udERlbGV0ZQotQGVu
ZAotQGJlZ2luIEhUTUxCYXNlRWxlbWVudFRhYmxlIDIKLSAgaHJlZiAgICAgICAgICBLSlM6OkpT
SFRNTEVsZW1lbnQ6OkJhc2VIcmVmICAgICAgRG9udERlbGV0ZQotICB0YXJnZXQgICAgICAgIEtK
Uzo6SlNIVE1MRWxlbWVudDo6QmFzZVRhcmdldCAgICBEb250RGVsZXRlCi1AZW5kCiBAYmVnaW4g
SFRNTElzSW5kZXhFbGVtZW50VGFibGUgMgogICBmb3JtICAgICAgICAgIEtKUzo6SlNIVE1MRWxl
bWVudDo6SXNJbmRleEZvcm0gICBEb250RGVsZXRlfFJlYWRPbmx5CiAgIHByb21wdCAgICAgICAg
S0pTOjpKU0hUTUxFbGVtZW50OjpJc0luZGV4UHJvbXB0IERvbnREZWxldGUKIEBlbmQKLUBiZWdp
biBIVE1MU3R5bGVFbGVtZW50VGFibGUgNAotICBkaXNhYmxlZCAgICAgIEtKUzo6SlNIVE1MRWxl
bWVudDo6U3R5bGVEaXNhYmxlZCBEb250RGVsZXRlCi0gIG1lZGlhICAgICAgICAgS0pTOjpKU0hU
TUxFbGVtZW50OjpTdHlsZU1lZGlhICAgIERvbnREZWxldGUKLSAgdHlwZSAgICAgICAgICBLSlM6
OkpTSFRNTEVsZW1lbnQ6OlN0eWxlVHlwZSAgICAgRG9udERlbGV0ZQotICBzaGVldCAgICAgICAg
IEtKUzo6SlNIVE1MRWxlbWVudDo6U3R5bGVTaGVldCAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci1A
ZW5kCiBAYmVnaW4gSFRNTEJvZHlFbGVtZW50VGFibGUgMTAKICAgYUxpbmsgICAgICAgICBLSlM6
OkpTSFRNTEVsZW1lbnQ6OkJvZHlBTGluayAgICAgRG9udERlbGV0ZQogICBiYWNrZ3JvdW5kICAg
IEtKUzo6SlNIVE1MRWxlbWVudDo6Qm9keUJhY2tncm91bmQgICAgICAgIERvbnREZWxldGUKQEAg
LTgwOCw3OCArNzQ1LDYgQEAgY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzKiBKU0hUTUxF
bAogICBibHVyICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6U2VsZWN0Qmx1ciAgICBEb250
RGVsZXRlfEZ1bmN0aW9uIDAKICAgZm9jdXMgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OlNl
bGVjdEZvY3VzICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCiBAZW5kCi1AYmVnaW4gSFRNTE9wdEdy
b3VwRWxlbWVudFRhYmxlIDIKLSAgZGlzYWJsZWQgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6Ok9w
dEdyb3VwRGlzYWJsZWQgICAgICBEb250RGVsZXRlCi0gIGxhYmVsICAgICAgICAgS0pTOjpKU0hU
TUxFbGVtZW50OjpPcHRHcm91cExhYmVsICAgICAgICAgRG9udERlbGV0ZQotQGVuZAotQGJlZ2lu
IEhUTUxPcHRpb25FbGVtZW50VGFibGUgOAotICBmb3JtICAgICAgICAgIEtKUzo6SlNIVE1MRWxl
bWVudDo6T3B0aW9uRm9ybSAgICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgZGVmYXVs
dFNlbGVjdGVkIEtKUzo6SlNIVE1MRWxlbWVudDo6T3B0aW9uRGVmYXVsdFNlbGVjdGVkICAgICAg
IERvbnREZWxldGUKLSAgdGV4dCAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6Ok9wdGlvblRl
eHQgICAgICAgICAgICBEb250RGVsZXRlCi0gIGluZGV4ICAgICAgICAgS0pTOjpKU0hUTUxFbGVt
ZW50OjpPcHRpb25JbmRleCAgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICBkaXNhYmxl
ZCAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6T3B0aW9uRGlzYWJsZWQgICAgICAgIERvbnREZWxl
dGUKLSAgbGFiZWwgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6Ok9wdGlvbkxhYmVsICAgICAg
ICAgICBEb250RGVsZXRlCi0gIHNlbGVjdGVkICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpPcHRp
b25TZWxlY3RlZCAgICAgICAgRG9udERlbGV0ZQotICB2YWx1ZSAgICAgICAgIEtKUzo6SlNIVE1M
RWxlbWVudDo6T3B0aW9uVmFsdWUgICAgICAgICAgIERvbnREZWxldGUKLUBlbmQKLUBiZWdpbiBI
VE1MSW5wdXRFbGVtZW50VGFibGUgMjQKLSAgZGVmYXVsdFZhbHVlICBLSlM6OkpTSFRNTEVsZW1l
bnQ6OklucHV0RGVmYXVsdFZhbHVlICAgICBEb250RGVsZXRlCi0gIGRlZmF1bHRDaGVja2VkIEtK
Uzo6SlNIVE1MRWxlbWVudDo6SW5wdXREZWZhdWx0Q2hlY2tlZCAgRG9udERlbGV0ZQotICBmb3Jt
ICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRGb3JtICAgICAgICAgICAgIERvbnRE
ZWxldGV8UmVhZE9ubHkKLSAgYWNjZXB0ICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0
QWNjZXB0ICAgICAgICAgICBEb250RGVsZXRlCi0gIGFjY2Vzc0tleSAgICAgS0pTOjpKU0hUTUxF
bGVtZW50OjpJbnB1dEFjY2Vzc0tleSAgICAgICAgRG9udERlbGV0ZQotICBhbGlnbiAgICAgICAg
IEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRBbGlnbiAgICAgICAgICAgIERvbnREZWxldGUKLSAg
YWx0ICAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0QWx0ICAgICAgICAgICAgICBE
b250RGVsZXRlCi0gIGNoZWNrZWQgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dENoZWNr
ZWQgICAgICAgICAgRG9udERlbGV0ZQotICBkaXNhYmxlZCAgICAgIEtKUzo6SlNIVE1MRWxlbWVu
dDo6SW5wdXREaXNhYmxlZCAgICAgICAgIERvbnREZWxldGUKLSAgaW5kZXRlcm1pbmF0ZSBLSlM6
OkpTSFRNTEVsZW1lbnQ6OklucHV0SW5kZXRlcm1pbmF0ZSAgICBEb250RGVsZXRlCi0gIG1heExl
bmd0aCAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dE1heExlbmd0aCAgICAgICAgRG9udERl
bGV0ZQotICBuYW1lICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXROYW1lICAgICAg
ICAgICAgIERvbnREZWxldGUKLSAgcmVhZE9ubHkgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6Oklu
cHV0UmVhZE9ubHkgICAgICAgICBEb250RGVsZXRlCi0gIHNlbGVjdGlvblN0YXJ0ICAgICAgICBL
SlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0U2VsZWN0aW9uU3RhcnQgICBEb250RGVsZXRlCi0gIHNl
bGVjdGlvbkVuZCAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dFNlbGVjdGlvbkVuZCAgICAgRG9u
dERlbGV0ZQotICBzaXplICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRTaXplICAg
ICAgICAgICAgIERvbnREZWxldGUKLSAgc3JjICAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6
OklucHV0U3JjICAgICAgICAgICAgICBEb250RGVsZXRlCi0gIHRhYkluZGV4ICAgICAgS0pTOjpK
U0hUTUxFbGVtZW50OjpJbnB1dFRhYkluZGV4ICAgICAgICAgRG9udERlbGV0ZQotICB0eXBlICAg
ICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRUeXBlICAgICAgICAgICAgIERvbnREZWxl
dGUKLSAgdXNlTWFwICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0VXNlTWFwICAgICAg
ICAgICBEb250RGVsZXRlCi0gIHZhbHVlICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1
dFZhbHVlICAgICAgICAgICAgRG9udERlbGV0ZQotICBibHVyICAgICAgICAgIEtKUzo6SlNIVE1M
RWxlbWVudDo6SW5wdXRCbHVyICAgICAgICAgICAgIERvbnREZWxldGV8RnVuY3Rpb24gMAotICBm
b2N1cyAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRGb2N1cyAgICAgICAgICAgIERv
bnREZWxldGV8RnVuY3Rpb24gMAotICBzZWxlY3QgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6
SW5wdXRTZWxlY3QgICAgICAgICAgIERvbnREZWxldGV8RnVuY3Rpb24gMAotICBjbGljayAgICAg
ICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRDbGljayAgICAgICAgICAgIERvbnREZWxldGV8
RnVuY3Rpb24gMAotICBzZXRTZWxlY3Rpb25SYW5nZSAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJ
bnB1dFNldFNlbGVjdGlvblJhbmdlICAgICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDIKLUBlbmQK
LUBiZWdpbiBIVE1MVGV4dEFyZWFFbGVtZW50VGFibGUgMTcKLSAgZGVmYXVsdFZhbHVlICBLSlM6
OkpTSFRNTEVsZW1lbnQ6OlRleHRBcmVhRGVmYXVsdFZhbHVlICBEb250RGVsZXRlCi0gIGZvcm0g
ICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0QXJlYUZvcm0gICAgICAgICAgRG9udERl
bGV0ZXxSZWFkT25seQotICBhY2Nlc3NLZXkgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6VGV4dEFy
ZWFBY2Nlc3NLZXkgICAgIERvbnREZWxldGUKLSAgY29scyAgICAgICAgICBLSlM6OkpTSFRNTEVs
ZW1lbnQ6OlRleHRBcmVhQ29scyAgICAgICAgICBEb250RGVsZXRlCi0gIGRpc2FibGVkICAgICAg
S0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0QXJlYURpc2FibGVkICAgICAgRG9udERlbGV0ZQotICBu
YW1lICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6VGV4dEFyZWFOYW1lICAgICAgICAgIERv
bnREZWxldGUKLSAgcmVhZE9ubHkgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OlRleHRBcmVhUmVh
ZE9ubHkgICAgICBEb250RGVsZXRlCi0gIHJvd3MgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50
OjpUZXh0QXJlYVJvd3MgICAgICAgICAgRG9udERlbGV0ZQotICBzZWxlY3Rpb25TdGFydCAgICAg
ICAgS0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0QXJlYVNlbGVjdGlvblN0YXJ0ICAgICAgICBEb250
RGVsZXRlCi0gIHNlbGVjdGlvbkVuZCAgS0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0QXJlYVNlbGVj
dGlvbkVuZCAgRG9udERlbGV0ZQotICB0YWJJbmRleCAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6
VGV4dEFyZWFUYWJJbmRleCAgICAgIERvbnREZWxldGUKLSAgdHlwZSAgICAgICAgICBLSlM6OkpT
SFRNTEVsZW1lbnQ6OlRleHRBcmVhVHlwZSAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0g
IHZhbHVlICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0QXJlYVZhbHVlICAgICAgICAg
RG9udERlbGV0ZQotICBibHVyICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6VGV4dEFyZWFC
bHVyICAgICAgICAgIERvbnREZWxldGV8RnVuY3Rpb24gMAotICBmb2N1cyAgICAgICAgIEtKUzo6
SlNIVE1MRWxlbWVudDo6VGV4dEFyZWFGb2N1cyAgICAgICAgIERvbnREZWxldGV8RnVuY3Rpb24g
MAotICBzZWxlY3QgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6VGV4dEFyZWFTZWxlY3QgICAg
ICAgIERvbnREZWxldGV8RnVuY3Rpb24gMAotICBzZXRTZWxlY3Rpb25SYW5nZSAgICAgS0pTOjpK
U0hUTUxFbGVtZW50OjpUZXh0QXJlYVNldFNlbGVjdGlvblJhbmdlICAgICBEb250RGVsZXRlfEZ1
bmN0aW9uIDIKLUBlbmQKLUBiZWdpbiBIVE1MQnV0dG9uRWxlbWVudFRhYmxlIDcKLSAgZm9ybSAg
ICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkJ1dHRvbkZvcm0gICAgICAgICAgICBEb250RGVs
ZXRlfFJlYWRPbmx5Ci0gIGFjY2Vzc0tleSAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpCdXR0b25B
Y2Nlc3NLZXkgICAgICAgRG9udERlbGV0ZQotICBkaXNhYmxlZCAgICAgIEtKUzo6SlNIVE1MRWxl
bWVudDo6QnV0dG9uRGlzYWJsZWQgICAgICAgIERvbnREZWxldGUKLSAgbmFtZSAgICAgICAgICBL
SlM6OkpTSFRNTEVsZW1lbnQ6OkJ1dHRvbk5hbWUgICAgICAgICAgICBEb250RGVsZXRlCi0gIHRh
YkluZGV4ICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpCdXR0b25UYWJJbmRleCAgICAgICAgRG9u
dERlbGV0ZQotICB0eXBlICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6QnV0dG9uVHlwZSAg
ICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgdmFsdWUgICAgICAgICBLSlM6OkpTSFRN
TEVsZW1lbnQ6OkJ1dHRvblZhbHVlICAgICAgICAgICBEb250RGVsZXRlCi0gIGJsdXIgICAgICAg
ICAgS0pTOjpKU0hUTUxFbGVtZW50OjpCdXR0b25CbHVyICAgICAgICAgICAgRG9udERlbGV0ZXxG
dW5jdGlvbiAwCi0gIGZvY3VzICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpCdXR0b25Gb2N1
cyAgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi1AZW5kCiBAYmVnaW4gSFRNTExhYmVs
RWxlbWVudFRhYmxlIDQKICAgZm9ybSAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkxhYmVs
Rm9ybSAgICAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5CiAgIGFjY2Vzc0tleSAgICAgS0pT
OjpKU0hUTUxFbGVtZW50OjpMYWJlbEFjY2Vzc0tleSAgICAgICAgRG9udERlbGV0ZQpAQCAtMTMx
NCwyNyArMTE3OSwxMSBAQCBib29sIEpTSFRNTEVsZW1lbnQ6OmdldE93blByb3BlcnR5U2xvdChF
CiAgICAgY29uc3QgSGFzaFRhYmxlKiB0YWJsZSA9IGNsYXNzSW5mbygpLT5wcm9wSGFzaFRhYmxl
OyAvLyBnZXQgdGhlIHJpZ2h0IGhhc2h0YWJsZQogICAgIGNvbnN0IEhhc2hFbnRyeSogZW50cnkg
PSBMb29rdXA6OmZpbmRFbnRyeSh0YWJsZSwgcHJvcGVydHlOYW1lKTsKICAgICBpZiAoZW50cnkp
IHsKLSAgICAgICAgLy8gZG9uJ3QgZXhwb3NlIHNlbGVjdGlvbiBwcm9wZXJ0aWVzIGZvciBpbnB1
dCB0eXBlcyB0aGF0IGNhbid0IGhhdmUgYSBzZWxlY3Rpb24KLSAgICAgICAgaWYgKGVsZW1lbnQu
aGFzTG9jYWxOYW1lKGlucHV0VGFnKSAmJiAhc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+
KGltcGwoKSktPmNhbkhhdmVTZWxlY3Rpb24oKSkgewotICAgICAgICAgICAgc3dpdGNoIChlbnRy
eS0+dmFsdWUpIHsKLSAgICAgICAgICAgIGNhc2UgSW5wdXRTZXRTZWxlY3Rpb25SYW5nZToKLSAg
ICAgICAgICAgIGNhc2UgSW5wdXRTZWxlY3Rpb25TdGFydDoKLSAgICAgICAgICAgIGNhc2UgSW5w
dXRTZWxlY3Rpb25FbmQ6Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBkZWZh
dWx0OgotICAgICAgICAgICAgICAgIGlmIChlbnRyeS0+YXR0ciAmIEZ1bmN0aW9uKQotICAgICAg
ICAgICAgICAgICAgICBzbG90LnNldFN0YXRpY0VudHJ5KHRoaXMsIGVudHJ5LCBzdGF0aWNGdW5j
dGlvbkdldHRlcjxIVE1MRWxlbWVudEZ1bmN0aW9uPik7IAotICAgICAgICAgICAgICAgIGVsc2UK
LSAgICAgICAgICAgICAgICAgICAgc2xvdC5zZXRTdGF0aWNFbnRyeSh0aGlzLCBlbnRyeSwgc3Rh
dGljVmFsdWVHZXR0ZXI8SlNIVE1MRWxlbWVudD4pOwotICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKGVu
dHJ5LT5hdHRyICYgRnVuY3Rpb24pCi0gICAgICAgICAgICAgICAgc2xvdC5zZXRTdGF0aWNFbnRy
eSh0aGlzLCBlbnRyeSwgc3RhdGljRnVuY3Rpb25HZXR0ZXI8SFRNTEVsZW1lbnRGdW5jdGlvbj4p
OyAKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzbG90LnNldFN0YXRpY0VudHJ5
KHRoaXMsIGVudHJ5LCBzdGF0aWNWYWx1ZUdldHRlcjxKU0hUTUxFbGVtZW50Pik7Ci0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQorICAgICAgICBpZiAoZW50cnktPmF0dHIgJiBG
dW5jdGlvbikKKyAgICAgICAgICAgIHNsb3Quc2V0U3RhdGljRW50cnkodGhpcywgZW50cnksIHN0
YXRpY0Z1bmN0aW9uR2V0dGVyPEhUTUxFbGVtZW50RnVuY3Rpb24+KTsgCisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHNsb3Quc2V0U3RhdGljRW50cnkodGhpcywgZW50cnksIHN0YXRpY1ZhbHVl
R2V0dGVyPEpTSFRNTEVsZW1lbnQ+KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCiAg
ICAgLy8gQmFzZSBKU0hUTUxFbGVtZW50IHN0dWZmIG9yIHBhcmVudCBjbGFzcyBmb3J3YXJkLCBh
cyB1c3VhbApAQCAtMTQ0NywxMTEgKzEyOTYsNiBAQCBKU1ZhbHVlICpKU0hUTUxFbGVtZW50Ojpz
ZWxlY3RHZXR0ZXIoRXhlCiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKLUpTVmFsdWUg
KkpTSFRNTEVsZW1lbnQ6Om9wdEdyb3VwR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2Vu
KSBjb25zdAotewotICAgIEhUTUxPcHRHcm91cEVsZW1lbnQmIG9wdGdyb3VwID0gKnN0YXRpY19j
YXN0PEhUTUxPcHRHcm91cEVsZW1lbnQqPihpbXBsKCkpOwotICAgIHN3aXRjaCAodG9rZW4pIHsK
LSAgICAgICAgY2FzZSBPcHRHcm91cERpc2FibGVkOiAgICAgICAgcmV0dXJuIGpzQm9vbGVhbihv
cHRncm91cC5kaXNhYmxlZCgpKTsKLSAgICAgICAgY2FzZSBPcHRHcm91cExhYmVsOiAgICAgICAg
ICAgcmV0dXJuIGpzU3RyaW5nKG9wdGdyb3VwLmxhYmVsKCkpOwotICAgIH0KLSAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKLX0KLQotSlNWYWx1ZSAqSlNIVE1MRWxlbWVudDo6b3B0aW9uR2V0dGVy
KEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdAotewotICAgIEhUTUxPcHRpb25FbGVt
ZW50JiBvcHRpb24gPSAqc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihpbXBsKCkpOwot
ICAgIHN3aXRjaCAodG9rZW4pIHsKLSAgICAgICAgY2FzZSBPcHRpb25Gb3JtOiAgICAgICAgICAg
IHJldHVybiB0b0pTKGV4ZWMsb3B0aW9uLmZvcm0oKSk7IC8vIHR5cGUgSFRNTEZvcm1FbGVtZW50
Ci0gICAgICAgIGNhc2UgT3B0aW9uRGVmYXVsdFNlbGVjdGVkOiByZXR1cm4ganNCb29sZWFuKG9w
dGlvbi5kZWZhdWx0U2VsZWN0ZWQoKSk7Ci0gICAgICAgIGNhc2UgT3B0aW9uVGV4dDogICAgICAg
ICAgICByZXR1cm4ganNTdHJpbmcob3B0aW9uLnRleHQoKSk7Ci0gICAgICAgIGNhc2UgT3B0aW9u
SW5kZXg6ICAgICAgICAgICByZXR1cm4ganNOdW1iZXIob3B0aW9uLmluZGV4KCkpOwotICAgICAg
ICBjYXNlIE9wdGlvbkRpc2FibGVkOiAgICAgICAgcmV0dXJuIGpzQm9vbGVhbihvcHRpb24uZGlz
YWJsZWQoKSk7Ci0gICAgICAgIGNhc2UgT3B0aW9uTGFiZWw6ICAgICAgICAgICByZXR1cm4ganNT
dHJpbmcob3B0aW9uLmxhYmVsKCkpOwotICAgICAgICBjYXNlIE9wdGlvblNlbGVjdGVkOiAgICAg
ICAgcmV0dXJuIGpzQm9vbGVhbihvcHRpb24uc2VsZWN0ZWQoKSk7Ci0gICAgICAgIGNhc2UgT3B0
aW9uVmFsdWU6ICAgICAgICAgICByZXR1cm4ganNTdHJpbmcob3B0aW9uLnZhbHVlKCkpOwotICAg
IH0KLSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLX0KLQotc3RhdGljIEpTVmFsdWUgKmdldElu
cHV0U2VsZWN0aW9uU3RhcnQoSFRNTElucHV0RWxlbWVudCAmaW5wdXQpCi17Ci0gICAgaWYgKGlu
cHV0LmNhbkhhdmVTZWxlY3Rpb24oKSkKLSAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGlucHV0LnNl
bGVjdGlvblN0YXJ0KCkpOwotICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotfQotCi1zdGF0aWMg
SlNWYWx1ZSAqZ2V0SW5wdXRTZWxlY3Rpb25FbmQoSFRNTElucHV0RWxlbWVudCAmaW5wdXQpCi17
Ci0gICAgaWYgKGlucHV0LmNhbkhhdmVTZWxlY3Rpb24oKSkKLSAgICAgICAgcmV0dXJuIGpzTnVt
YmVyKGlucHV0LnNlbGVjdGlvbkVuZCgpKTsKLSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLX0K
LQotSlNWYWx1ZSAqSlNIVE1MRWxlbWVudDo6aW5wdXRHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBp
bnQgdG9rZW4pIGNvbnN0Ci17Ci0gICAgSFRNTElucHV0RWxlbWVudCYgaW5wdXQgPSAqc3RhdGlj
X2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGltcGwoKSk7Ci0gICAgc3dpdGNoICh0b2tlbikgewot
ICAgICAgICBjYXNlIElucHV0RGVmYXVsdFZhbHVlOiAgICByZXR1cm4ganNTdHJpbmcoaW5wdXQu
ZGVmYXVsdFZhbHVlKCkpOwotICAgICAgICBjYXNlIElucHV0RGVmYXVsdENoZWNrZWQ6ICByZXR1
cm4ganNCb29sZWFuKGlucHV0LmRlZmF1bHRDaGVja2VkKCkpOwotICAgICAgICBjYXNlIElucHV0
Rm9ybTogICAgICAgICAgICByZXR1cm4gdG9KUyhleGVjLGlucHV0LmZvcm0oKSk7IC8vIHR5cGUg
SFRNTEZvcm1FbGVtZW50Ci0gICAgICAgIGNhc2UgSW5wdXRBY2NlcHQ6ICAgICAgICAgIHJldHVy
biBqc1N0cmluZyhpbnB1dC5hY2NlcHQoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXRBY2Nlc3NLZXk6
ICAgICAgIHJldHVybiBqc1N0cmluZyhpbnB1dC5hY2Nlc3NLZXkoKSk7Ci0gICAgICAgIGNhc2Ug
SW5wdXRBbGlnbjogICAgICAgICAgIHJldHVybiBqc1N0cmluZyhpbnB1dC5hbGlnbigpKTsKLSAg
ICAgICAgY2FzZSBJbnB1dEFsdDogICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGlucHV0LmFs
dCgpKTsKLSAgICAgICAgY2FzZSBJbnB1dENoZWNrZWQ6ICAgICAgICAgcmV0dXJuIGpzQm9vbGVh
bihpbnB1dC5jaGVja2VkKCkpOwotICAgICAgICBjYXNlIElucHV0RGlzYWJsZWQ6ICAgICAgICBy
ZXR1cm4ganNCb29sZWFuKGlucHV0LmRpc2FibGVkKCkpOwotICAgICAgICBjYXNlIElucHV0SW5k
ZXRlcm1pbmF0ZTogICByZXR1cm4ganNCb29sZWFuKGlucHV0LmluZGV0ZXJtaW5hdGUoKSk7Ci0g
ICAgICAgIGNhc2UgSW5wdXRNYXhMZW5ndGg6ICAgICAgIHJldHVybiBqc051bWJlcihpbnB1dC5t
YXhMZW5ndGgoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXROYW1lOiAgICAgICAgICAgIHJldHVybiBq
c1N0cmluZyhpbnB1dC5uYW1lKCkpOwotICAgICAgICBjYXNlIElucHV0UmVhZE9ubHk6ICAgICAg
ICByZXR1cm4ganNCb29sZWFuKGlucHV0LnJlYWRPbmx5KCkpOwotICAgICAgICBjYXNlIElucHV0
U2VsZWN0aW9uU3RhcnQ6ICByZXR1cm4gZ2V0SW5wdXRTZWxlY3Rpb25TdGFydChpbnB1dCk7Ci0g
ICAgICAgIGNhc2UgSW5wdXRTZWxlY3Rpb25FbmQ6ICAgIHJldHVybiBnZXRJbnB1dFNlbGVjdGlv
bkVuZChpbnB1dCk7Ci0gICAgICAgIGNhc2UgSW5wdXRTaXplOiAgICAgICAgICAgIHJldHVybiBq
c051bWJlcihpbnB1dC5zaXplKCkpOwotICAgICAgICBjYXNlIElucHV0U3JjOiAgICAgICAgICAg
ICByZXR1cm4ganNTdHJpbmcoaW5wdXQuc3JjKCkpOwotICAgICAgICBjYXNlIElucHV0VGFiSW5k
ZXg6ICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5wdXQudGFiSW5kZXgoKSk7Ci0gICAgICAgIGNh
c2UgSW5wdXRUeXBlOiAgICAgICAgICAgIHJldHVybiBqc1N0cmluZyhpbnB1dC50eXBlKCkpOwot
ICAgICAgICBjYXNlIElucHV0VXNlTWFwOiAgICAgICAgICByZXR1cm4ganNTdHJpbmcoaW5wdXQu
dXNlTWFwKCkpOwotICAgICAgICBjYXNlIElucHV0VmFsdWU6ICAgICAgICAgICByZXR1cm4ganNT
dHJpbmcoaW5wdXQudmFsdWUoKSk7Ci0gICAgfQotICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwot
fQotCi1KU1ZhbHVlICpKU0hUTUxFbGVtZW50Ojp0ZXh0QXJlYUdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIGludCB0b2tlbikgY29uc3QKLXsKLSAgICBIVE1MVGV4dEFyZWFFbGVtZW50JiB0ZXh0YXJl
YSA9ICpzdGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Kj4oaW1wbCgpKTsKLSAgICBzd2l0
Y2ggKHRva2VuKSB7Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFEZWZhdWx0VmFsdWU6ICAgIHJldHVy
biBqc1N0cmluZyh0ZXh0YXJlYS5kZWZhdWx0VmFsdWUoKSk7Ci0gICAgICAgIGNhc2UgVGV4dEFy
ZWFGb3JtOiAgICAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsdGV4dGFyZWEuZm9ybSgpKTsgLy8g
dHlwZSBIVE1MRm9ybUVsZW1lbnQKLSAgICAgICAgY2FzZSBUZXh0QXJlYUFjY2Vzc0tleTogICAg
ICAgcmV0dXJuIGpzU3RyaW5nKHRleHRhcmVhLmFjY2Vzc0tleSgpKTsKLSAgICAgICAgY2FzZSBU
ZXh0QXJlYUNvbHM6ICAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKHRleHRhcmVhLmNvbHMoKSk7
Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFEaXNhYmxlZDogICAgICAgIHJldHVybiBqc0Jvb2xlYW4o
dGV4dGFyZWEuZGlzYWJsZWQoKSk7Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFOYW1lOiAgICAgICAg
ICAgIHJldHVybiBqc1N0cmluZyh0ZXh0YXJlYS5uYW1lKCkpOwotICAgICAgICBjYXNlIFRleHRB
cmVhUmVhZE9ubHk6ICAgICAgICByZXR1cm4ganNCb29sZWFuKHRleHRhcmVhLnJlYWRPbmx5KCkp
OwotICAgICAgICBjYXNlIFRleHRBcmVhUm93czogICAgICAgICAgICByZXR1cm4ganNOdW1iZXIo
dGV4dGFyZWEucm93cygpKTsKLSAgICAgICAgY2FzZSBUZXh0QXJlYVNlbGVjdGlvblN0YXJ0OiAg
cmV0dXJuIGpzTnVtYmVyKHRleHRhcmVhLnNlbGVjdGlvblN0YXJ0KCkpOwotICAgICAgICBjYXNl
IFRleHRBcmVhU2VsZWN0aW9uRW5kOiAgICByZXR1cm4ganNOdW1iZXIodGV4dGFyZWEuc2VsZWN0
aW9uRW5kKCkpOwotICAgICAgICBjYXNlIFRleHRBcmVhVGFiSW5kZXg6ICAgICAgICByZXR1cm4g
anNOdW1iZXIodGV4dGFyZWEudGFiSW5kZXgoKSk7Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFUeXBl
OiAgICAgICAgICAgIHJldHVybiBqc1N0cmluZyh0ZXh0YXJlYS50eXBlKCkpOwotICAgICAgICBj
YXNlIFRleHRBcmVhVmFsdWU6ICAgICAgICAgICByZXR1cm4ganNTdHJpbmcodGV4dGFyZWEudmFs
dWUoKSk7Ci0gICAgfQotICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotfQotCi1KU1ZhbHVlICpK
U0hUTUxFbGVtZW50OjpidXR0b25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNv
bnN0Ci17Ci0gICAgSFRNTEJ1dHRvbkVsZW1lbnQmIGJ1dHRvbiA9ICpzdGF0aWNfY2FzdDxIVE1M
QnV0dG9uRWxlbWVudCo+KGltcGwoKSk7Ci0gICAgc3dpdGNoICh0b2tlbikgewotICAgICAgICBj
YXNlIEJ1dHRvbkZvcm06ICAgICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYyxidXR0b24uZm9ybSgp
KTsgLy8gdHlwZSBIVE1MRm9ybUVsZW1lbnQKLSAgICAgICAgY2FzZSBCdXR0b25BY2Nlc3NLZXk6
ICAgICAgIHJldHVybiBqc1N0cmluZyhidXR0b24uYWNjZXNzS2V5KCkpOwotICAgICAgICBjYXNl
IEJ1dHRvbkRpc2FibGVkOiAgICAgICAgcmV0dXJuIGpzQm9vbGVhbihidXR0b24uZGlzYWJsZWQo
KSk7Ci0gICAgICAgIGNhc2UgQnV0dG9uTmFtZTogICAgICAgICAgICByZXR1cm4ganNTdHJpbmco
YnV0dG9uLm5hbWUoKSk7Ci0gICAgICAgIGNhc2UgQnV0dG9uVGFiSW5kZXg6ICAgICAgICByZXR1
cm4ganNOdW1iZXIoYnV0dG9uLnRhYkluZGV4KCkpOwotICAgICAgICBjYXNlIEJ1dHRvblR5cGU6
ICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGJ1dHRvbi50eXBlKCkpOwotICAgICAgICBjYXNl
IEJ1dHRvblZhbHVlOiAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGJ1dHRvbi52YWx1ZSgpKTsK
LSAgICB9Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0KIEpTVmFsdWUgKkpTSFRNTEVs
ZW1lbnQ6OmxhYmVsR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdAogewog
ICAgIEhUTUxMYWJlbEVsZW1lbnQmIGxhYmVsID0gKnN0YXRpY19jYXN0PEhUTUxMYWJlbEVsZW1l
bnQqPihpbXBsKCkpOwpAQCAtMjIyMCw0MCArMTk2NCw2IEBAIEpTVmFsdWUgKkhUTUxFbGVtZW50
RnVuY3Rpb246OmNhbGxBc0Z1bmMKICAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwog
ICAgICAgICB9CiAgICAgfQotICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzTG9jYWxOYW1lKGlucHV0
VGFnKSkgewotICAgICAgICBIVE1MSW5wdXRFbGVtZW50ICZpbnB1dCA9IHN0YXRpY19jYXN0PEhU
TUxJbnB1dEVsZW1lbnQgJj4oZWxlbWVudCk7Ci0gICAgICAgIGlmIChpZCA9PSBKU0hUTUxFbGVt
ZW50OjpJbnB1dEJsdXIpIHsKLSAgICAgICAgICAgIGlucHV0LmJsdXIoKTsKLSAgICAgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKGlkID09
IEpTSFRNTEVsZW1lbnQ6OklucHV0Rm9jdXMpIHsKLSAgICAgICAgICAgIGlucHV0LmZvY3VzKCk7
Ci0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAgICAgfQotICAgICAgICBl
bHNlIGlmIChpZCA9PSBKU0hUTUxFbGVtZW50OjpJbnB1dFNlbGVjdCkgewotICAgICAgICAgICAg
aW5wdXQuc2VsZWN0KCk7Ci0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAg
ICAgfQotICAgICAgICBlbHNlIGlmIChpZCA9PSBKU0hUTUxFbGVtZW50OjpJbnB1dENsaWNrKSB7
Ci0gICAgICAgICAgICBpbnB1dC5jbGljaygpOwotICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoaWQgPT0gSlNIVE1MRWxlbWVudDo6
SW5wdXRTZXRTZWxlY3Rpb25SYW5nZSkgewotICAgICAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9u
UmFuZ2UoYXJnc1swXS0+dG9JbnQzMihleGVjKSwgYXJnc1sxXS0+dG9JbnQzMihleGVjKSk7Ci0g
ICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBl
bHNlIGlmIChlbGVtZW50Lmhhc0xvY2FsTmFtZShidXR0b25UYWcpKSB7Ci0gICAgICAgIEhUTUxC
dXR0b25FbGVtZW50ICZidXR0b24gPSBzdGF0aWNfY2FzdDxIVE1MQnV0dG9uRWxlbWVudCAmPihl
bGVtZW50KTsKLSAgICAgICAgaWYgKGlkID09IEpTSFRNTEVsZW1lbnQ6OkJ1dHRvbkJsdXIpIHsK
LSAgICAgICAgICAgIGJ1dHRvbi5ibHVyKCk7Ci0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChpZCA9PSBKU0hUTUxFbGVtZW50OjpC
dXR0b25Gb2N1cykgewotICAgICAgICAgICAgYnV0dG9uLmZvY3VzKCk7Ci0gICAgICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAgICAgfQotICAgIH0KICAgICBlbHNlIGlmIChlbGVt
ZW50Lmhhc0xvY2FsTmFtZShsYWJlbFRhZykpIHsKICAgICAgICAgSFRNTExhYmVsRWxlbWVudCAm
bGFiZWwgPSBzdGF0aWNfY2FzdDxIVE1MTGFiZWxFbGVtZW50ICY+KGVsZW1lbnQpOwogICAgICAg
ICBpZiAoaWQgPT0gSlNIVE1MRWxlbWVudDo6TGFiZWxGb2N1cykgewpAQCAtMjI2OCwyNSArMTk3
OCw2IEBAIEpTVmFsdWUgKkhUTUxFbGVtZW50RnVuY3Rpb246OmNhbGxBc0Z1bmMKICAgICAgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgICAgICB9CiAgICAgfQotICAgIGVsc2UgaWYg
KGVsZW1lbnQuaGFzTG9jYWxOYW1lKHRleHRhcmVhVGFnKSkgewotICAgICAgICBIVE1MVGV4dEFy
ZWFFbGVtZW50ICZ0ZXh0YXJlYSA9IHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQgJj4o
ZWxlbWVudCk7Ci0gICAgICAgIGlmIChpZCA9PSBKU0hUTUxFbGVtZW50OjpUZXh0QXJlYUJsdXIp
IHsKLSAgICAgICAgICAgIHRleHRhcmVhLmJsdXIoKTsKLSAgICAgICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKGlkID09IEpTSFRNTEVsZW1l
bnQ6OlRleHRBcmVhRm9jdXMpIHsKLSAgICAgICAgICAgIHRleHRhcmVhLmZvY3VzKCk7Ci0gICAg
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAgICAgfQotICAgICAgICBlbHNlIGlm
IChpZCA9PSBKU0hUTUxFbGVtZW50OjpUZXh0QXJlYVNlbGVjdCkgewotICAgICAgICAgICAgdGV4
dGFyZWEuc2VsZWN0KCk7Ci0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICAg
ICAgfQotICAgICAgICBlbHNlIGlmIChpZCA9PSBKU0hUTUxFbGVtZW50OjpUZXh0QXJlYVNldFNl
bGVjdGlvblJhbmdlKSB7Ci0gICAgICAgICAgICB0ZXh0YXJlYS5zZXRTZWxlY3Rpb25SYW5nZShh
cmdzWzBdLT50b0ludDMyKGV4ZWMpLCBhcmdzWzFdLT50b0ludDMyKGV4ZWMpKTsKLSAgICAgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgfQogICAgIGVsc2UgaWYg
KGVsZW1lbnQuaGFzTG9jYWxOYW1lKGFUYWcpKSB7CiAgICAgICAgIEhUTUxBbmNob3JFbGVtZW50
ICZhbmNob3IgPSBzdGF0aWNfY2FzdDxIVE1MQW5jaG9yRWxlbWVudCAmPihlbGVtZW50KTsKICAg
ICAgICAgaWYgKGlkID09IEpTSFRNTEVsZW1lbnQ6OkFuY2hvckJsdXIpIHsKQEAgLTIzOTMsOCAr
MjA4NCw3IEBAIHZvaWQgSlNIVE1MRWxlbWVudDo6cHV0KEV4ZWNTdGF0ZSAqZXhlYywKICAgICAg
ICAgaWYgKGVudHJ5LT5hdHRyICYgRnVuY3Rpb24pIHsgLy8gZnVuY3Rpb246IHB1dCBhcyBvdmVy
cmlkZSBwcm9wZXJ0eQogICAgICAgICAgICAgSlNPYmplY3Q6OnB1dChleGVjLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlLCBhdHRyKTsKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAg
ICBlbHNlIGlmICghKGVudHJ5LT5hdHRyICYgUmVhZE9ubHkpKSB7IC8vIGxldCBsb29rdXBQdXQg
cHJpbnQgdGhlIHdhcm5pbmcgaWYgcmVhZC1vbmx5CisgICAgICAgIH0gZWxzZSBpZiAoIShlbnRy
eS0+YXR0ciAmIFJlYWRPbmx5KSkgeyAvLyBsZXQgbG9va3VwUHV0IHByaW50IHRoZSB3YXJuaW5n
IGlmIHJlYWQtb25seQogICAgICAgICAgICAgcHV0VmFsdWVQcm9wZXJ0eShleGVjLCBlbnRyeS0+
dmFsdWUsIHZhbHVlLCBhdHRyKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAt
MjQwNSw5ICsyMDk1LDkgQEAgdm9pZCBKU0hUTUxFbGVtZW50OjpwdXQoRXhlY1N0YXRlICpleGVj
LAogCiB2b2lkIEpTSFRNTEVsZW1lbnQ6Omh0bWxTZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBpbnQg
dG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIHN0cikKIHsKLSAg
ICBIVE1MSGVhZEVsZW1lbnQgJmhlYWQgPSAqc3RhdGljX2Nhc3Q8SFRNTEhlYWRFbGVtZW50Kj4o
aW1wbCgpKTsKLSAgICBpZiAodG9rZW4gPT0gSGVhZFByb2ZpbGUpIAotICAgICAgICBoZWFkLnNl
dFByb2ZpbGUoc3RyKTsKKyAgICBIVE1MSHRtbEVsZW1lbnQmIGh0bWwgPSAqc3RhdGljX2Nhc3Q8
SFRNTEh0bWxFbGVtZW50Kj4oaW1wbCgpKTsKKyAgICBpZiAodG9rZW4gPT0gSHRtbFZlcnNpb24p
CisgICAgICAgIGh0bWwuc2V0VmVyc2lvbihzdHIpOwogfQogCiB2b2lkIEpTSFRNTEVsZW1lbnQ6
OmlzSW5kZXhTZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVl
LCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIHN0cikKQEAgLTI0ODAsOTMgKzIxNzAsNiBAQCB2b2lk
IEpTSFRNTEVsZW1lbnQ6OnNlbGVjdFNldHRlcihFeGVjU3RhCiAgICAgfQogfQogCi12b2lkIEpT
SFRNTEVsZW1lbnQ6Om9wdEdyb3VwU2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuLCBK
U1ZhbHVlICp2YWx1ZSwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzdHIpCi17Ci0gICAgSFRNTE9w
dEdyb3VwRWxlbWVudCYgb3B0Z3JvdXAgPSAqc3RhdGljX2Nhc3Q8SFRNTE9wdEdyb3VwRWxlbWVu
dCo+KGltcGwoKSk7Ci0gICAgc3dpdGNoICh0b2tlbikgewotICAgICAgICBjYXNlIE9wdEdyb3Vw
RGlzYWJsZWQ6ICAgICAgICB7IG9wdGdyb3VwLnNldERpc2FibGVkKHZhbHVlLT50b0Jvb2xlYW4o
ZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBPcHRHcm91cExhYmVsOiAgICAgICAgICAg
eyBvcHRncm91cC5zZXRMYWJlbChzdHIpOyByZXR1cm47IH0KLSAgICB9Ci19Ci0KLXZvaWQgSlNI
VE1MRWxlbWVudDo6b3B0aW9uU2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuLCBKU1Zh
bHVlICp2YWx1ZSwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzdHIpCi17Ci0gICAgRE9NRXhjZXB0
aW9uVHJhbnNsYXRvciBleGNlcHRpb24oZXhlYyk7Ci0gICAgSFRNTE9wdGlvbkVsZW1lbnQmIG9w
dGlvbiA9ICpzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KGltcGwoKSk7Ci0gICAgc3dp
dGNoICh0b2tlbikgewotICAgICAgICAvLyByZWFkLW9ubHk6IGZvcm0KLSAgICAgICAgY2FzZSBP
cHRpb25EZWZhdWx0U2VsZWN0ZWQ6IHsgb3B0aW9uLnNldERlZmF1bHRTZWxlY3RlZCh2YWx1ZS0+
dG9Cb29sZWFuKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgT3B0aW9uVGV4dDogICAg
ICAgICAgICB7IG9wdGlvbi5zZXRUZXh0KHN0ciwgZXhjZXB0aW9uKTsgcmV0dXJuOyB9Ci0gICAg
ICAgIC8vIHJlYWQtb25seTogaW5kZXgKLSAgICAgICAgY2FzZSBPcHRpb25EaXNhYmxlZDogICAg
ICAgIHsgb3B0aW9uLnNldERpc2FibGVkKHZhbHVlLT50b0Jvb2xlYW4oZXhlYykpOyByZXR1cm47
IH0KLSAgICAgICAgY2FzZSBPcHRpb25MYWJlbDogICAgICAgICAgIHsgb3B0aW9uLnNldExhYmVs
KHN0cik7IHJldHVybjsgfQotICAgICAgICBjYXNlIE9wdGlvblNlbGVjdGVkOiAgICAgICAgeyBv
cHRpb24uc2V0U2VsZWN0ZWQodmFsdWUtPnRvQm9vbGVhbihleGVjKSk7IHJldHVybjsgfQotICAg
ICAgICBjYXNlIE9wdGlvblZhbHVlOiAgICAgICAgICAgeyBvcHRpb24uc2V0VmFsdWUoc3RyKTsg
cmV0dXJuOyB9Ci0gICAgfQotfQotCi12b2lkIEpTSFRNTEVsZW1lbnQ6OmlucHV0U2V0dGVyKEV4
ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuLCBKU1ZhbHVlICp2YWx1ZSwgY29uc3QgV2ViQ29yZTo6
U3RyaW5nJiBzdHIpCi17Ci0gICAgSFRNTElucHV0RWxlbWVudCYgaW5wdXQgPSAqc3RhdGljX2Nh
c3Q8SFRNTElucHV0RWxlbWVudCo+KGltcGwoKSk7Ci0gICAgc3dpdGNoICh0b2tlbikgewotICAg
ICAgICBjYXNlIElucHV0RGVmYXVsdFZhbHVlOiAgICB7IGlucHV0LnNldERlZmF1bHRWYWx1ZShz
dHIpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBJbnB1dERlZmF1bHRDaGVja2VkOiAgeyBpbnB1
dC5zZXREZWZhdWx0Q2hlY2tlZCh2YWx1ZS0+dG9Cb29sZWFuKGV4ZWMpKTsgcmV0dXJuOyB9Ci0g
ICAgICAgIC8vIHJlYWQtb25seTogZm9ybQotICAgICAgICBjYXNlIElucHV0QWNjZXB0OiAgICAg
ICAgICB7IGlucHV0LnNldEFjY2VwdChzdHIpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBJbnB1
dEFjY2Vzc0tleTogICAgICAgeyBpbnB1dC5zZXRBY2Nlc3NLZXkoc3RyKTsgcmV0dXJuOyB9Ci0g
ICAgICAgIGNhc2UgSW5wdXRBbGlnbjogICAgICAgICAgIHsgaW5wdXQuc2V0QWxpZ24oc3RyKTsg
cmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSW5wdXRBbHQ6ICAgICAgICAgICAgIHsgaW5wdXQuc2V0
QWx0KHN0cik7IHJldHVybjsgfQotICAgICAgICBjYXNlIElucHV0Q2hlY2tlZDogICAgICAgICB7
IGlucHV0LnNldENoZWNrZWQodmFsdWUtPnRvQm9vbGVhbihleGVjKSk7IHJldHVybjsgfQotICAg
ICAgICBjYXNlIElucHV0RGlzYWJsZWQ6ICAgICAgICB7IGlucHV0LnNldERpc2FibGVkKHZhbHVl
LT50b0Jvb2xlYW4oZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBJbnB1dEluZGV0ZXJt
aW5hdGU6ICAgeyBpbnB1dC5zZXRJbmRldGVybWluYXRlKHZhbHVlLT50b0Jvb2xlYW4oZXhlYykp
OyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBJbnB1dE1heExlbmd0aDogICAgICAgeyBpbnB1dC5z
ZXRNYXhMZW5ndGgodmFsdWUtPnRvSW50MzIoZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAgY2Fz
ZSBJbnB1dE5hbWU6ICAgICAgICAgICAgeyBpbnB1dC5zZXROYW1lKEF0b21pY1N0cmluZyhzdHIp
KTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSW5wdXRSZWFkT25seTogICAgICAgIHsgaW5wdXQu
c2V0UmVhZE9ubHkodmFsdWUtPnRvQm9vbGVhbihleGVjKSk7IHJldHVybjsgfQotICAgICAgICBj
YXNlIElucHV0U2l6ZTogICAgICAgICAgICB7IGlucHV0LnNldFNpemUodmFsdWUtPnRvSW50MzIo
ZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBJbnB1dFNlbGVjdGlvblN0YXJ0OiAgeyBp
bnB1dC5zZXRTZWxlY3Rpb25TdGFydCh2YWx1ZS0+dG9JbnQzMihleGVjKSk7IHJldHVybjsgfQot
ICAgICAgICBjYXNlIElucHV0U2VsZWN0aW9uRW5kOiAgICB7IGlucHV0LnNldFNlbGVjdGlvbkVu
ZCh2YWx1ZS0+dG9JbnQzMihleGVjKSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIElucHV0U3Jj
OiAgICAgICAgICAgICB7IGlucHV0LnNldFNyYyhzdHIpOyByZXR1cm47IH0KLSAgICAgICAgY2Fz
ZSBJbnB1dFRhYkluZGV4OiAgICAgICAgeyBpbnB1dC5zZXRUYWJJbmRleCh2YWx1ZS0+dG9JbnQz
MihleGVjKSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIElucHV0VHlwZTogICAgICAgICAgICB7
IGlucHV0LnNldFR5cGUoc3RyKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSW5wdXRVc2VNYXA6
ICAgICAgICAgIHsgaW5wdXQuc2V0VXNlTWFwKHN0cik7IHJldHVybjsgfQotICAgICAgICBjYXNl
IElucHV0VmFsdWU6ICAgICAgICAgICB7IGlucHV0LnNldFZhbHVlKHN0cik7IHJldHVybjsgfQot
ICAgIH0KLX0KLQotdm9pZCBKU0hUTUxFbGVtZW50Ojp0ZXh0QXJlYVNldHRlcihFeGVjU3RhdGUg
KmV4ZWMsIGludCB0b2tlbiwgSlNWYWx1ZSAqdmFsdWUsIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYg
c3RyKQotewotICAgIEhUTUxUZXh0QXJlYUVsZW1lbnQmIHRleHRhcmVhID0gKnN0YXRpY19jYXN0
PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihpbXBsKCkpOwotICAgIHN3aXRjaCAodG9rZW4pIHsKLSAg
ICAgICAgY2FzZSBUZXh0QXJlYURlZmF1bHRWYWx1ZTogICAgeyB0ZXh0YXJlYS5zZXREZWZhdWx0
VmFsdWUoc3RyKTsgcmV0dXJuOyB9Ci0gICAgICAgIC8vIHJlYWQtb25seTogZm9ybQotICAgICAg
ICBjYXNlIFRleHRBcmVhQWNjZXNzS2V5OiAgICAgICB7IHRleHRhcmVhLnNldEFjY2Vzc0tleShz
dHIpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBUZXh0QXJlYUNvbHM6ICAgICAgICAgICAgeyB0
ZXh0YXJlYS5zZXRDb2xzKHZhbHVlLT50b0ludDMyKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAg
IGNhc2UgVGV4dEFyZWFEaXNhYmxlZDogICAgICAgIHsgdGV4dGFyZWEuc2V0RGlzYWJsZWQodmFs
dWUtPnRvQm9vbGVhbihleGVjKSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIFRleHRBcmVhTmFt
ZTogICAgICAgICAgICB7IHRleHRhcmVhLnNldE5hbWUoQXRvbWljU3RyaW5nKHN0cikpOyByZXR1
cm47IH0KLSAgICAgICAgY2FzZSBUZXh0QXJlYVJlYWRPbmx5OiAgICAgICAgeyB0ZXh0YXJlYS5z
ZXRSZWFkT25seSh2YWx1ZS0+dG9Cb29sZWFuKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNh
c2UgVGV4dEFyZWFSb3dzOiAgICAgICAgICAgIHsgdGV4dGFyZWEuc2V0Um93cyh2YWx1ZS0+dG9J
bnQzMihleGVjKSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIFRleHRBcmVhU2VsZWN0aW9uU3Rh
cnQ6ICB7IHRleHRhcmVhLnNldFNlbGVjdGlvblN0YXJ0KHZhbHVlLT50b0ludDMyKGV4ZWMpKTsg
cmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFTZWxlY3Rpb25FbmQ6ICAgIHsgdGV4dGFy
ZWEuc2V0U2VsZWN0aW9uRW5kKHZhbHVlLT50b0ludDMyKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAg
ICAgIGNhc2UgVGV4dEFyZWFUYWJJbmRleDogICAgICAgIHsgdGV4dGFyZWEuc2V0VGFiSW5kZXgo
dmFsdWUtPnRvSW50MzIoZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAgLy8gcmVhZC1vbmx5OiB0
eXBlCi0gICAgICAgIGNhc2UgVGV4dEFyZWFWYWx1ZTogICAgICAgICAgIHsgdGV4dGFyZWEuc2V0
VmFsdWUoc3RyKTsgcmV0dXJuOyB9Ci0gICAgfQotfQotCi12b2lkIEpTSFRNTEVsZW1lbnQ6OmJ1
dHRvblNldHRlcihFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbiwgSlNWYWx1ZSAqdmFsdWUsIGNv
bnN0IFdlYkNvcmU6OlN0cmluZyYgc3RyKQotewotICAgIEhUTUxCdXR0b25FbGVtZW50JiBidXR0
b24gPSAqc3RhdGljX2Nhc3Q8SFRNTEJ1dHRvbkVsZW1lbnQqPihpbXBsKCkpOwotICAgIHN3aXRj
aCAodG9rZW4pIHsKLSAgICAgICAgLy8gcmVhZC1vbmx5OiBmb3JtCi0gICAgICAgIGNhc2UgQnV0
dG9uQWNjZXNzS2V5OiAgICAgICB7IGJ1dHRvbi5zZXRBY2Nlc3NLZXkoc3RyKTsgcmV0dXJuOyB9
Ci0gICAgICAgIGNhc2UgQnV0dG9uRGlzYWJsZWQ6ICAgICAgICB7IGJ1dHRvbi5zZXREaXNhYmxl
ZCh2YWx1ZS0+dG9Cb29sZWFuKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgQnV0dG9u
TmFtZTogICAgICAgICAgICB7IGJ1dHRvbi5zZXROYW1lKEF0b21pY1N0cmluZyhzdHIpKTsgcmV0
dXJuOyB9Ci0gICAgICAgIGNhc2UgQnV0dG9uVGFiSW5kZXg6ICAgICAgICB7IGJ1dHRvbi5zZXRU
YWJJbmRleCh2YWx1ZS0+dG9JbnQzMihleGVjKSk7IHJldHVybjsgfQotICAgICAgICAvLyByZWFk
LW9ubHk6IHR5cGUKLSAgICAgICAgY2FzZSBCdXR0b25WYWx1ZTogICAgICAgICAgIHsgYnV0dG9u
LnNldFZhbHVlKHN0cik7IHJldHVybjsgfQotICAgIH0KLX0KLQogdm9pZCBKU0hUTUxFbGVtZW50
OjpsYWJlbFNldHRlcihFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbiwgSlNWYWx1ZSAqdmFsdWUs
IGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgc3RyKQogewogICAgIEhUTUxMYWJlbEVsZW1lbnQmIGxh
YmVsID0gKnN0YXRpY19jYXN0PEhUTUxMYWJlbEVsZW1lbnQqPihpbXBsKCkpOwpAQCAtMzMyNCw0
MyArMjkyNyw2IEBAIHZvaWQgSlNIVE1MU2VsZWN0Q29sbGVjdGlvbjo6cHV0KEV4ZWNTdGEKICAg
c2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvbik7CiB9CiAKLS8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8gT3B0aW9uIE9iamVjdCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KLQotT3B0aW9uQ29u
c3RydWN0b3JJbXA6Ok9wdGlvbkNvbnN0cnVjdG9ySW1wKEV4ZWNTdGF0ZSAqZXhlYywgRG9jdW1l
bnQgKmQpCi0gICAgOiBtX2RvYyhkKQotewotICBwdXQoZXhlYyxsZW5ndGhQcm9wZXJ0eU5hbWUs
IGpzTnVtYmVyKDQpLCBSZWFkT25seXxEb250RGVsZXRlfERvbnRFbnVtKTsKLX0KLQotYm9vbCBP
cHRpb25Db25zdHJ1Y3RvckltcDo6aW1wbGVtZW50c0NvbnN0cnVjdCgpIGNvbnN0Ci17Ci0gIHJl
dHVybiB0cnVlOwotfQotCi1KU09iamVjdCAqT3B0aW9uQ29uc3RydWN0b3JJbXA6OmNvbnN0cnVj
dChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IExpc3QgJmFyZ3MpCi17Ci0gIGludCBleGNlcHRpb24g
PSAwOwotICBSZWZQdHI8RWxlbWVudD4gZWwobV9kb2MtPmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIs
IGV4Y2VwdGlvbikpOwotICBIVE1MT3B0aW9uRWxlbWVudCAqb3B0ID0gMDsKLSAgaWYgKGVsKSB7
Ci0gICAgb3B0ID0gc3RhdGljX2Nhc3Q8SFRNTE9wdGlvbkVsZW1lbnQqPihlbC5nZXQoKSk7Ci0g
ICAgaW50IHN6ID0gYXJncy5zaXplKCk7Ci0gICAgUmVmUHRyPFRleHQ+IHQgPSBtX2RvYy0+Y3Jl
YXRlVGV4dE5vZGUoIiIpOwotICAgIG9wdC0+YXBwZW5kQ2hpbGQodCwgZXhjZXB0aW9uKTsKLSAg
ICBpZiAoZXhjZXB0aW9uID09IDAgJiYgc3ogPiAwKQotICAgICAgdC0+c2V0RGF0YShhcmdzWzBd
LT50b1N0cmluZyhleGVjKSwgZXhjZXB0aW9uKTsgLy8gc2V0IHRoZSB0ZXh0Ci0gICAgaWYgKGV4
Y2VwdGlvbiA9PSAwICYmIHN6ID4gMSkKLSAgICAgIG9wdC0+c2V0VmFsdWUoYXJnc1sxXS0+dG9T
dHJpbmcoZXhlYykpOwotICAgIGlmIChleGNlcHRpb24gPT0gMCAmJiBzeiA+IDIpCi0gICAgICBv
cHQtPnNldERlZmF1bHRTZWxlY3RlZChhcmdzWzJdLT50b0Jvb2xlYW4oZXhlYykpOwotICAgIGlm
IChleGNlcHRpb24gPT0gMCAmJiBzeiA+IDMpCi0gICAgICBvcHQtPnNldFNlbGVjdGVkKGFyZ3Nb
M10tPnRvQm9vbGVhbihleGVjKSk7Ci0gIH0KLQotICBzZXRET01FeGNlcHRpb24oZXhlYywgZXhj
ZXB0aW9uKTsKLSAgcmV0dXJuIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4odG9KUyhleGVjLG9wdCkp
OwotfQotCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEltYWdlIE9iamVjdCAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8KIAogSW1hZ2VDb25zdHJ1Y3RvckltcDo6SW1hZ2VDb25zdHJ1Y3RvckltcChF
eGVjU3RhdGUgKiwgRG9jdW1lbnQgKmQpCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc193
aW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRvdy5j
cHAJKHJldmlzaW9uIDE0NDUwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfd2luZG93LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkpTRE9NUGFyc2Vy
LmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKICNpbmNsdWRlICJKU0V2ZW50LmgiCisjaW5j
bHVkZSAiSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmgiCiAjaW5jbHVkZSAiSlNNdXRh
dGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiSlNOb2RlLmgiCiAjaW5jbHVkZSAiSlNOb2RlRmlsdGVy
LmgiCkBAIC03NzEsNyArNzcyLDcgQEAgSlNWYWx1ZSAqV2luZG93OjpnZXRWYWx1ZVByb3BlcnR5
KEV4ZWNTdAogICAgICAgLy8gdGltZQogICAgICAgcmV0dXJuIG5ldyBJbWFnZUNvbnN0cnVjdG9y
SW1wKGV4ZWMsIG1fZnJhbWUtPmRvY3VtZW50KCkpOwogICAgIGNhc2UgT3B0aW9uOgotICAgICAg
cmV0dXJuIG5ldyBPcHRpb25Db25zdHJ1Y3RvckltcChleGVjLCBtX2ZyYW1lLT5kb2N1bWVudCgp
KTsKKyAgICAgIHJldHVybiBuZXcgSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yKGV4ZWMs
IG1fZnJhbWUtPmRvY3VtZW50KCkpOwogICAgIGNhc2UgWE1MSHR0cFJlcXVlc3Q6CiAgICAgICBy
ZXR1cm4gbmV3IEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3RvckltcChleGVjLCBtX2ZyYW1lLT5k
b2N1bWVudCgpKTsKICAgICBjYXNlIFhNTFNlcmlhbGl6ZXI6CkluZGV4OiBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEJhc2UuaAkocmV2aXNpb24gMCkKKysrIFdlYkNv
cmUvYmluZGluZ3MvanMvSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5oCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJ
bmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj
b3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3
aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0
ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBs
YWNlIC0gU3VpdGUgMzMwLAorICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisgKi8KKwor
I2lmbmRlZiBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlX0gKKyNkZWZpbmUgSlNIVE1MSW5wdXRFbGVt
ZW50QmFzZV9ICisKKyNpbmNsdWRlICJranNfaHRtbC5oIgorI2luY2x1ZGUgImtqc19iaW5kaW5n
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQ7
CisKKyAgICBLSlNfREVGSU5FX1BST1RPVFlQRV9XSVRIX1BST1RPVFlQRShKU0hUTUxJbnB1dEVs
ZW1lbnRCYXNlUHJvdG8sIEtKUzo6SlNIVE1MRWxlbWVudFByb3RvKQorCisgICAgY2xhc3MgSlNI
VE1MSW5wdXRFbGVtZW50QmFzZSA6IHB1YmxpYyBLSlM6OkpTSFRNTEVsZW1lbnQgeworICAgIHB1
YmxpYzoKKyAgICAgICAgSlNIVE1MSW5wdXRFbGVtZW50QmFzZShLSlM6OkV4ZWNTdGF0ZSosIFBh
c3NSZWZQdHI8SFRNTElucHV0RWxlbWVudD4pOworICAgICAgICB2aXJ0dWFsIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEtKUzo6RXhlY1N0YXRlKiwgY29uc3QgS0pTOjpJZGVudGlmaWVyJiwgS0pT
OjpQcm9wZXJ0eVNsb3QmKTsKKyAgICAgICAgS0pTOjpKU1ZhbHVlKiBnZXRWYWx1ZVByb3BlcnR5
KEtKUzo6RXhlY1N0YXRlKiwgaW50IHRva2VuKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCB2b2lk
IHB1dChLSlM6OkV4ZWNTdGF0ZSosIGNvbnN0IEtKUzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1l
LCBKU1ZhbHVlKiwgaW50IGF0dHIpOworICAgICAgICB2b2lkIHB1dFZhbHVlUHJvcGVydHkoS0pT
OjpFeGVjU3RhdGUqLCBpbnQgdG9rZW4sIEtKUzo6SlNWYWx1ZSosIGludCBhdHRyKTsKKyAgICAg
ICAgdmlydHVhbCBjb25zdCBLSlM6OkNsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1
cm4gJmluZm87IH0KKyAgICAgICAgc3RhdGljIGNvbnN0IEtKUzo6Q2xhc3NJbmZvIGluZm87Cisg
ICAgICAgIGVudW0geyBTZXRTZWxlY3Rpb25SYW5nZSwgU2VsZWN0aW9uU3RhcnQsIFNlbGVjdGlv
bkVuZCB9OworICAgIH07Cit9CisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNp
b24gMTQ0NTApCisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkK
QEAgLTYyLDE0ICs2MiwyMCBAQCBhbGwgOiBcCiAgICAgSlNFbGVtZW50LmggXAogICAgIEpTRXZl
bnQuaCBcCiAgICAgSlNFbnRpdHkuaCBcCisgICAgSlNIVE1MQnV0dG9uRWxlbWVudC5oIFwKICAg
ICBKU0hUTUxCYXNlRWxlbWVudC5oIFwKICAgICBKU0hUTUxDYW52YXNFbGVtZW50LmggXAogICAg
IEpTSFRNTERvY3VtZW50LmggXAogICAgIEpTSFRNTEVsZW1lbnQuaCBcCiAgICAgSlNIVE1MSGVh
ZEVsZW1lbnQuaCBcCisgICAgSlNIVE1MSW5wdXRFbGVtZW50LmggXAorICAgIEpTSFRNTElucHV0
RWxlbWVudEJhc2VUYWJsZS5jcHAgXAogICAgIEpTSFRNTExpbmtFbGVtZW50LmggXAorICAgIEpT
SFRNTE9wdGlvbkVsZW1lbnQuaCBcCisgICAgSlNIVE1MT3B0R3JvdXBFbGVtZW50LmggXAogICAg
IEpTSFRNTE1ldGFFbGVtZW50LmggXAogICAgIEpTSFRNTFN0eWxlRWxlbWVudC5oIFwKKyAgICBK
U0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBcCiAgICAgSlNIVE1MVGl0bGVFbGVtZW50LmggXAogICAg
IEpTS2V5Ym9hcmRFdmVudC5oIFwKICAgICBKU01vdXNlRXZlbnQuaCBcCkluZGV4OiBXZWJDb3Jl
L2h0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1s
L0hUTUxPcHRHcm91cEVsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9odG1sL0hU
TUxPcHRHcm91cEVsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsg
c2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAor
ICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisgKi8KKworbW9kdWxlIGh0bWwgeworCisg
ICAgaW50ZXJmYWNlIFtMZWdhY3lQYXJlbnQ9S0pTOjpKU0hUTUxFbGVtZW50XSBIVE1MT3B0R3Jv
dXBFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAg
ICAgICAgICAgIGRpc2FibGVkOworICAgICAgICBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAg
ICAgIGxhYmVsOworICAgIH07CisKK30KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwJ
KHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUg
Q29tcHV0ZXIsIEluYy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVT
QS4KKyAqLworCittb2R1bGUgaHRtbCB7CisKKyAgICBpbnRlcmZhY2UgW0xlZ2FjeVBhcmVudD1K
U0hUTUxJbnB1dEVsZW1lbnRCYXNlXSBIVE1MSW5wdXRFbGVtZW50IDogSFRNTEVsZW1lbnQgewor
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAgIGRlZmF1bHRW
YWx1ZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICBk
ZWZhdWx0Q2hlY2tlZDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBIVE1MRm9ybUVsZW1l
bnQgICAgICBmb3JtOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAg
ICAgICAgIGFjY2VwdDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAg
ICAgICAgICBhY2Nlc3NLZXk7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5n
ICAgICAgICAgICAgYWxpZ247CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5n
ICAgICAgICAgICAgYWx0OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAg
ICAgICAgICAgIGNoZWNrZWQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAg
ICAgICAgICAgICAgZGlzYWJsZWQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgbG9uZyAg
ICAgICAgICAgICAgICAgbWF4TGVuZ3RoOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERP
TVN0cmluZyAgICAgICAgICAgIG5hbWU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgYm9v
bGVhbiAgICAgICAgICAgICAgcmVhZE9ubHk7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAg
dW5zaWduZWQgbG9uZyAgICAgICAgc2l6ZTsgLy8gQ2hhbmdlZCBzdHJpbmcgLT4gbG9uZyBhcyBw
YXJ0IG9mIERPTSBsZXZlbCAyCisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5n
ICAgICAgICAgICAgc3JjOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGxvbmcgICAgICAg
ICAgICAgICAgIHRhYkluZGV4OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERPTVN0cmlu
ZyAgICAgICAgICAgIHR5cGU7IC8vIHJlYWRvbmx5IGRyb3BwZWQgYXMgcGFydCBvZiBET00gbGV2
ZWwgMgorICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAgIHVz
ZU1hcDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICB2
YWx1ZTsKKyAgICAgICAgCisgICAgICAgIHZvaWQgICAgYmx1cigpOworICAgICAgICB2b2lkICAg
IGZvY3VzKCk7CisgICAgICAgIHZvaWQgICAgc2VsZWN0KCk7CisgICAgICAgIHZvaWQgICAgY2xp
Y2soKTsKKyAgICAgICAgCisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGluZGV0
ZXJtaW5hdGU7IC8vIFdpbklFIGV4dGVuc2lvbgorICAgICAgICAKKyAgICAgICAgLy8gSGFuZGxl
ZCBieSBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlIHRvIGFsbG93IGhpZGluZyBiYXNlZCBvbiB0eXBl
CisgICAgICAgIC8vIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHNlbGVjdGlvblN0YXJ0OworICAg
ICAgICAvLyBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzZWxlY3Rpb25FbmQ7CisgICAgICAgIC8v
IHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW4gbG9uZyBzdGFydCwgaW4gbG9uZyBlbmQpOworICAg
IH07CisKK30KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbAkocmV2aXNpb24gMCkK
KysrIFdlYkNvcmUvaHRtbC9IVE1MT3B0aW9uRWxlbWVudC5pZGwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIElu
Yy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNv
cHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdp
dGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRl
IHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxh
Y2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqLworCitt
b2R1bGUgaHRtbCB7CisKKyAgICBpbnRlcmZhY2UgW0xlZ2FjeVBhcmVudD1LSlM6OkpTSFRNTEVs
ZW1lbnRdIEhUTUxPcHRpb25FbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgIEhUTUxGb3JtRWxlbWVudCAgICAgIGZvcm07CisgICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAgICAgZGVmYXVsdFNlbGVjdGVkOworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAgIHRleHQ7CisgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSAgbG9uZyAgICAgICAgICAgICAgICAgaW5kZXgKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHNldHRlciByYWlzZXMgKGRvbTo6RE9NRXhjZXB0aW9uKTsgLy8gRklY
TUU6IFdlIGRpc2FsbG93IHNldHRpbmcgaW4gdmlvbGF0aW9uIG9mIERPTSAxIEhUTUwuCisgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAgICAgZGlzYWJsZWQ7Cisg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgbGFiZWw7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAgICAgc2VsZWN0ZWQ7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgdmFsdWU7
CisgICAgfTsKKworfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmlkbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRl
ciwgSW5jLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBs
ZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorICov
CisKK21vZHVsZSBodG1sIHsKKworICAgIGludGVyZmFjZSBbTGVnYWN5UGFyZW50PUtKUzo6SlNI
VE1MRWxlbWVudF0gSFRNTEJ1dHRvbkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSAgSFRNTEZvcm1FbGVtZW50ICAgICAgZm9ybTsKKyAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICBhY2Nlc3NLZXk7CisgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAgICAgZGlzYWJsZWQ7CisgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgbmFtZTsKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlICBsb25nICAgICAgICAgICAgICAgICB0YWJJbmRleDsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICB0eXBlOworICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAgIHZhbHVlOworICAg
IH07CisKK30KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwJKHJldmlzaW9u
IDApCisrKyBXZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5pZGwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1w
bGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAq
LworCittb2R1bGUgaHRtbCB7CisKKyAgICBpbnRlcmZhY2UgW0xlZ2FjeVBhcmVudD1LSlM6OkpT
SFRNTEVsZW1lbnRdIEhUTUxUZXh0QXJlYUVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgZGVmYXVsdFZhbHVlOwor
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIEhUTUxGb3JtRWxlbWVudCAgICAgIGZvcm07Cisg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgYWNjZXNzS2V5
OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGxvbmcgICAgICAgICAgICAgICAgIGNvbHM7
CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAgICAgZGlzYWJs
ZWQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgbmFt
ZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICByZWFk
T25seTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBsb25nICAgICAgICAgICAgICAgICBy
b3dzOworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGxvbmcgICAgICAgICAgICAgICAgIHRh
YkluZGV4OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAg
IHR5cGU7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAg
dmFsdWU7CisgICAgICAgIAorICAgICAgICB2b2lkICAgICBibHVyKCk7CisgICAgICAgIHZvaWQg
ICAgIGZvY3VzKCk7CisgICAgICAgIHZvaWQgICAgIHNlbGVjdCgpOworCisgICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHNlbGVjdGlvblN0YXJ0OworICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBzZWxlY3Rpb25FbmQ7CisgICAgICAgIHZvaWQg
c2V0U2VsZWN0aW9uUmFuZ2UoaW4gbG9uZyBzdGFydCwgaW4gbG9uZyBlbmQpOworICAgIH07CisK
K30KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZp
c2lvbiAxNDQ1MCkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC02NDEsNiArNjQxLDIzIEBACiAJCUE4MEU3QjEzMEExOUQ2MDYw
MDdGQjhDNSAvKiBKU0hUTUxUaXRsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTdCMDkwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRN
TFRpdGxlRWxlbWVudC5jcHAgKi87IH07CiAJCUE4MEU3QjE0MEExOUQ2MDYwMDdGQjhDNSAvKiBK
U0hUTUxIZWFkRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODBFN0IwQTBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MSGVhZEVsZW1lbnQu
Y3BwICovOyB9OwogCQlBODBFN0IxNTBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MSGVhZEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3
QjBCMEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxIZWFkRWxlbWVudC5oICovOyB9OworCQlBODBF
N0UxQTBBMUE3Q0NCMDA3RkI4QzUgLyogSFRNTFRleHRBcmVhRWxlbWVudC5pZGwgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3RTE2MEExQTdDQ0Iw
MDdGQjhDNSAvKiBIVE1MVGV4dEFyZWFFbGVtZW50LmlkbCAqLzsgfTsKKwkJQTgwRTdFMUIwQTFB
N0NDQjAwN0ZCOEM1IC8qIEhUTUxJbnB1dEVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFN0UxNzBBMUE3Q0NCMDA3RkI4QzUgLyog
SFRNTElucHV0RWxlbWVudC5pZGwgKi87IH07CisJCUE4MEU3RTFDMEExQTdDQ0IwMDdGQjhDNSAv
KiBIVE1MT3B0aW9uRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4MEU3RTE4MEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MT3B0aW9uRWxl
bWVudC5pZGwgKi87IH07CisJCUE4MEU3RTFEMEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MT3B0R3Jv
dXBFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTgwRTdFMTkwQTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxPcHRHcm91cEVsZW1lbnQuaWRs
ICovOyB9OworCQlBODBFN0U1NjBBMUE3RkIzMDA3RkI4QzUgLyogSFRNTEJ1dHRvbkVsZW1lbnQu
aWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBF
N0U1NTBBMUE3RkIzMDA3RkI4QzUgLyogSFRNTEJ1dHRvbkVsZW1lbnQuaWRsICovOyB9OworCQlB
ODBFN0U2NTBBMUE4MkVDMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTdFNjMwQTFBODJF
QzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVudEJhc2UuaCAqLzsgfTsKKwkJQTgwRTdFNjYw
QTFBODJFQzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVudEJhc2UuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTdFNjQwQTFBODJFQzAwN0ZC
OEM1IC8qIEpTSFRNTElucHV0RWxlbWVudEJhc2UuY3BwICovOyB9OworCQlBODBFN0U5NzBBMUE4
M0UzMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFN0U4RDBBMUE4M0UzMDA3RkI4QzUgLyogSlNI
VE1MSW5wdXRFbGVtZW50LmggKi87IH07CisJCUE4MEU3RTk4MEExQTgzRTMwMDdGQjhDNSAvKiBK
U0hUTUxJbnB1dEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTgwRTdFOEUwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVu
dC5jcHAgKi87IH07CisJCUE4MEU3RTk5MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxPcHRpb25F
bGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
ODBFN0U4RjBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MT3B0aW9uRWxlbWVudC5oICovOyB9Owor
CQlBODBFN0U5QTBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MT3B0aW9uRWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFN0U5MDBBMUE4
M0UzMDA3RkI4QzUgLyogSlNIVE1MT3B0aW9uRWxlbWVudC5jcHAgKi87IH07CisJCUE4MEU3RTlC
MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxPcHRHcm91cEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3RTkxMEExQTgzRTMwMDdGQjhD
NSAvKiBKU0hUTUxPcHRHcm91cEVsZW1lbnQuaCAqLzsgfTsKKwkJQTgwRTdFOUMwQTFBODNFMzAw
N0ZCOEM1IC8qIEpTSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFN0U5MjBBMUE4M0UzMDA3RkI4QzUgLyogSlNI
VE1MT3B0R3JvdXBFbGVtZW50LmNwcCAqLzsgfTsKKwkJQTgwRTdFOUQwQTFBODNFMzAwN0ZCOEM1
IC8qIEpTSFRNTFRleHRBcmVhRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTgwRTdFOTMwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTFRleHRB
cmVhRWxlbWVudC5oICovOyB9OworCQlBODBFN0U5RTBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1M
VGV4dEFyZWFFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4MEU3RTk0MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxUZXh0QXJlYUVsZW1l
bnQuY3BwICovOyB9OworCQlBODBFN0U5RjBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MQnV0dG9u
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTgwRTdFOTUwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTEJ1dHRvbkVsZW1lbnQuaCAqLzsgfTsK
KwkJQTgwRTdFQTAwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTEJ1dHRvbkVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTdFOTYwQTFB
ODNFMzAwN0ZCOEM1IC8qIEpTSFRNTEJ1dHRvbkVsZW1lbnQuY3BwICovOyB9OwogCQlBODEzNjlD
QTA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTElzSW5kZXhFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODEzNjlBRTA5NzM3NEY1MDBENzQ0NjMg
LyogSFRNTElzSW5kZXhFbGVtZW50LmggKi87IH07CiAJCUE4MTM2OUNCMDk3Mzc0RjYwMEQ3NDQ2
MyAvKiBIVE1MSXNJbmRleEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTgxMzY5QUYwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxJc0luZGV4
RWxlbWVudC5jcHAgKi87IH07CiAJCUE4MTM2OUNDMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MSW5w
dXRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBODEzNjlCMDA5NzM3NEY1MDBENzQ0NjMgLyogSFRNTElucHV0RWxlbWVudC5oICovOyB9OwpA
QCAtNjk2LDYgKzcxMyw4IEBACiAJCUE4MjM5RTAwMDlCM0NGOEEwMEI2MDY0MSAvKiBMb2dnaW5n
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MjM5
REZFMDlCM0NGOEEwMEI2MDY0MSAvKiBMb2dnaW5nLmNwcCAqLzsgfTsKIAkJQTgyMzlFMDEwOUIz
Q0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4MjM5REZGMDlCM0NGOEEwMEI2MDY0MSAvKiBMb2dnaW5nLmggKi87
IH07CiAJCUE4MjNBNzVDMDlCNkU1MzkwMEI2MDY0MSAvKiBHcmFwaGljc0NvbnRleHQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgyM0E3NUIwOUI2
RTUzOTAwQjYwNjQxIC8qIEdyYXBoaWNzQ29udGV4dC5jcHAgKi87IH07CisJCUE4MjZFOEFFMEEx
QThGMjMwMENEMUJCNiAvKiBKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MjZFOEFDMEExQThGMjMw
MENEMUJCNiAvKiBKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuaCAqLzsgfTsKKwkJQTgy
NkVDNDgwQTFCMENCRTAwQ0QxQkI2IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODI2RThB
RDBBMUE4RjIzMDBDRDFCQjYgLyogSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmNwcCAq
LzsgfTsKIAkJQTg2NjI5Q0YwOURBMkI0NzAwOTYzM0E1IC8qIEpTVUlFdmVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTg2NjI5QzkwOURBMkI0NzAw
OTYzM0E1IC8qIEpTVUlFdmVudC5oICovOyB9OwogCQlBODY2MjlEMDA5REEyQjQ4MDA5NjMzQTUg
LyogSlNVSUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4NjYyOUNBMDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJRXZlbnQuY3BwICovOyB9Owog
CQlBODY2MjlEMTA5REEyQjQ4MDA5NjMzQTUgLyogSlNNb3VzZUV2ZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODY2MjlDQjA5REEyQjQ3MDA5NjMz
QTUgLyogSlNNb3VzZUV2ZW50LmggKi87IH07CkBAIC0xNDIyLDYgKzE0NDEsMjMgQEAKIAkJRkFF
MDQxOTAwOTc1OTZDOTAwMDU0MEJFIC8qIFNWR0ltYWdlTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGQUUwNDE4RTA5NzU5NkM5MDAwNTQwQkUg
LyogU1ZHSW1hZ2VMb2FkZXIuaCAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAq
LwogCisvKiBCZWdpbiBQQlhCdWlsZFN0eWxlIHNlY3Rpb24gKi8KKwkJQTgyNkYzQkYwQTFCRDEx
RDAwQ0QxQkI2IC8qIERldmVsb3BtZW50ICovID0geworCQkJaXNhID0gUEJYQnVpbGRTdHlsZTsK
KwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJQ09QWV9QSEFTRV9TVFJJUCA9IE5POworCQkJfTsK
KwkJCW5hbWUgPSBEZXZlbG9wbWVudDsKKwkJfTsKKwkJQTgyNkYzQzAwQTFCRDExRDAwQ0QxQkI2
IC8qIERlcGxveW1lbnQgKi8gPSB7CisJCQlpc2EgPSBQQlhCdWlsZFN0eWxlOworCQkJYnVpbGRT
ZXR0aW5ncyA9IHsKKwkJCQlDT1BZX1BIQVNFX1NUUklQID0gWUVTOworCQkJfTsKKwkJCW5hbWUg
PSBEZXBsb3ltZW50OworCQl9OworLyogRW5kIFBCWEJ1aWxkU3R5bGUgc2VjdGlvbiAqLworCiAv
KiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwogCQlERDA0MUZGMDA5RDlF
MzI1MDAxMEFGMkEgLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0gewogCQkJaXNhID0gUEJY
Q29udGFpbmVySXRlbVByb3h5OwpAQCAtMjAyNSw2ICsyMDYxLDIzIEBACiAJCUE4MEU3QjA5MEEx
OUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxUaXRsZUVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTFRpdGxlRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE4MEU3QjBBMEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxIZWFk
RWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1M
SGVhZEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODBFN0IwQjBB
MTlENjA2MDA3RkI4QzUgLyogSlNIVE1MSGVhZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTSFRNTEhlYWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUE4MEU3RTE2MEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MVGV4dEFyZWFFbGVtZW50
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTFRleHRBcmVhRWxlbWVudC5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MEU3RTE3MEExQTdDQ0IwMDdGQjhDNSAvKiBI
VE1MSW5wdXRFbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTElucHV0RWxl
bWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MEU3RTE4MEExQTdDQ0Iw
MDdGQjhDNSAvKiBIVE1MT3B0aW9uRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEhUTUxPcHRpb25FbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgw
RTdFMTkwQTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxPcHRHcm91cEVsZW1lbnQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBIVE1MT3B0R3JvdXBFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQTgwRTdFNTUwQTFBN0ZCMzAwN0ZCOEM1IC8qIEhUTUxCdXR0b25FbGVt
ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTEJ1dHRvbkVsZW1lbnQuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODBFN0U2MzBBMUE4MkVDMDA3RkI4QzUgLyog
SlNIVE1MSW5wdXRFbGVtZW50QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBODBFN0U2NDBBMUE4MkVDMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MSW5wdXRFbGVtZW50
QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MEU3RThEMEExQTgzRTMw
MDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEpTSFRNTElucHV0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBODBFN0U4RTBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxJbnB1dEVsZW1lbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODBFN0U4RjBBMUE4M0UzMDA3RkI4
QzUgLyogSlNIVE1MT3B0aW9uRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNIVE1MT3B0aW9uRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlBODBFN0U5MDBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MT3B0aW9uRWxlbWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MT3B0aW9uRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MEU3RTkxMEExQTgzRTMwMDdGQjhD
NSAvKiBKU0hUTUxPcHRHcm91cEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTSFRNTE9wdEdyb3VwRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBODBFN0U5MjBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MT3B0R3JvdXBFbGVtZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxPcHRHcm91cEVs
ZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODBFN0U5MzBBMUE4M0Uz
MDA3RkI4QzUgLyogSlNIVE1MVGV4dEFyZWFFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0hUTUxUZXh0QXJlYUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQTgwRTdFOTQwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTFRleHRBcmVhRWxl
bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MVGV4
dEFyZWFFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgwRTdFOTUw
QTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTEJ1dHRvbkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTEJ1dHRvbkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQTgwRTdFOTYwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTEJ1dHRvbkVs
ZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTEJ1
dHRvbkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODEwRTM5MzA4
QTQxNjBGMDAzMzNEOTggLyogS0NhbnZhc1RyZWVEZWJ1Zy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtDYW52YXNUcmVlRGVidWcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUE4MTBF
Mzk0MDhBNDE2MEYwMDMzM0Q5OCAvKiBLQ2FudmFzVHJlZURlYnVnLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS0NhbnZhc1RyZWVEZWJ1
Zy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQlBODEyMkM3RTA4RDU2NEIwMDA4NDRGQTMgLyogR2V0U1ZHRG9jdW1lbnQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gR2V0U1ZHRG9jdW1lbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
QEAgLTIyMDEsNiArMjI1NCw4IEBACiAJCUE4MjM5REZFMDlCM0NGOEEwMEI2MDY0MSAvKiBMb2dn
aW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2dnaW5nLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgyMzlERkYwOUIzQ0Y4QTAwQjYwNjQx
IC8qIExvZ2dpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvZ2dpbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgyM0E3NUIwOUI2RTUzOTAwQjYwNjQx
IC8qIEdyYXBoaWNzQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gR3JhcGhpY3NDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QTgyNkU4QUMwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rv
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MT3B0aW9uRWxlbWVu
dENvbnN0cnVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MjZFOEFEMEEx
QThGMjMwMENEMUJCNiAvKiBKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTE9wdGlvbkVsZW1lbnRDb25z
dHJ1Y3Rvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MkZDMzNCMDhDQkIw
N0MwMEVGRUUyMyAvKiBTVkdDdXJzb3JFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQ3Vyc29yRWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQTgyRkMzM0Mw
OENCQjA3QzAwRUZFRTIzIC8qIFNWR0N1cnNvckVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdDdXJzb3JFbGVtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CiAJCUE4NUQ3QTJGMDg3OUVCQTkwMDZBOTE3MiAvKiBRdWFydHpDb3JlLmZyYW1ld29yayAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJh
bWV3b3JrOyBuYW1lID0gUXVhcnR6Q29yZS5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9RdWFydHpDb3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1
dGU+IjsgfTsKQEAgLTMyNDAsNiArMzI5NSw4IEBACiAJCQkJMTRFODM3OEQwOUY4NUQ0RjAwQjg1
QUU0IC8qIEpTRXZlbnQuaCAqLywKIAkJCQlBODBFN0IwODBBMTlENjA2MDA3RkI4QzUgLyogSlNI
VE1MQmFzZUVsZW1lbnQuY3BwICovLAogCQkJCUE4MEU3QjA3MEExOUQ2MDYwMDdGQjhDNSAvKiBK
U0hUTUxCYXNlRWxlbWVudC5oICovLAorCQkJCUE4MEU3RTk2MEExQTgzRTMwMDdGQjhDNSAvKiBK
U0hUTUxCdXR0b25FbGVtZW50LmNwcCAqLywKKwkJCQlBODBFN0U5NTBBMUE4M0UzMDA3RkI4QzUg
LyogSlNIVE1MQnV0dG9uRWxlbWVudC5oICovLAogCQkJCTkzOEU2NjVGMDlGMDlCODEwMDhBNDhF
QyAvKiBKU0hUTUxDYW52YXNFbGVtZW50LmNwcCAqLywKIAkJCQk5MzhFNjY2MTA5RjA5Qjg3MDA4
QTQ4RUMgLyogSlNIVE1MQ2FudmFzRWxlbWVudC5oICovLAogCQkJCTFBNDk0RTMyMEExMjM1OEEw
MEZEQUZDMSAvKiBKU0hUTUxEb2N1bWVudC5jcHAgKi8sCkBAIC0zMjQ4LDEyICszMzA1LDIwIEBA
CiAJCQkJMUE0OTRCRjkwQTEyMkY0NDAwRkRBRkMxIC8qIEpTSFRNTEVsZW1lbnQuaCAqLywKIAkJ
CQlBODBFN0IwQTBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MSGVhZEVsZW1lbnQuY3BwICovLAog
CQkJCUE4MEU3QjBCMEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxIZWFkRWxlbWVudC5oICovLAor
CQkJCUE4MEU3RThFMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnQuY3BwICov
LAorCQkJCUE4MEU3RThEMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnQuaCAq
LywKIAkJCQlBODBFN0IwNjBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MTGlua0VsZW1lbnQuY3Bw
ICovLAogCQkJCUE4MEU3QjAzMEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxMaW5rRWxlbWVudC5o
ICovLAogCQkJCUE4MEU3QTE1MEExOUMzRDYwMDdGQjhDNSAvKiBKU0hUTUxNZXRhRWxlbWVudC5j
cHAgKi8sCiAJCQkJQTgwRTdBMTYwQTE5QzNENjAwN0ZCOEM1IC8qIEpTSFRNTE1ldGFFbGVtZW50
LmggKi8sCisJCQkJQTgwRTdFOTIwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTE9wdEdyb3VwRWxl
bWVudC5jcHAgKi8sCisJCQkJQTgwRTdFOTEwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTE9wdEdy
b3VwRWxlbWVudC5oICovLAorCQkJCUE4MEU3RTkwMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxP
cHRpb25FbGVtZW50LmNwcCAqLywKKwkJCQlBODBFN0U4RjBBMUE4M0UzMDA3RkI4QzUgLyogSlNI
VE1MT3B0aW9uRWxlbWVudC5oICovLAogCQkJCUE4MEU3QjA1MEExOUQ2MDYwMDdGQjhDNSAvKiBK
U0hUTUxTdHlsZUVsZW1lbnQuY3BwICovLAogCQkJCUE4MEU3QjA0MEExOUQ2MDYwMDdGQjhDNSAv
KiBKU0hUTUxTdHlsZUVsZW1lbnQuaCAqLywKKwkJCQlBODBFN0U5NDBBMUE4M0UzMDA3RkI4QzUg
LyogSlNIVE1MVGV4dEFyZWFFbGVtZW50LmNwcCAqLywKKwkJCQlBODBFN0U5MzBBMUE4M0UzMDA3
RkI4QzUgLyogSlNIVE1MVGV4dEFyZWFFbGVtZW50LmggKi8sCiAJCQkJQTgwRTdCMDkwQTE5RDYw
NjAwN0ZCOEM1IC8qIEpTSFRNTFRpdGxlRWxlbWVudC5jcHAgKi8sCiAJCQkJQTgwRTdCMDIwQTE5
RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTFRpdGxlRWxlbWVudC5oICovLAogCQkJCUE4NjYyOUNFMDlE
QTJCNDcwMDk2MzNBNSAvKiBKU0tleWJvYXJkRXZlbnQuY3BwICovLApAQCAtMzU5OSw2ICszNjY0
LDcgQEAKIAkJCQlBOENGRjdBMDBBMTU2OTc4MDAwQTQyMzQgLyogSFRNTEJSRWxlbWVudC5oICov
LAogCQkJCUE4MTM2OUI3MDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MQnV0dG9uRWxlbWVudC5jcHAg
Ki8sCiAJCQkJQTgxMzY5QjYwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxCdXR0b25FbGVtZW50Lmgg
Ki8sCisJCQkJQTgwRTdFNTUwQTFBN0ZCMzAwN0ZCOEM1IC8qIEhUTUxCdXR0b25FbGVtZW50Lmlk
bCAqLywKIAkJCQk1MUY2QTNENTA2NjNCRjA0MDA0RDI5MTkgLyogSFRNTENhbnZhc0VsZW1lbnQu
Y3BwICovLAogCQkJCTUxRjZBM0Q2MDY2M0JGMDQwMDREMjkxOSAvKiBIVE1MQ2FudmFzRWxlbWVu
dC5oICovLAogCQkJCTkzOEU2NjI1MDlGMDk5NTYwMDhBNDhFQyAvKiBIVE1MQ2FudmFzRWxlbWVu
dC5pZGwgKi8sCkBAIC0zNjUxLDYgKzM3MTcsNyBAQAogCQkJCUE4RUE3RDIzMEExOTM4NTUwMEE4
RUY1RiAvKiBIVE1MSW1hZ2VMb2FkZXIuaCAqLywKIAkJCQlBODEzNjlCMTA5NzM3NEY1MDBENzQ0
NjMgLyogSFRNTElucHV0RWxlbWVudC5jcHAgKi8sCiAJCQkJQTgxMzY5QjAwOTczNzRGNTAwRDc0
NDYzIC8qIEhUTUxJbnB1dEVsZW1lbnQuaCAqLywKKwkJCQlBODBFN0UxNzBBMUE3Q0NCMDA3RkI4
QzUgLyogSFRNTElucHV0RWxlbWVudC5pZGwgKi8sCiAJCQkJQTgxMzY5QUYwOTczNzRGNTAwRDc0
NDYzIC8qIEhUTUxJc0luZGV4RWxlbWVudC5jcHAgKi8sCiAJCQkJQTgxMzY5QUUwOTczNzRGNTAw
RDc0NDYzIC8qIEhUTUxJc0luZGV4RWxlbWVudC5oICovLAogCQkJCUE4MTM2OUM5MDk3Mzc0RjYw
MEQ3NDQ2MyAvKiBIVE1MS2V5Z2VuRWxlbWVudC5jcHAgKi8sCkBAIC0zNjg1LDggKzM3NTIsMTAg
QEAKIAkJCQlBOEVBNzlFNTBBMTkxNkRGMDBBOEVGNUYgLyogSFRNTE9MaXN0RWxlbWVudC5oICov
LAogCQkJCUE4MTM2OUMzMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MT3B0R3JvdXBFbGVtZW50LmNw
cCAqLywKIAkJCQlBODEzNjlDMjA5NzM3NEY1MDBENzQ0NjMgLyogSFRNTE9wdEdyb3VwRWxlbWVu
dC5oICovLAorCQkJCUE4MEU3RTE5MEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MT3B0R3JvdXBFbGVt
ZW50LmlkbCAqLywKIAkJCQlBODEzNjlDMTA5NzM3NEY1MDBENzQ0NjMgLyogSFRNTE9wdGlvbkVs
ZW1lbnQuY3BwICovLAogCQkJCUE4MTM2OUMwMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MT3B0aW9u
RWxlbWVudC5oICovLAorCQkJCUE4MEU3RTE4MEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MT3B0aW9u
RWxlbWVudC5pZGwgKi8sCiAJCQkJOTMyN0E5NDEwOTk2OEQxQTAwNjhBNTQ2IC8qIEhUTUxPcHRp
b25zQ29sbGVjdGlvbi5jcHAgKi8sCiAJCQkJQTgxMzY5QkUwOTczNzRGNTAwRDc0NDYzIC8qIEhU
TUxPcHRpb25zQ29sbGVjdGlvbi5oICovLAogCQkJCUE4RUE3Q0E0MEExOTJCOUMwMEE4RUY1RiAv
KiBIVE1MUGFyYWdyYXBoRWxlbWVudC5jcHAgKi8sCkBAIC0zNzI0LDYgKzM3OTMsNyBAQAogCQkJ
CUE4NzFEQjE3MEExNTBCRDYwMEIxMkE2OCAvKiBIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oICov
LAogCQkJCUE4MTM2OUJCMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MVGV4dEFyZWFFbGVtZW50LmNw
cCAqLywKIAkJCQlBODEzNjlCQTA5NzM3NEY1MDBENzQ0NjMgLyogSFRNTFRleHRBcmVhRWxlbWVu
dC5oICovLAorCQkJCUE4MEU3RTE2MEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MVGV4dEFyZWFFbGVt
ZW50LmlkbCAqLywKIAkJCQlBQjIzQTMxMDA5QkJBNzc2MDA2N0NDNTMgLyogSFRNTFRleHRGaWVs
ZElubmVyRWxlbWVudC5jcHAgKi8sCiAJCQkJQUIyM0EzMTEwOUJCQTc3NjAwNjdDQzUzIC8qIEhU
TUxUZXh0RmllbGRJbm5lckVsZW1lbnQuaCAqLywKIAkJCQlBODcxREMxRDBBMTUyMDU3MDBCMTJB
NjggLyogSFRNTFRpdGxlRWxlbWVudC5jcHAgKi8sCkBAIC00MzczLDYgKzQ0NDMsMTAgQEAKIAkJ
CQk5M0I3MEQ0MDA5RUIwQzdDMDA5RDg0NjggLyogSlNET01QYXJzZXIuaCAqLywKIAkJCQk5MzhF
NjVGNjA5RjA5ODVEMDA4QTQ4RUMgLyogSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcCAq
LywKIAkJCQk5MzhFNjVGMDA5RjA5ODQwMDA4QTQ4RUMgLyogSlNIVE1MRWxlbWVudFdyYXBwZXJG
YWN0b3J5LmggKi8sCisJCQkJQTgwRTdFNjQwQTFBODJFQzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0
RWxlbWVudEJhc2UuY3BwICovLAorCQkJCUE4MEU3RTYzMEExQTgyRUMwMDdGQjhDNSAvKiBKU0hU
TUxJbnB1dEVsZW1lbnRCYXNlLmggKi8sCisJCQkJQTgyNkU4QUQwQTFBOEYyMzAwQ0QxQkI2IC8q
IEpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAgKi8sCisJCQkJQTgyNkU4QUMwQTFB
OEYyMzAwQ0QxQkI2IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5oICovLAogCQkJ
CTkzQjcwRDQxMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1hNTEh0dHBSZXF1ZXN0LmNwcCAqLywKIAkJ
CQk5M0I3MEQ0MjA5RUIwQzdDMDA5RDg0NjggLyogSlNYTUxIdHRwUmVxdWVzdC5oICovLAogCQkJ
CTkzQjcwRDQzMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1hNTFNlcmlhbGl6ZXIuY3BwICovLApAQCAt
NTcwMyw2ICs1Nzc3LDEzIEBACiAJCQkJQTgwRTdCMEUwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRN
TFN0eWxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTdCMTEwQTE5RDYwNjAwN0ZC
OEM1IC8qIEpTSFRNTEJhc2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFN0IxNTBB
MTlENjA2MDA3RkI4QzUgLyogSlNIVE1MSGVhZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUE4MEU3RTY1MEExQTgyRUMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmggaW4g
SGVhZGVycyAqLywKKwkJCQlBODBFN0U5NzBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBODBFN0U5OTBBMUE4M0UzMDA3RkI4QzUgLyog
SlNIVE1MT3B0aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTgwRTdFOUIwQTFBODNF
MzAwN0ZCOEM1IC8qIEpTSFRNTE9wdEdyb3VwRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QTgwRTdFOUQwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTFRleHRBcmVhRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQTgwRTdFOUYwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTEJ1dHRvbkVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4MjZFOEFFMEExQThGMjMwMENEMUJCNiAvKiBK
U0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNTczNiw2
ICs1ODE3LDEyIEBACiAJCTA4NjdENjkwRkU4NDAyOEZDMDJBQUMwNyAvKiBQcm9qZWN0IG9iamVj
dCAqLyA9IHsKIAkJCWlzYSA9IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0
ID0gMTQ5QzI4NDMwODkwMkIxMTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBm
b3IgUEJYUHJvamVjdCAiV2ViQ29yZSIgKi87CisJCQlidWlsZFNldHRpbmdzID0geworCQkJfTsK
KwkJCWJ1aWxkU3R5bGVzID0gKAorCQkJCUE4MjZGM0JGMEExQkQxMUQwMENEMUJCNiAvKiBEZXZl
bG9wbWVudCAqLywKKwkJCQlBODI2RjNDMDBBMUJEMTFEMDBDRDFCQjYgLyogRGVwbG95bWVudCAq
LywKKwkJCSk7CiAJCQloYXNTY2FubmVkRm9yRW5jb2RpbmdzID0gMTsKIAkJCWtub3duUmVnaW9u
cyA9ICgKIAkJCQlFbmdsaXNoLApAQCAtNTgwNCw2ICs1ODkxLDExIEBACiAJCQkJQTgwRTdBQjUw
QTE5RDFGMTAwN0ZCOEM1IC8qIEhUTUxMaW5rRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAog
CQkJCUE4MEU3QUI2MEExOUQxRjEwMDdGQjhDNSAvKiBIVE1MSGVhZEVsZW1lbnQuaWRsIGluIFJl
c291cmNlcyAqLywKIAkJCQlBODBFN0FCNzBBMTlEMUYxMDA3RkI4QzUgLyogSFRNTFN0eWxlRWxl
bWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MEU3RTFBMEExQTdDQ0IwMDdGQjhDNSAv
KiBIVE1MVGV4dEFyZWFFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgwRTdFMUIw
QTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxJbnB1dEVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywK
KwkJCQlBODBFN0UxQzBBMUE3Q0NCMDA3RkI4QzUgLyogSFRNTE9wdGlvbkVsZW1lbnQuaWRsIGlu
IFJlc291cmNlcyAqLywKKwkJCQlBODBFN0UxRDBBMUE3Q0NCMDA3RkI4QzUgLyogSFRNTE9wdEdy
b3VwRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4MEU3RTU2MEExQTdGQjMwMDdG
QjhDNSAvKiBIVE1MQnV0dG9uRWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNjQ4Niw2
ICs2NTc4LDEzIEBACiAJCQkJQTgwRTdCMTIwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEJhc2VF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU3QjEzMEExOUQ2MDYwMDdGQjhDNSAv
KiBKU0hUTUxUaXRsZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTdCMTQwQTE5
RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEhlYWRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUE4MEU3RTY2MEExQTgyRUMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUE4MEU3RTk4MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1
dEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTgwRTdFOUEwQTFBODNFMzAwN0ZCOEM1
IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTgwRTdFOUMw
QTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTE9wdEdyb3VwRWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQlBODBFN0U5RTBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MVGV4dEFyZWFFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4MEU3RUEwMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hU
TUxCdXR0b25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4MjZFQzQ4MEExQjBDQkUw
MENEMUJCNiAvKiBKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkM2REI0NzQwQTFBOTBGQjAwRTVDRDE0IC8qIEdseXBoTWFwLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDNkRCNEQ0MEExQUZFRUYwMEU1Q0QxNCAvKiBHbHlwaE1hcE1hYy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQTlFRjQ1NzBBMUI5NTdEMDAzMzJCNjMgLyogSlNDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBXZWJDb3Jl
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ0
NTApCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBA
CisyMDA2LTA1LTE3ICBFcmljIFNlaWRlbCAgPGVzZWlkZWxAYXBwbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMu
bWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUJ1dHRvbldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlSW5wdXRXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU9wdEdyb3VwV3JhcHBl
cik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVPcHRpb25XcmFwcGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OmNyZWF0ZVRleHRBcmVhV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVK
U1dyYXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEJhc2Uu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTElucHV0RWxlbWVudEJhc2VQcm90
b0Z1bmM6OmNhbGxBc0Z1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgIChX
ZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1lbnRCYXNlOjpKU0hUTUxJbnB1dEVsZW1lbnRCYXNlKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTElucHV0RWxlbWVudEJhc2U6OmdldE93blByb3BlcnR5
U2xvdCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTElucHV0RWxlbWVudEJhc2U6OmNsYXNzSW5m
byk6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxJbnB1dEVsZW1lbnRCYXNlOjopOgorICAgICAg
ICAoV2ViQ29yZTo6SlNIVE1MSW5wdXRFbGVtZW50QmFzZTo6aW1wbCk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3I6OkpTSFRNTE9wdGlv
bkVsZW1lbnRDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxPcHRpb25FbGVt
ZW50Q29uc3RydWN0b3I6OmltcGxlbWVudHNDb25zdHJ1Y3QpOgorICAgICAgICAoV2ViQ29yZTo6
SlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yOjpjb25zdHJ1Y3QpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5oOiBBZGRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9ranNfZG9tbm9kZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL2tq
c19odG1sLmNwcDoKKyAgICAgICAgKEtKUzo6KToKKyAgICAgICAgKEtKUzo6SlNIVE1MRWxlbWVu
dDo6Y2xhc3NJbmZvKToKKyAgICAgICAgKEtKUzo6SlNIVE1MRWxlbWVudDo6YWNjZXNzb3JzKToK
KyAgICAgICAgKEtKUzo6SlNIVE1MRWxlbWVudDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAg
ICAgKEtKUzo6SFRNTEVsZW1lbnRGdW5jdGlvbjo6Y2FsbEFzRnVuY3Rpb24pOgorICAgICAgICAo
S0pTOjpKU0hUTUxFbGVtZW50OjpwdXQpOgorICAgICAgICAoS0pTOjpKU0hUTUxFbGVtZW50Ojpo
dG1sU2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9ranNfaHRtbC5oOgorICAgICAgICAo
S0pTOjpKU0hUTUxFbGVtZW50OjopOgorICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc193aW5kb3cu
Y3BwOgorICAgICAgICAoS0pTOjpXaW5kb3c6OmdldFZhbHVlUHJvcGVydHkpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGh0bWwvSFRN
TEJ1dHRvbkVsZW1lbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1l
bnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxPcHRHcm91cEVsZW1lbnQuaWRsOiBB
ZGRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbDogQWRkZWQuCisgICAg
ICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbDogQWRkZWQuCisKIDIwMDYtMDUtMTcg
IERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBmb3IgODk1NCwg
c2VwYXJhdGUgdGhlIGdseXBoIG1hcCBvdXQgaW50byBpdHMgb3duIGZpbGVzIGFuZCBtYWtlIGl0
Cg==
</data>
<flag name="review"
          id="2372"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>8377</attachid>
            <date>2006-05-17 14:58:57 -0700</date>
            <delta_ts>2006-05-17 15:03:38 -0700</delta_ts>
            <desc>Adding missing test cases</desc>
            <filename>auto.patch</filename>
            <type>text/plain</type>
            <size>98775</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE0NDUwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTEgQEAKKzIwMDYtMDUtMTcgIEVyaWMgU2VpZGVsICA8ZXNl
aWRlbEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBmYXN0L2RvbS9IVE1MSHRtbEVsZW1lbnQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL0hUTUxIdG1sRWxlbWVudC9zZXQtdmVyc2lvbi5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9IVE1MSW5wdXRFbGVtZW50OiBBZGRlZC4KKwogMjAwNi0wNS0xNyAgQWxleGV5
IFByb3NrdXJ5YWtvdiAgPGFwQG55cG9wLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
bi4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvc2l6ZS1hcy1u
dW1iZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MSW5wdXRF
bGVtZW50L3NpemUtYXMtbnVtYmVyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9IVE1MSW5wdXRFbGVtZW50L3NpemUtYXMtbnVtYmVyLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMjcgQEAKKzxodG1sPgorPGJvZHk+Cis8Zm9ybT4KKzxpbnB1dCBpZD0iaW5w
dXRFbGVtZW50IiBzaXplPSI0Ij4KKzwvZm9ybT4KKzxwPgorVGhpcyB0ZXN0cyB0byBtYWtlIHN1
cmUgdGhhdCBIVE1MSW5wdXRFbGVtZW50OjpzaXplIHJldHVybnMgYSBudW1iZXIsIG5vdCBhIHN0
cmluZy4gIFRoaXMgaXMgaW4gdmlvbGF0aW9uIG9mIHRoZSBET00gTGV2ZWwgMSBzcGVjLCBidXQg
aXMgd2hhdCBGaXJlRm94IGRvZXMsIHNvIHdlIG1hdGNoLgorPC9wPgorWW91IHNob3VsZCBzZWUg
MiBsaW5lcyB3aXRoICJTVUNDRVNTIiBiZWxvdzoKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KworZnVuY3Rpb24gY2hlY2tFeHBlY3RlZChhY3R1YWwsIGV4cGVjdGVkKQoreworICAgIGlmIChh
Y3R1YWwgIT0gZXhwZWN0ZWQpCisgICAgICAgIGRvY3VtZW50LndyaXRlbG4oIjxwPkZBSUxVUkU6
IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkICsgIlwiLCBhY3R1YWwgXCIiICsgYWN0dWFsICsgIlwi
PC9wPiIpOworICAgIGVsc2UKKyAgICAgICAgZG9jdW1lbnQud3JpdGVsbigiPHA+U1VDQ0VTUyAo
dmFsdWU6IFwiIiArIGFjdHVhbCArICJcIik8L3A+Iik7Cit9CisKK3ZhciBpbnB1dEVsZW1lbnQg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXRFbGVtZW50Iik7CitjaGVja0V4cGVjdGVk
KHR5cGVvZihpbnB1dEVsZW1lbnQuc2l6ZSksICJudW1iZXIiKTsKK2NoZWNrRXhwZWN0ZWQoaW5w
dXRFbGVtZW50LnNpemUgKyA1LCA5KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxJ
bnB1dEVsZW1lbnQvc2l6ZS1hcy1udW1iZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvc2l6ZS1hcy1udW1iZXItZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTElucHV0RWxl
bWVudC9zaXplLWFzLW51bWJlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
OCBAQAorVGhpcyB0ZXN0cyB0byBtYWtlIHN1cmUgdGhhdCBIVE1MSW5wdXRFbGVtZW50OjpzaXpl
IHJldHVybnMgYSBudW1iZXIsIG5vdCBhIHN0cmluZy4gVGhpcyBpcyBpbiB2aW9sYXRpb24gb2Yg
dGhlIERPTSBMZXZlbCAxIHNwZWMsIGJ1dCBpcyB3aGF0IEZpcmVGb3ggZG9lcywgc28gd2UgbWF0
Y2guCisKK1lvdSBzaG91bGQgc2VlIDIgbGluZXMgd2l0aCAiU1VDQ0VTUyIgYmVsb3c6CitTVUND
RVNTICh2YWx1ZTogIm51bWJlciIpCisKK1NVQ0NFU1MgKHZhbHVlOiAiOSIpCisKKwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEh0bWxFbGVtZW50L3NldC12ZXJzaW9uLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEh0bWxFbGVtZW50L3NldC12ZXJz
aW9uLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MSHRtbEVs
ZW1lbnQvc2V0LXZlcnNpb24uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNCBAQAorPGh0
bWwgdmVyc2lvbj0iMSI+Cis8Ym9keT4KKzxwPgorVGhpcyB0ZXN0cyB0byBtYWtlIHN1cmUgdGhh
dCBIVE1MSHRtbEVsZW1lbnQ6OnZlcnNpb24gc2V0dGFibGUuPC9wPgorWW91IHNob3VsZCBzZWUg
MiBsaW5lcyB3aXRoICJTVUNDRVNTIiBiZWxvdzoKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KworZnVuY3Rpb24gY2hlY2tFeHBlY3RlZChhY3R1YWwsIGV4cGVjdGVkKQoreworICAgIGlmIChh
Y3R1YWwgIT0gZXhwZWN0ZWQpCisgICAgICAgIGRvY3VtZW50LndyaXRlbG4oIjxwPkZBSUxVUkU6
IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkICsgIlwiLCBhY3R1YWwgXCIiICsgYWN0dWFsICsgIlwi
PC9wPiIpOworICAgIGVsc2UKKyAgICAgICAgZG9jdW1lbnQud3JpdGVsbigiPHA+U1VDQ0VTUyAo
dmFsdWU6IFwiIiArIGFjdHVhbCArICJcIik8L3A+Iik7Cit9CisKK3ZhciBodG1sRWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJodG1sIilbMF07CitjaGVja0V4cGVjdGVk
KGh0bWxFbGVtZW50LnZlcnNpb24sIDEpOworaHRtbEVsZW1lbnQudmVyc2lvbiA9IDI7CitjaGVj
a0V4cGVjdGVkKGh0bWxFbGVtZW50LnZlcnNpb24sIDIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTEh0bWxFbGVtZW50L3NldC12ZXJzaW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MSHRtbEVsZW1lbnQvc2V0LXZlcnNpb24tZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEh0bWxF
bGVtZW50L3NldC12ZXJzaW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4
IEBACitUaGlzIHRlc3RzIHRvIG1ha2Ugc3VyZSB0aGF0IEhUTUxIdG1sRWxlbWVudDo6dmVyc2lv
biBzZXR0YWJsZS4KKworWW91IHNob3VsZCBzZWUgMiBsaW5lcyB3aXRoICJTVUNDRVNTIiBiZWxv
dzoKK1NVQ0NFU1MgKHZhbHVlOiAiMSIpCisKK1NVQ0NFU1MgKHZhbHVlOiAiMiIpCisKKwpJbmRl
eDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lv
biAxNDQ1MCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0J
KHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgsOSBAQCBzdWIgR2V0UGFyZW50Q2xhc3NOYW1l
CiBzdWIgR2V0TGVnYWN5SGVhZGVySW5jbHVkZXMKIHsKICAgbXkgJGxlZ2FjeVBhcmVudCA9IHNo
aWZ0OwotICBpZiAoJGxlZ2FjeVBhcmVudCBlcSAiS0pTOjpXaW5kb3ciKSB7CisgIGlmICgkbGVn
YWN5UGFyZW50IGVxICJKU0hUTUxJbnB1dEVsZW1lbnRCYXNlIikgeworICAgICAgcmV0dXJuICIj
aW5jbHVkZSBcIkpTSFRNTElucHV0RWxlbWVudEJhc2UuaFwiXG5cbiI7CisgIH0gZWxzaWYgKCRs
ZWdhY3lQYXJlbnQgZXEgIktKUzo6V2luZG93IikgewogICAgICAgcmV0dXJuICIjaW5jbHVkZSBc
Imtqc193aW5kb3cuaFwiXG5cbiI7CiAgIH0gZWxzaWYgKCRsZWdhY3lQYXJlbnQgZXEgIktKUzo6
RE9NTm9kZSIpIHsKICAgICAgIHJldHVybiAiI2luY2x1ZGUgXCJranNfZG9tbm9kZS5oXCJcblxu
IjsKQEAgLTYzNiw3ICs2MzgsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8JGNsYXNzTmFt
ZSwgJHBhcmVudENsYXNzTmFtZT4oZXhlYywgJiR7Y2xhc3NOYW1lfVRhYmxlLCB0aGlzLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpO1xuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIpOwog
ICAKLSAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTVmFsdWUqICR7Y2xhc3NOYW1lfTo6Z2V0VmFs
dWVQcm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbikgY29uc3RcbntcbiIpOworICAg
IHB1c2goQGltcGxDb250ZW50LCAiSlNWYWx1ZSogJHtjbGFzc05hbWV9OjpnZXRWYWx1ZVByb3Bl
cnR5KEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdFxue1xuIik7CiAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgJGltcGxDbGFzc05hbWUqIGltcGwgPSBzdGF0aWNfY2FzdDwkaW1w
bENsYXNzTmFtZSo+KCR7Y2xhc3NOYW1lfTo6aW1wbCgpKTtcblxuIik7CiAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgc3dpdGNoICh0b2tlbikge1xuIik7CiAKQEAgLTEwNTYsNiArMTA1OCwx
MCBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlCiAgIH0gZWxzaWYgKCR0eXBlIGVxICJET01PYmplY3Qi
KSB7CiAgICAgJGltcGxJbmNsdWRlc3siSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCJ9ID0g
MTsKICAgICByZXR1cm4gInRvSlMoZXhlYywgJHZhbHVlKSI7CisgIH0gZWxzaWYgKCR0eXBlIGVx
ICJIVE1MRm9ybUVsZW1lbnQiKSB7CisgICAgJGltcGxJbmNsdWRlc3sia2pzX2h0bWwuaCJ9ID0g
MTsKKyAgICAkaW1wbEluY2x1ZGVzeyJIVE1MRm9ybUVsZW1lbnQuaCJ9ID0gMTsKKyAgICByZXR1
cm4gInRvSlMoZXhlYywgJHZhbHVlKSI7CiAgIH0gZWxzZSB7CiAgICAgJGltcGxJbmNsdWRlc3si
SlMkdHlwZS5oIn0gPSAxOwogICAgIHJldHVybiAidG9KUyhleGVjLCAkdmFsdWUpIjsKQEAgLTEy
ODMsNyArMTI4OSw3IEBAIEVPRgogICAgIGlmICgkY2FuQ29uc3RydWN0KSB7CiAkaW1wbENvbnRl
bnQgLj0gPDwgIkVPRiI7CiAgICAgdmlydHVhbCBib29sIGltcGxlbWVudHNDb25zdHJ1Y3QoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCBKU09iamVjdCogY29uc3RydWN0KEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgTGlzdCAmYXJncykgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SlNP
YmplY3QgKj4odG9KUyhleGVjLCBuZXcgJGludGVyZmFjZU5hbWUpKTsgfQorICAgIHZpcnR1YWwg
SlNPYmplY3QqIGNvbnN0cnVjdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IExpc3QmIGFyZ3MpIHsg
cmV0dXJuIHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4odG9KUyhleGVjLCBuZXcgJGludGVyZmFjZU5h
bWUpKTsgfQogRU9GCiAgICAgfQogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9w
dGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDApCisrKyBXZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5oCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENv
bXB1dGVyLCBJbmMuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVk
IGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9m
IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg
KiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkg
VGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0Eu
CisgKi8KKworI2lmbmRlZiBKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3JfSAorI2RlZmlu
ZSBKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3JfSAorCisjaW5jbHVkZSAia2pzX2JpbmRp
bmcuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
ICAgIGNsYXNzIEpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3RvciA6IHB1YmxpYyBLSlM6OkRP
TU9iamVjdCB7CisgICAgcHVibGljOgorICAgICAgICBKU0hUTUxPcHRpb25FbGVtZW50Q29uc3Ry
dWN0b3IoS0pTOjpFeGVjU3RhdGUqLCBEb2N1bWVudCopOworICAgICAgICB2aXJ0dWFsIGJvb2wg
aW1wbGVtZW50c0NvbnN0cnVjdCgpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIEtKUzo6SlNPYmpl
Y3QgKmNvbnN0cnVjdChLSlM6OkV4ZWNTdGF0ZSosIGNvbnN0IEtKUzo6TGlzdCYgYXJncyk7Cisg
ICAgcHJpdmF0ZToKKyAgICAgICAgUmVmUHRyPERvY3VtZW50PiBtX2RvYzsKKyAgICB9OworCit9
CisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfaHRtbC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2h0bWwuaAkocmV2aXNpb24gMTQ0NTApCisr
KyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19odG1sLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDgg
Kzc5LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBpbmZv
OwogCiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBodG1sX2luZm8sIGlzSW5kZXhfaW5mbywg
Ym9keV9pbmZvLCBmb3JtX2luZm8sCi0gICAgICBzZWxlY3RfaW5mbywgb3B0R3JvdXBfaW5mbywg
b3B0aW9uX2luZm8sIGlucHV0X2luZm8sIHRleHRBcmVhX2luZm8sCi0gICAgICBidXR0b25faW5m
bywgbGFiZWxfaW5mbywgZmllbGRTZXRfaW5mbywgbGVnZW5kX2luZm8sIHVsX2luZm8sIG9sX2lu
Zm8sCisgICAgICBzZWxlY3RfaW5mbywgbGFiZWxfaW5mbywgZmllbGRTZXRfaW5mbywgbGVnZW5k
X2luZm8sIHVsX2luZm8sIG9sX2luZm8sCiAgICAgICBkbF9pbmZvLCBkaXJfaW5mbywgbWVudV9p
bmZvLCBsaV9pbmZvLCBkaXZfaW5mbywgcF9pbmZvLCBoZWFkaW5nX2luZm8sCiAgICAgICBibG9j
a1F1b3RlX2luZm8sIHFfaW5mbywgcHJlX2luZm8sIGJyX2luZm8sIGJhc2VGb250X2luZm8sIGZv
bnRfaW5mbywKICAgICAgIGhyX2luZm8sIG1vZF9pbmZvLCBhX2luZm8sIGltZ19pbmZvLCBvYmpl
Y3RfaW5mbywgcGFyYW1faW5mbywKQEAgLTk0LDggKzkzLDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAg
ICAgc3RydWN0IEFjY2Vzc29ycyB7IEdldHRlckZ1bmN0aW9uIG1fZ2V0dGVyOyBTZXR0ZXJGdW5j
dGlvbiBtX3NldHRlcjsgfTsKICAgICBjb25zdCBBY2Nlc3NvcnMqIGFjY2Vzc29ycygpIGNvbnN0
OwogICAgIHN0YXRpYyBjb25zdCBBY2Nlc3NvcnMgaHRtbF9hY2Nlc3NvcnMsIGlzSW5kZXhfYWNj
ZXNzb3JzLCBib2R5X2FjY2Vzc29ycywgZm9ybV9hY2Nlc3NvcnMsCi0gICAgICBzZWxlY3RfYWNj
ZXNzb3JzLCBvcHRHcm91cF9hY2Nlc3NvcnMsIG9wdGlvbl9hY2Nlc3NvcnMsIGlucHV0X2FjY2Vz
c29ycywgdGV4dEFyZWFfYWNjZXNzb3JzLAotICAgICAgYnV0dG9uX2FjY2Vzc29ycywgbGFiZWxf
YWNjZXNzb3JzLCBmaWVsZFNldF9hY2Nlc3NvcnMsIGxlZ2VuZF9hY2Nlc3NvcnMsIHVsX2FjY2Vz
c29ycywgb2xfYWNjZXNzb3JzLAorICAgICAgc2VsZWN0X2FjY2Vzc29ycywgbGFiZWxfYWNjZXNz
b3JzLCBmaWVsZFNldF9hY2Nlc3NvcnMsIGxlZ2VuZF9hY2Nlc3NvcnMsIHVsX2FjY2Vzc29ycywg
b2xfYWNjZXNzb3JzLAogICAgICAgZGxfYWNjZXNzb3JzLCBkaXJfYWNjZXNzb3JzLCBtZW51X2Fj
Y2Vzc29ycywgbGlfYWNjZXNzb3JzLCBkaXZfYWNjZXNzb3JzLCBwX2FjY2Vzc29ycywgaGVhZGlu
Z19hY2Nlc3NvcnMsCiAgICAgICBibG9ja1F1b3RlX2FjY2Vzc29ycywgcV9hY2Nlc3NvcnMsIHBy
ZV9hY2Nlc3NvcnMsIGJyX2FjY2Vzc29ycywgYmFzZUZvbnRfYWNjZXNzb3JzLCBmb250X2FjY2Vz
c29ycywKICAgICAgIGhyX2FjY2Vzc29ycywgbW9kX2FjY2Vzc29ycywgYV9hY2Nlc3NvcnMsIGlt
Z19hY2Nlc3NvcnMsIG9iamVjdF9hY2Nlc3NvcnMsIHBhcmFtX2FjY2Vzc29ycywKQEAgLTExMywx
NiArMTExLDYgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgdm9pZCAgZm9ybVNldHRlcihFeGVjU3Rh
dGUgKmV4ZWMsIGludCB0b2tlbiwgSlNWYWx1ZSAqdmFsdWUsIGNvbnN0IFdlYkNvcmU6OlN0cmlu
ZyYgc3RyKTsKICAgICBKU1ZhbHVlICpzZWxlY3RHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQg
dG9rZW4pIGNvbnN0OwogICAgIHZvaWQgIHNlbGVjdFNldHRlcihFeGVjU3RhdGUgKmV4ZWMsIGlu
dCB0b2tlbiwgSlNWYWx1ZSAqdmFsdWUsIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgc3RyKTsKLSAg
ICBKU1ZhbHVlICpvcHRHcm91cEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29u
c3Q7Ci0gICAgdm9pZCAgb3B0R3JvdXBTZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4s
IEpTVmFsdWUgKnZhbHVlLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIHN0cik7Ci0gICAgSlNWYWx1
ZSAqb3B0aW9uR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuKSBjb25zdDsKLSAgICB2
b2lkICBvcHRpb25TZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZh
bHVlLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIHN0cik7Ci0gICAgSlNWYWx1ZSAqaW5wdXRHZXR0
ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNvbnN0OwotICAgIHZvaWQgIGlucHV0U2V0
dGVyKEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuLCBKU1ZhbHVlICp2YWx1ZSwgY29uc3QgV2Vi
Q29yZTo6U3RyaW5nJiBzdHIpOwotICAgIEpTVmFsdWUgKnRleHRBcmVhR2V0dGVyKEV4ZWNTdGF0
ZSogZXhlYywgaW50IHRva2VuKSBjb25zdDsKLSAgICB2b2lkICB0ZXh0QXJlYVNldHRlcihFeGVj
U3RhdGUgKmV4ZWMsIGludCB0b2tlbiwgSlNWYWx1ZSAqdmFsdWUsIGNvbnN0IFdlYkNvcmU6OlN0
cmluZyYgc3RyKTsKLSAgICBKU1ZhbHVlICpidXR0b25HZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBp
bnQgdG9rZW4pIGNvbnN0OwotICAgIHZvaWQgIGJ1dHRvblNldHRlcihFeGVjU3RhdGUgKmV4ZWMs
IGludCB0b2tlbiwgSlNWYWx1ZSAqdmFsdWUsIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgc3RyKTsK
ICAgICBKU1ZhbHVlICpsYWJlbEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29u
c3Q7CiAgICAgdm9pZCAgbGFiZWxTZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpT
VmFsdWUgKnZhbHVlLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIHN0cik7CiAgICAgSlNWYWx1ZSAq
ZmllbGRTZXRHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNvbnN0OwpAQCAtMjAy
LDMxICsxOTAsMTUgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgSlNWYWx1ZSAqbWFycXVlZUdldHRl
cihFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29uc3Q7CiAgICAgdm9pZCAgbWFycXVlZVNl
dHRlcihFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbiwgSlNWYWx1ZSAqdmFsdWUsIGNvbnN0IFdl
YkNvcmU6OlN0cmluZyYgc3RyKTsKIAotICAgIGVudW0geyBIdG1sVmVyc2lvbiwgSGVhZFByb2Zp
bGUsIExpbmtIcmVmLCBMaW5rUmVsLCBMaW5rTWVkaWEsCi0gICAgICAgICAgIExpbmtDaGFyc2V0
LCBMaW5rRGlzYWJsZWQsIExpbmtIcmVmTGFuZywgTGlua1JldiwgTGlua1RhcmdldCwgTGlua1R5
cGUsCi0gICAgICAgICAgIExpbmtTaGVldCwgVGl0bGVUZXh0LCBNZXRhTmFtZSwgTWV0YUh0dHBF
cXVpdiwgTWV0YUNvbnRlbnQsIE1ldGFTY2hlbWUsCi0gICAgICAgICAgIEJhc2VIcmVmLCBCYXNl
VGFyZ2V0LCBJc0luZGV4Rm9ybSwgSXNJbmRleFByb21wdCwgU3R5bGVEaXNhYmxlZCwKLSAgICAg
ICAgICAgU3R5bGVTaGVldCwgU3R5bGVUeXBlLCBTdHlsZU1lZGlhLCBCb2R5QmFja2dyb3VuZCwg
Qm9keVZMaW5rLCBCb2R5VGV4dCwKKyAgICBlbnVtIHsgSHRtbFZlcnNpb24sIElzSW5kZXhGb3Jt
LCBJc0luZGV4UHJvbXB0LAorICAgICAgICAgICBCb2R5QmFja2dyb3VuZCwgQm9keVZMaW5rLCBC
b2R5VGV4dCwKICAgICAgICAgICAgQm9keUxpbmssIEJvZHlBTGluaywgQm9keUJnQ29sb3IsIEJv
ZHlTY3JvbGxMZWZ0LCBCb2R5U2Nyb2xsVG9wLCBCb2R5U2Nyb2xsSGVpZ2h0LCBCb2R5U2Nyb2xs
V2lkdGgsCiAgICAgICAgICAgIEZvcm1BY3Rpb24sIEZvcm1FbmNUeXBlLCBGb3JtRWxlbWVudHMs
IEZvcm1MZW5ndGgsIEZvcm1BY2NlcHRDaGFyc2V0LAogICAgICAgICAgICBGb3JtUmVzZXQsIEZv
cm1UYXJnZXQsIEZvcm1OYW1lLCBGb3JtTWV0aG9kLCBGb3JtU3VibWl0LCBTZWxlY3RBZGQsCiAg
ICAgICAgICAgIFNlbGVjdFRhYkluZGV4LCBTZWxlY3RWYWx1ZSwgU2VsZWN0U2VsZWN0ZWRJbmRl
eCwgU2VsZWN0TGVuZ3RoLAogICAgICAgICAgICBTZWxlY3RSZW1vdmUsIFNlbGVjdEZvcm0sIFNl
bGVjdEJsdXIsIFNlbGVjdFR5cGUsIFNlbGVjdE9wdGlvbnMsCiAgICAgICAgICAgIFNlbGVjdERp
c2FibGVkLCBTZWxlY3RNdWx0aXBsZSwgU2VsZWN0TmFtZSwgU2VsZWN0U2l6ZSwgU2VsZWN0Rm9j
dXMsCi0gICAgICAgICAgIE9wdEdyb3VwRGlzYWJsZWQsIE9wdEdyb3VwTGFiZWwsIE9wdGlvbklu
ZGV4LCBPcHRpb25TZWxlY3RlZCwKLSAgICAgICAgICAgT3B0aW9uRm9ybSwgT3B0aW9uVGV4dCwg
T3B0aW9uRGVmYXVsdFNlbGVjdGVkLCBPcHRpb25EaXNhYmxlZCwKLSAgICAgICAgICAgT3B0aW9u
TGFiZWwsIE9wdGlvblZhbHVlLCBJbnB1dEJsdXIsIElucHV0UmVhZE9ubHksIElucHV0QWNjZXB0
LAotICAgICAgICAgICBJbnB1dFNpemUsIElucHV0RGVmYXVsdFZhbHVlLCBJbnB1dFRhYkluZGV4
LCBJbnB1dFZhbHVlLCBJbnB1dFR5cGUsCi0gICAgICAgICAgIElucHV0Rm9jdXMsIElucHV0TWF4
TGVuZ3RoLCBJbnB1dERlZmF1bHRDaGVja2VkLCBJbnB1dERpc2FibGVkLAotICAgICAgICAgICBJ
bnB1dENoZWNrZWQsIElucHV0SW5kZXRlcm1pbmF0ZSwgSW5wdXRGb3JtLCBJbnB1dEFjY2Vzc0tl
eSwgSW5wdXRBbGlnbiwgSW5wdXRBbHQsCi0gICAgICAgICAgIElucHV0TmFtZSwgSW5wdXRTcmMs
IElucHV0VXNlTWFwLCBJbnB1dFNlbGVjdCwgSW5wdXRDbGljaywKLSAgICAgICAgICAgSW5wdXRT
ZWxlY3Rpb25TdGFydCwgSW5wdXRTZWxlY3Rpb25FbmQsIElucHV0U2V0U2VsZWN0aW9uUmFuZ2Us
Ci0gICAgICAgICAgIFRleHRBcmVhQWNjZXNzS2V5LCBUZXh0QXJlYU5hbWUsIFRleHRBcmVhRGVm
YXVsdFZhbHVlLCBUZXh0QXJlYVNlbGVjdCwgVGV4dEFyZWFTZXRTZWxlY3Rpb25SYW5nZSwKLSAg
ICAgICAgICAgVGV4dEFyZWFDb2xzLCBUZXh0QXJlYURpc2FibGVkLCBUZXh0QXJlYUZvcm0sIFRl
eHRBcmVhVHlwZSwKLSAgICAgICAgICAgVGV4dEFyZWFUYWJJbmRleCwgVGV4dEFyZWFSZWFkT25s
eSwgVGV4dEFyZWFSb3dzLCBUZXh0QXJlYVZhbHVlLAotICAgICAgICAgICBUZXh0QXJlYVNlbGVj
dGlvblN0YXJ0LCBUZXh0QXJlYVNlbGVjdGlvbkVuZCwKLSAgICAgICAgICAgVGV4dEFyZWFCbHVy
LCBUZXh0QXJlYUZvY3VzLCBCdXR0b25CbHVyLCBCdXR0b25Gb2N1cywgQnV0dG9uRm9ybSwgQnV0
dG9uVGFiSW5kZXgsIEJ1dHRvbk5hbWUsCi0gICAgICAgICAgIEJ1dHRvbkRpc2FibGVkLCBCdXR0
b25BY2Nlc3NLZXksIEJ1dHRvblR5cGUsIEJ1dHRvblZhbHVlLCBMYWJlbEh0bWxGb3IsCisgICAg
ICAgICAgIExhYmVsSHRtbEZvciwKICAgICAgICAgICAgTGFiZWxGb3JtLCBMYWJlbEZvY3VzLCBM
YWJlbEFjY2Vzc0tleSwgRmllbGRTZXRGb3JtLCBMZWdlbmRGb3JtLCBMZWdlbmRBY2Nlc3NLZXks
CiAgICAgICAgICAgIExlZ2VuZEFsaWduLCBMZWdlbmRGb2N1cywgVUxpc3RUeXBlLCBVTGlzdENv
bXBhY3QsIE9MaXN0U3RhcnQsIE9MaXN0Q29tcGFjdCwKICAgICAgICAgICAgT0xpc3RUeXBlLCBE
TGlzdENvbXBhY3QsIERpcmVjdG9yeUNvbXBhY3QsIE1lbnVDb21wYWN0LCBMSVR5cGUsCkBAIC0z
MzIsMTcgKzMwNCw2IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHZpcnR1YWwgYm9vbCBtYXNxdWVy
YWRlQXNVbmRlZmluZWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgIH07CiAgIAotICAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vIE9wdGlvbiBPYmplY3QgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ci0KLSAgY2xhc3MgT3B0aW9uQ29uc3RydWN0b3JJbXAgOiBwdWJsaWMgRE9NT2JqZWN0IHsKLSAg
cHVibGljOgotICAgIE9wdGlvbkNvbnN0cnVjdG9ySW1wKEV4ZWNTdGF0ZSAqZXhlYywgV2ViQ29y
ZTo6RG9jdW1lbnQgKmQpOwotICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ29uc3RydWN0KCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCBKU09iamVjdCAqY29uc3RydWN0KEV4ZWNTdGF0ZSAqZXhlYywg
Y29uc3QgTGlzdCAmYXJncyk7Ci0gIHByaXZhdGU6Ci0gICAgUmVmUHRyPFdlYkNvcmU6OkRvY3Vt
ZW50PiBtX2RvYzsKLSAgfTsKLQogICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vIEltYWdlIE9iamVj
dCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KIAogICBjbGFzcyBJbWFnZUNvbnN0cnVjdG9ySW1w
IDogcHVibGljIERPTU9iamVjdCB7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElu
cHV0RWxlbWVudEJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNI
VE1MSW5wdXRFbGVtZW50QmFzZS5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSFRNTElucHV0RWxlbWVudEJhc2UuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEx
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1
aXRlIDMzMCwKKyAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmgiCisKKyNpbmNs
dWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisKKyNpbmNsdWRlICJKU0hUTUxJbnB1dEVsZW1lbnRC
YXNlVGFibGUuY3BwIgorCit1c2luZyBuYW1lc3BhY2UgS0pTOworCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKKy8qCitAYmVnaW4gSlNIVE1MSW5wdXRFbGVtZW50QmFzZVRhYmxlIDMKKyAgc2VsZWN0
aW9uU3RhcnQgICAgICAgIFdlYkNvcmU6OkpTSFRNTElucHV0RWxlbWVudEJhc2U6OlNlbGVjdGlv
blN0YXJ0ICAgICAgICAgICAgRG9udERlbGV0ZQorICBzZWxlY3Rpb25FbmQgICAgICAgICAgV2Vi
Q29yZTo6SlNIVE1MSW5wdXRFbGVtZW50QmFzZTo6U2VsZWN0aW9uRW5kICAgICAgICAgICAgICBE
b250RGVsZXRlCitAZW5kCitAYmVnaW4gSlNIVE1MSW5wdXRFbGVtZW50QmFzZVByb3RvVGFibGUg
MQorICBzZXRTZWxlY3Rpb25SYW5nZSAgICAgV2ViQ29yZTo6SlNIVE1MSW5wdXRFbGVtZW50QmFz
ZTo6U2V0U2VsZWN0aW9uUmFuZ2UgICAgICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDIKK0BlbmQK
KyovCisKK0tKU19JTVBMRU1FTlRfUFJPVE9GVU5DKEpTSFRNTElucHV0RWxlbWVudEJhc2VQcm90
b0Z1bmMpCitLSlNfSU1QTEVNRU5UX1BST1RPVFlQRSgiSlNIVE1MSW5wdXRFbGVtZW50QmFzZSIs
IEpTSFRNTElucHV0RWxlbWVudEJhc2VQcm90bywgSlNIVE1MSW5wdXRFbGVtZW50QmFzZVByb3Rv
RnVuYykKKworSlNWYWx1ZSogSlNIVE1MSW5wdXRFbGVtZW50QmFzZVByb3RvRnVuYzo6Y2FsbEFz
RnVuY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogdGhpc09iaiwgY29uc3QgTGlzdCYg
YXJncykKK3sKKyAgICBIVE1MSW5wdXRFbGVtZW50JiBpbnB1dCA9ICpzdGF0aWNfY2FzdDxIVE1M
SW5wdXRFbGVtZW50Kj4oc3RhdGljX2Nhc3Q8SlNIVE1MSW5wdXRFbGVtZW50QmFzZSo+KHRoaXNP
YmopLT5pbXBsKCkpOworICAgIGlmIChpZCA9PSBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlOjpTZXRT
ZWxlY3Rpb25SYW5nZSkgeworICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShhcmdzWzBd
LT50b0ludDMyKGV4ZWMpLCBhcmdzWzFdLT50b0ludDMyKGV4ZWMpKTsKKyAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CisgICAgfQorICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworfQorCitj
b25zdCBDbGFzc0luZm8gSlNIVE1MSW5wdXRFbGVtZW50QmFzZTo6aW5mbyA9IHsgIkpTSFRNTElu
cHV0RWxlbWVudEJhc2UiLCAmS0pTOjpKU0hUTUxFbGVtZW50OjppbmZvLCAmSlNIVE1MSW5wdXRF
bGVtZW50QmFzZVRhYmxlLCAwIH07CisKK0pTSFRNTElucHV0RWxlbWVudEJhc2U6OkpTSFRNTElu
cHV0RWxlbWVudEJhc2UoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPEhUTUxJbnB1dEVsZW1l
bnQ+IGUpCisgICAgOiBLSlM6OkpTSFRNTEVsZW1lbnQoZXhlYywgZS5nZXQoKSkKK3sKKyAgICBz
ZXRQcm90b3R5cGUoSlNIVE1MSW5wdXRFbGVtZW50QmFzZVByb3RvOjpzZWxmKGV4ZWMpKTsKK30K
KworYm9vbCBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYg
c2xvdCkKK3sKKyAgICBIVE1MSW5wdXRFbGVtZW50JiBpbnB1dCA9ICpzdGF0aWNfY2FzdDxIVE1M
SW5wdXRFbGVtZW50Kj4oaW1wbCgpKTsKKyAgICAKKyAgICAvLyBpZiB0aGlzIGVsZW1lbnQgZG9l
c24ndCBzdXBwb3J0IHNlbGVjdGlvbiwgd2UgaGF2ZSBub3RoaW5nIHRvIGRvLCB0cnkgb3VyIHBh
cmVudAorICAgIGlmICghaW5wdXQuY2FuSGF2ZVNlbGVjdGlvbigpKQorICAgICAgcmV0dXJuIEtK
Uzo6SlNIVE1MRWxlbWVudDo6Z2V0T3duUHJvcGVydHlTbG90KGV4ZWMsIHByb3BlcnR5TmFtZSwg
c2xvdCk7CisgICAgCisgICAgLy8gb3RoZXJ3aXNlLCBkbyBvdXIgb3duIGZ1bmN0aW9uIGxvb2t1
cCBvbiBvdXIgcHJvdG90eXBlCisgICAgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSA9IExvb2t1cDo6
ZmluZEVudHJ5KCZKU0hUTUxJbnB1dEVsZW1lbnRCYXNlUHJvdG9UYWJsZSwgcHJvcGVydHlOYW1l
KTsKKyAgICBpZiAoZW50cnkgJiYgKGVudHJ5LT52YWx1ZSA9PSBTZXRTZWxlY3Rpb25SYW5nZSkp
IHsKKyAgICAgICAgc2xvdC5zZXRTdGF0aWNFbnRyeSh0aGlzLCBlbnRyeSwgc3RhdGljRnVuY3Rp
b25HZXR0ZXI8SlNIVE1MSW5wdXRFbGVtZW50QmFzZVByb3RvRnVuYz4pOyAKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorICAgIEFTU0VSVCghZW50cnkpOworICAgIAorICAgIC8vIGZpbmFs
bHkgdHJ5IHZhbHVlIGxvb2t1cCBvciB3YWxrIHRoZSBwYXJlbnQgY2hhaW4KKyAgICByZXR1cm4g
Z2V0U3RhdGljVmFsdWVTbG90PEpTSFRNTElucHV0RWxlbWVudEJhc2UsIEtKUzo6SlNIVE1MRWxl
bWVudD4oZXhlYywgJkpTSFRNTElucHV0RWxlbWVudEJhc2VUYWJsZSwgdGhpcywgcHJvcGVydHlO
YW1lLCBzbG90KTsKK30KKworSlNWYWx1ZSogSlNIVE1MSW5wdXRFbGVtZW50QmFzZTo6Z2V0VmFs
dWVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29uc3QKK3sKKyAgICBIVE1M
SW5wdXRFbGVtZW50JiBpbnB1dCA9ICpzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oaW1w
bCgpKTsKKyAgICBBU1NFUlQoaW5wdXQuY2FuSGF2ZVNlbGVjdGlvbigpKTsKKyAgICBzd2l0Y2gg
KHRva2VuKSB7CisgICAgY2FzZSBTZWxlY3Rpb25TdGFydDoKKyAgICAgICAgcmV0dXJuIGpzTnVt
YmVyKGlucHV0LnNlbGVjdGlvblN0YXJ0KCkpOworICAgIGNhc2UgU2VsZWN0aW9uRW5kOgorICAg
ICAgICByZXR1cm4ganNOdW1iZXIoaW5wdXQuc2VsZWN0aW9uRW5kKCkpOworICAgIH0KKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKK30KKwordm9p
ZCBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlOjpwdXQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVu
dGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUqIHZhbHVlLCBpbnQgYXR0cikKK3sKKyAgICBs
b29rdXBQdXQ8SlNIVE1MSW5wdXRFbGVtZW50QmFzZSwgS0pTOjpKU0hUTUxFbGVtZW50PihleGVj
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBhdHRyLCAmSlNIVE1MSW5wdXRFbGVtZW50QmFzZVRhYmxl
LCB0aGlzKTsKK30KKwordm9pZCBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlOjpwdXRWYWx1ZVByb3Bl
cnR5KEV4ZWNTdGF0ZSogZXhlYywgaW50IHRva2VuLCBKU1ZhbHVlKiB2YWx1ZSwgaW50IC8qYXR0
ciovKQoreworICAgIEhUTUxJbnB1dEVsZW1lbnQmIGlucHV0ID0gKnN0YXRpY19jYXN0PEhUTUxJ
bnB1dEVsZW1lbnQqPihpbXBsKCkpOworICAgIEFTU0VSVChpbnB1dC5jYW5IYXZlU2VsZWN0aW9u
KCkpOworICAgIHN3aXRjaCAodG9rZW4pIHsKKyAgICBjYXNlIFNlbGVjdGlvblN0YXJ0OgorICAg
ICAgICBpbnB1dC5zZXRTZWxlY3Rpb25TdGFydCh2YWx1ZS0+dG9JbnQzMihleGVjKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICBjYXNlIFNlbGVjdGlvbkVuZDoKKyAgICAgICAgaW5wdXQuc2V0U2Vs
ZWN0aW9uRW5kKHZhbHVlLT50b0ludDMyKGV4ZWMpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKworfQpJbmRleDogV2ViQ29yZS9iaW5kaW5n
cy9qcy9ranNfZG9tbm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMva2pz
X2RvbW5vZGUuaAkocmV2aXNpb24gMTQ0NTApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc19k
b21ub2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDE4ICszNSwxOCBAQCBLSlNfREVGSU5FX1BS
T1RPVFlQRShET01Ob2RlUHJvdG8pCiBjbGFzcyBET01Ob2RlIDogcHVibGljIERPTU9iamVjdCB7
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RE9NTm9kZSgpOwotICAgIHZpcnR1YWwgYm9vbCB0b0Jv
b2xlYW4oRXhlY1N0YXRlICopIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNsb3QmKTsKLSAg
ICBKU1ZhbHVlICpnZXRWYWx1ZVByb3BlcnR5KEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuKSBj
b25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgdG9Cb29sZWFuKEV4ZWNTdGF0ZSopIGNvbnN0OworICAg
IHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYsIFByb3BlcnR5U2xvdCYpOworICAgIEpTVmFsdWUgKmdldFZhbHVlUHJvcGVydHkoRXhl
Y1N0YXRlKiwgaW50IHRva2VuKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgbWFyaygpOwotICAg
IHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyICZwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgKnZhbHVlLCBpbnQgYXR0ciA9IE5vbmUpOwotICAgIHZvaWQgcHV0
VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbiwgSlNWYWx1ZSAqdmFsdWUs
IGludCBhdHRyKTsKKyAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50
aWZpZXIgJnByb3BlcnR5TmFtZSwgSlNWYWx1ZSosIGludCBhdHRyID0gTm9uZSk7CisgICAgdm9p
ZCBwdXRWYWx1ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGludCB0b2tlbiwgSlNWYWx1ZSosIGludCBh
dHRyKTsKICAgICBXZWJDb3JlOjpOb2RlICppbXBsKCkgY29uc3QgeyByZXR1cm4gbV9pbXBsLmdl
dCgpOyB9CiAgICAgdmlydHVhbCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsg
cmV0dXJuICZpbmZvOyB9CiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBpbmZvOwogICAgIAot
ICAgIHZpcnR1YWwgSlNWYWx1ZSAqdG9QcmltaXRpdmUoRXhlY1N0YXRlICpleGVjLCBKU1R5cGUg
cHJlZmVycmVkID0gVW5kZWZpbmVkVHlwZSkgY29uc3Q7Ci0gICAgdmlydHVhbCBVU3RyaW5nIHRv
U3RyaW5nKEV4ZWNTdGF0ZSAqZXhlYykgY29uc3Q7CisgICAgdmlydHVhbCBKU1ZhbHVlICp0b1By
aW1pdGl2ZShFeGVjU3RhdGUqLCBKU1R5cGUgcHJlZmVycmVkID0gVW5kZWZpbmVkVHlwZSkgY29u
c3Q7CisgICAgdmlydHVhbCBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSopIGNvbnN0OwogICAg
IAogICAgIGVudW0geyBOb2RlTmFtZSwgTm9kZVZhbHVlLCBOb2RlVHlwZSwgUGFyZW50Tm9kZSwg
UGFyZW50RWxlbWVudCwKICAgICAgICAgQ2hpbGROb2RlcywgRmlyc3RDaGlsZCwgTGFzdENoaWxk
LCBQcmV2aW91c1NpYmxpbmcsIE5leHRTaWJsaW5nLCBJdGVtLApAQCAtNjMsNyArNjMsNyBAQCBw
cml2YXRlOgogICAgIC8vIERvbid0IHVzZSB0aGlzIGNsYXNzIGRpcmVjdGx5IC0tIHVzZSBKU05v
ZGUgaW5zdGVhZAogICAgIGZyaWVuZCBjbGFzcyBXZWJDb3JlOjpKU05vZGU7CiAgICAgRE9NTm9k
ZSgpOwotICAgIERPTU5vZGUoRXhlY1N0YXRlICpleGVjLCBXZWJDb3JlOjpOb2RlICpuKTsKKyAg
ICBET01Ob2RlKEV4ZWNTdGF0ZSosIFdlYkNvcmU6Ok5vZGUgKm4pOwogICAgIERPTU5vZGUoV2Vi
Q29yZTo6Tm9kZSAqbik7CiB9OwogCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEVs
ZW1lbnRXcmFwcGVyRmFjdG9yeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwCShyZXZpc2lvbiAxNDQ1MCkKKysrIFdl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRWxlbWVudFdyYXBwZXJGYWN0b3J5LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjAsMjQgKzIwLDM5IEBACiAjaW5jbHVkZSAiSlNIVE1MRWxlbWVudFdyYXBw
ZXJGYWN0b3J5LmgiCiAKICNpbmNsdWRlICJIVE1MQmFzZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJI
VE1MQnV0dG9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxDYW52YXNFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTEhlYWRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxMaW5rRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxNZXRhRWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxPcHRHcm91cEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MT3B0aW9u
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxTdHlsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
VGV4dEFyZWFFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRpdGxlRWxlbWVudC5oIgorCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCisKICNpbmNsdWRlICJKU0hUTUxCYXNlRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkpTSFRNTEJ1dHRvbkVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxDYW52YXNFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSlNIVE1MSGVhZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU0hUTUxJ
bnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJKU0hUTUxMaW5rRWxlbWVudC5oIgogI2luY2x1ZGUg
IkpTSFRNTE1ldGFFbGVtZW50LmgiCisjaW5jbHVkZSAiSlNIVE1MT3B0R3JvdXBFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSlNIVE1MT3B0aW9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkpTSFRNTFN0eWxl
RWxlbWVudC5oIgorI2luY2x1ZGUgIkpTSFRNTFRleHRBcmVhRWxlbWVudC5oIgogI2luY2x1ZGUg
IkpTSFRNTFRpdGxlRWxlbWVudC5oIgorCiAjaW5jbHVkZSAia2pzX2h0bWwuaCIKIAogdXNpbmcg
bmFtZXNwYWNlIEtKUzsKIAorLy8gRklYTUU6IEV2ZW50dWFsbHkgdGhpcyBmaWxlIHNob3VsZCBi
ZSBhdXRvZ2VuZXJhdGVkLCBqdXN0IGxpa2UgSFRNTE5hbWVzLCBIVE1MRWxlbWVudEZhY3Rvcnks
IGV0Yy4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVz
OwpAQCAtNDksNiArNjQsMTEgQEAgc3RhdGljIERPTU5vZGUqIGNyZWF0ZUJhc2VXcmFwcGVyKEV4
ZWNTdAogICAgIHJldHVybiBuZXcgSlNIVE1MQmFzZUVsZW1lbnQoZXhlYywgc3RhdGljX2Nhc3Q8
SFRNTEJhc2VFbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOwogfQogCitzdGF0aWMgRE9NTm9kZSog
Y3JlYXRlQnV0dG9uV3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8SFRNTEVsZW1l
bnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBKU0hUTUxCdXR0b25FbGVtZW50KGV4ZWMs
IHN0YXRpY19jYXN0PEhUTUxCdXR0b25FbGVtZW50Kj4oZWxlbWVudC5nZXQoKSkpOworfQorCiBz
dGF0aWMgRE9NTm9kZSogY3JlYXRlQ2FudmFzV3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NS
ZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCiB7CiAgICAgcmV0dXJuIG5ldyBKU0hUTUxDYW52
YXNFbGVtZW50KGV4ZWMsIHN0YXRpY19jYXN0PEhUTUxDYW52YXNFbGVtZW50Kj4oZWxlbWVudC5n
ZXQoKSkpOwpAQCAtNjQsMTYgKzg0LDM2IEBAIHN0YXRpYyBET01Ob2RlKiBjcmVhdGVMaW5rV3Jh
cHBlcihFeGVjU3QKICAgICByZXR1cm4gbmV3IEpTSFRNTExpbmtFbGVtZW50KGV4ZWMsIHN0YXRp
Y19jYXN0PEhUTUxMaW5rRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKIH0KIAorc3RhdGljIERP
TU5vZGUqIGNyZWF0ZUlucHV0V3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBKU0hUTUxJbnB1dEVsZW1lbnQo
ZXhlYywgc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30K
Kwogc3RhdGljIERPTU5vZGUqIGNyZWF0ZU1ldGFXcmFwcGVyKEV4ZWNTdGF0ZSogZXhlYywgUGFz
c1JlZlB0cjxIVE1MRWxlbWVudD4gZWxlbWVudCkKIHsKICAgICByZXR1cm4gbmV3IEpTSFRNTE1l
dGFFbGVtZW50KGV4ZWMsIHN0YXRpY19jYXN0PEhUTUxNZXRhRWxlbWVudCo+KGVsZW1lbnQuZ2V0
KCkpKTsKIH0KIAorc3RhdGljIERPTU5vZGUqIGNyZWF0ZU9wdEdyb3VwV3JhcHBlcihFeGVjU3Rh
dGUqIGV4ZWMsIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJu
IG5ldyBKU0hUTUxPcHRHcm91cEVsZW1lbnQoZXhlYywgc3RhdGljX2Nhc3Q8SFRNTE9wdEdyb3Vw
RWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKworc3RhdGljIERPTU5vZGUqIGNyZWF0ZU9w
dGlvbldyYXBwZXIoRXhlY1N0YXRlKiBleGVjLCBQYXNzUmVmUHRyPEhUTUxFbGVtZW50PiBlbGVt
ZW50KQoreworICAgIHJldHVybiBuZXcgSlNIVE1MT3B0aW9uRWxlbWVudChleGVjLCBzdGF0aWNf
Y2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwogc3RhdGljIERP
TU5vZGUqIGNyZWF0ZVN0eWxlV3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8SFRN
TEVsZW1lbnQ+IGVsZW1lbnQpCiB7CiAgICAgcmV0dXJuIG5ldyBKU0hUTUxTdHlsZUVsZW1lbnQo
ZXhlYywgc3RhdGljX2Nhc3Q8SFRNTFN0eWxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKIH0K
IAorc3RhdGljIERPTU5vZGUqIGNyZWF0ZVRleHRBcmVhV3JhcHBlcihFeGVjU3RhdGUqIGV4ZWMs
IFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBKU0hU
TUxUZXh0QXJlYUVsZW1lbnQoZXhlYywgc3RhdGljX2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCo+
KGVsZW1lbnQuZ2V0KCkpKTsKK30KKwogc3RhdGljIERPTU5vZGUqIGNyZWF0ZVRpdGxlV3JhcHBl
cihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8SFRNTEVsZW1lbnQ+IGVsZW1lbnQpCiB7CiAg
ICAgcmV0dXJuIG5ldyBKU0hUTUxUaXRsZUVsZW1lbnQoZXhlYywgc3RhdGljX2Nhc3Q8SFRNTFRp
dGxlRWxlbWVudCo+KGVsZW1lbnQuZ2V0KCkpKTsKQEAgLTg0LDExICsxMjQsMTYgQEAgRE9NTm9k
ZSogY3JlYXRlSlNXcmFwcGVyKEV4ZWNTdGF0ZSogZXhlYwogICAgIHN0YXRpYyBIYXNoTWFwPFdl
YkNvcmU6OkF0b21pY1N0cmluZ0ltcGwqLCBDcmVhdGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlv
bj4gbWFwOwogICAgIGlmIChtYXAuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1hcC5zZXQoYmFzZVRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZUJhc2VXcmFwcGVyKTsKKyAgICAgICAgbWFwLnNl
dChidXR0b25UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVCdXR0b25XcmFwcGVyKTsKICAg
ICAgICAgbWFwLnNldChjYW52YXNUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVDYW52YXNX
cmFwcGVyKTsKICAgICAgICAgbWFwLnNldChoZWFkVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgY3Jl
YXRlSGVhZFdyYXBwZXIpOworICAgICAgICBtYXAuc2V0KGlucHV0VGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgY3JlYXRlSW5wdXRXcmFwcGVyKTsKICAgICAgICAgbWFwLnNldChsaW5rVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgY3JlYXRlTGlua1dyYXBwZXIpOwogICAgICAgICBtYXAuc2V0KG1ldGFU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVNZXRhV3JhcHBlcik7CisgICAgICAgIG1hcC5z
ZXQob3B0Z3JvdXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVPcHRHcm91cFdyYXBwZXIp
OworICAgICAgICBtYXAuc2V0KG9wdGlvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksIGNyZWF0ZU9w
dGlvbldyYXBwZXIpOwogICAgICAgICBtYXAuc2V0KHN0eWxlVGFnLmxvY2FsTmFtZSgpLmltcGwo
KSwgY3JlYXRlU3R5bGVXcmFwcGVyKTsKKyAgICAgICAgbWFwLnNldCh0ZXh0YXJlYVRhZy5sb2Nh
bE5hbWUoKS5pbXBsKCksIGNyZWF0ZVRleHRBcmVhV3JhcHBlcik7CiAgICAgICAgIG1hcC5zZXQo
dGl0bGVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGVUaXRsZVdyYXBwZXIpOwogICAgIH0K
ICAgICBDcmVhdGVIVE1MRWxlbWVudFdyYXBwZXJGdW5jdGlvbiBmID0gbWFwLmdldChlbGVtZW50
LT5sb2NhbE5hbWUoKS5pbXBsKCkpOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxP
cHRpb25FbGVtZW50Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3MvanMvSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMCkKKysr
IFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBB
cHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1
Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv
bi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp
dCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAqIEJvc3RvbiwgTUEgMDIxMTEtMTMw
NywgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU0hUTUxPcHRp
b25FbGVtZW50Q29uc3RydWN0b3IuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU0hUTUxPcHRpb25FbGVtZW50Lmgi
CisjaW5jbHVkZSAiVGV4dC5oIgorCit1c2luZyBuYW1lc3BhY2UgS0pTOworCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK0pTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvcjo6SlNIVE1MT3B0aW9u
RWxlbWVudENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgRG9jdW1lbnQqIGQpCisgICAgOiBt
X2RvYyhkKQoreworICAgIHB1dChleGVjLCBsZW5ndGhQcm9wZXJ0eU5hbWUsIGpzTnVtYmVyKDQp
LCBSZWFkT25seXxEb250RGVsZXRlfERvbnRFbnVtKTsKK30KKworYm9vbCBKU0hUTUxPcHRpb25F
bGVtZW50Q29uc3RydWN0b3I6OmltcGxlbWVudHNDb25zdHJ1Y3QoKSBjb25zdAoreworICAgIHJl
dHVybiB0cnVlOworfQorCitKU09iamVjdCogSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9y
Ojpjb25zdHJ1Y3QoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBMaXN0JiBhcmdzKQoreworICAgIGlu
dCBleGNlcHRpb24gPSAwOworICAgIFJlZlB0cjxFbGVtZW50PiBlbChtX2RvYy0+Y3JlYXRlRWxl
bWVudCgib3B0aW9uIiwgZXhjZXB0aW9uKSk7CisgICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdCA9
IDA7CisgICAgaWYgKGVsKSB7CisgICAgICAgIG9wdCA9IHN0YXRpY19jYXN0PEhUTUxPcHRpb25F
bGVtZW50Kj4oZWwuZ2V0KCkpOworICAgICAgICBpbnQgc3ogPSBhcmdzLnNpemUoKTsKKyAgICAg
ICAgUmVmUHRyPFRleHQ+IHRleHQgPSBtX2RvYy0+Y3JlYXRlVGV4dE5vZGUoIiIpOworICAgICAg
ICBvcHQtPmFwcGVuZENoaWxkKHRleHQsIGV4Y2VwdGlvbik7CisgICAgICAgIGlmIChleGNlcHRp
b24gPT0gMCAmJiBzeiA+IDApCisgICAgICAgICAgICB0ZXh0LT5zZXREYXRhKGFyZ3NbMF0tPnRv
U3RyaW5nKGV4ZWMpLCBleGNlcHRpb24pOworICAgICAgICBpZiAoZXhjZXB0aW9uID09IDAgJiYg
c3ogPiAxKQorICAgICAgICAgICAgb3B0LT5zZXRWYWx1ZShhcmdzWzFdLT50b1N0cmluZyhleGVj
KSk7CisgICAgICAgIGlmIChleGNlcHRpb24gPT0gMCAmJiBzeiA+IDIpCisgICAgICAgICAgICBv
cHQtPnNldERlZmF1bHRTZWxlY3RlZChhcmdzWzJdLT50b0Jvb2xlYW4oZXhlYykpOworICAgICAg
ICBpZiAoZXhjZXB0aW9uID09IDAgJiYgc3ogPiAzKQorICAgICAgICAgICAgb3B0LT5zZXRTZWxl
Y3RlZChhcmdzWzNdLT50b0Jvb2xlYW4oZXhlYykpOworICAgIH0KKworICAgIHNldERPTUV4Y2Vw
dGlvbihleGVjLCBleGNlcHRpb24pOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU09iamVjdCo+
KHRvSlMoZXhlYywgb3B0KSk7Cit9CisKK30KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pz
X2h0bWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2h0bWwuY3Bw
CShyZXZpc2lvbiAxNDQ1MCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX2h0bWwuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCwxMiArMjgsMTAgQEAKICNpbmNsdWRlICJIVE1MQW5jaG9yRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxBcHBsZXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEFy
ZWFFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTEJhc2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TEJhc2VGb250RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxCbG9ja3F1b3RlRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxCUkVsZW1lbnQuaCIK
LSNpbmNsdWRlICJIVE1MQnV0dG9uRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxEaXJlY3RvcnlF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRExp
c3RFbGVtZW50LmgiCkBAIC00Myw3ICs0MSw2IEBACiAjaW5jbHVkZSAiSFRNTEZvbnRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lU2V0
RWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxIZWFkRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxI
ZWFkaW5nRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxIUkVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MSHRtbEVsZW1lbnQuaCIKQEAgLTUzLDE1ICs1MCwxMiBAQAogI2luY2x1ZGUgIkhUTUxMYWJl
bEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTGVnZW5kRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxMSUVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MTGlua0VsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MTWFwRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxNZW51RWxlbWVudC5oIgotI2luY2x1ZGUg
IkhUTUxNZXRhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxNb2RFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE9iamVjdEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MT0xpc3RFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTE9wdEdyb3VwRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxPcHRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIKQEAgLTY5LDE1ICs2
MywxMiBAQAogI2luY2x1ZGUgIkhUTUxQcmVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFNjcmlw
dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MU2VsZWN0RWxlbWVudC5oIgotI2luY2x1ZGUgIkhU
TUxTdHlsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVGFibGVDYXB0aW9uRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxUYWJsZUNlbGxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlQ29s
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUYWJsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
VGFibGVSb3dFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuaCIK
LSNpbmNsdWRlICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTFRpdGxlRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxRdW90ZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MVUxp
c3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiTmFtZU5vZGVMaXN0LmgiCkBAIC00NjYsNyArNDU3LDYg
QEAgY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OmJhc2VGb250XwogY29uc3QgQ2xhc3NJ
bmZvIEpTSFRNTEVsZW1lbnQ6OmJsb2NrUXVvdGVfaW5mbyA9IHsgIkhUTUxCbG9ja1F1b3RlRWxl
bWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTEJsb2NrUXVvdGVFbGVtZW50VGFibGUs
IDAgfTsKIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50Ojpib2R5X2luZm8gPSB7ICJIVE1M
Qm9keUVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxCb2R5RWxlbWVudFRhYmxl
LCAwIH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6YnJfaW5mbyA9IHsgIkhUTUxC
UkVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxCUkVsZW1lbnRUYWJsZSwgMCB9
OwotY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OmJ1dHRvbl9pbmZvID0geyAiSFRNTEJ1
dHRvbkVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxCdXR0b25FbGVtZW50VGFi
bGUsIDAgfTsKIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpjYXB0aW9uX2luZm8gPSB7
ICJIVE1MVGFibGVDYXB0aW9uRWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnRUYWJsZSwgMCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1l
bnQ6OmNvbF9pbmZvID0geyAiSFRNTFRhYmxlQ29sRWxlbWVudCIsICZKU0hUTUxFbGVtZW50Ojpp
bmZvLCAmSFRNTFRhYmxlQ29sRWxlbWVudFRhYmxlLCAwIH07CiBjb25zdCBDbGFzc0luZm8gSlNI
VE1MRWxlbWVudDo6ZGlyX2luZm8gPSB7ICJIVE1MRGlyZWN0b3J5RWxlbWVudCIsICZKU0hUTUxF
bGVtZW50OjppbmZvLCAmSFRNTERpcmVjdG9yeUVsZW1lbnRUYWJsZSwgMCB9OwpAQCAtNDg0LDcg
KzQ3NCw2IEBAIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpodG1sX2luZm8KIGNvbnN0
IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjppRnJhbWVfaW5mbyA9IHsgIkhUTUxJRnJhbWVFbGVt
ZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MSUZyYW1lRWxlbWVudFRhYmxlLCAwIH07
CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6aW1nX2luZm8gPSB7ICJIVE1MSW1hZ2VF
bGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MSW1hZ2VFbGVtZW50VGFibGUsIDAg
fTsKIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjppbmZvID0geyAiSFRNTEVsZW1lbnQi
LCAmSlNFbGVtZW50OjppbmZvLCAmSFRNTEVsZW1lbnRUYWJsZSwgMCB9OwotY29uc3QgQ2xhc3NJ
bmZvIEpTSFRNTEVsZW1lbnQ6OmlucHV0X2luZm8gPSB7ICJIVE1MSW5wdXRFbGVtZW50IiwgJkpT
SFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MSW5wdXRFbGVtZW50VGFibGUsIDAgfTsKIGNvbnN0IENs
YXNzSW5mbyBKU0hUTUxFbGVtZW50Ojppc0luZGV4X2luZm8gPSB7ICJIVE1MSXNJbmRleEVsZW1l
bnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxJc0luZGV4RWxlbWVudFRhYmxlLCAwIH07
CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6bGFiZWxfaW5mbyA9IHsgIkhUTUxMYWJl
bEVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxMYWJlbEVsZW1lbnRUYWJsZSwg
MCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OmxlZ2VuZF9pbmZvID0geyAiSFRN
TExlZ2VuZEVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxMZWdlbmRFbGVtZW50
VGFibGUsIDAgfTsKQEAgLTQ5NSw4ICs0ODQsNiBAQCBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxl
bWVudDo6bWVudV9pbmZvCiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6bW9kX2luZm8g
PSB7ICJIVE1MTW9kRWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTE1vZEVsZW1l
bnRUYWJsZSwgMCB9OwogY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6Om9iamVjdF9pbmZv
ID0geyAiSFRNTE9iamVjdEVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxPYmpl
Y3RFbGVtZW50VGFibGUsIDAgfTsKIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpvbF9p
bmZvID0geyAiSFRNTE9MaXN0RWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTE9M
aXN0RWxlbWVudFRhYmxlLCAwIH07Ci1jb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6b3B0
R3JvdXBfaW5mbyA9IHsgIkhUTUxPcHRHcm91cEVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5m
bywgJkhUTUxPcHRHcm91cEVsZW1lbnRUYWJsZSwgMCB9OwotY29uc3QgQ2xhc3NJbmZvIEpTSFRN
TEVsZW1lbnQ6Om9wdGlvbl9pbmZvID0geyAiSFRNTE9wdGlvbkVsZW1lbnQiLCAmSlNIVE1MRWxl
bWVudDo6aW5mbywgJkhUTUxPcHRpb25FbGVtZW50VGFibGUsIDAgfTsKIGNvbnN0IENsYXNzSW5m
byBKU0hUTUxFbGVtZW50OjpwX2luZm8gPSB7ICJIVE1MUGFyYWdyYXBoRWxlbWVudCIsICZKU0hU
TUxFbGVtZW50OjppbmZvLCAmSFRNTFBhcmFncmFwaEVsZW1lbnRUYWJsZSwgMCB9OwogY29uc3Qg
Q2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OnBhcmFtX2luZm8gPSB7ICJIVE1MUGFyYW1FbGVtZW50
IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MUGFyYW1FbGVtZW50VGFibGUsIDAgfTsKIGNv
bnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50OjpwcmVfaW5mbyA9IHsgIkhUTUxQcmVFbGVtZW50
IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MUHJlRWxlbWVudFRhYmxlLCAwIH07CkBAIC01
MDYsNyArNDkzLDYgQEAgY29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OnNlbGVjdF9pbgog
Y29uc3QgQ2xhc3NJbmZvIEpTSFRNTEVsZW1lbnQ6OnRhYmxlX2luZm8gPSB7ICJIVE1MVGFibGVF
bGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MVGFibGVFbGVtZW50VGFibGUsIDAg
fTsKIGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50Ojp0YWJsZWNlbGxfaW5mbyA9IHsgIkhU
TUxUYWJsZUNlbGxFbGVtZW50IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MVGFibGVDZWxs
RWxlbWVudFRhYmxlLCAwIH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6dGFibGVz
ZWN0aW9uX2luZm8gPSB7ICJIVE1MVGFibGVTZWN0aW9uRWxlbWVudCIsICZKU0hUTUxFbGVtZW50
OjppbmZvLCAmSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRUYWJsZSwgMCB9OwotY29uc3QgQ2xhc3NJ
bmZvIEpTSFRNTEVsZW1lbnQ6OnRleHRBcmVhX2luZm8gPSB7ICJIVE1MVGV4dEFyZWFFbGVtZW50
IiwgJkpTSFRNTEVsZW1lbnQ6OmluZm8sICZIVE1MVGV4dEFyZWFFbGVtZW50VGFibGUsIDAgfTsK
IGNvbnN0IENsYXNzSW5mbyBKU0hUTUxFbGVtZW50Ojp0cl9pbmZvID0geyAiSFRNTFRhYmxlUm93
RWxlbWVudCIsICZKU0hUTUxFbGVtZW50OjppbmZvLCAmSFRNTFRhYmxlUm93RWxlbWVudFRhYmxl
LCAwIH07CiBjb25zdCBDbGFzc0luZm8gSlNIVE1MRWxlbWVudDo6dWxfaW5mbyA9IHsgIkhUTUxV
TGlzdEVsZW1lbnQiLCAmSlNIVE1MRWxlbWVudDo6aW5mbywgJkhUTUxVTGlzdEVsZW1lbnRUYWJs
ZSwgMCB9OwogCkBAIC01MjAsNyArNTA2LDYgQEAgY29uc3QgQ2xhc3NJbmZvKiBKU0hUTUxFbGVt
ZW50OjpjbGFzc0luZgogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KGJsb2NrcXVvdGVUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCAmYmxvY2tRdW90ZV9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFw
LnNldChib2R5VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmJvZHlfaW5mbyk7CiAgICAgICAgIGNs
YXNzSW5mb01hcC5zZXQoYnJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmYnJfaW5mbyk7Ci0gICAg
ICAgIGNsYXNzSW5mb01hcC5zZXQoYnV0dG9uVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmJ1dHRv
bl9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldChjYXB0aW9uVGFnLmxvY2FsTmFtZSgp
LmltcGwoKSwgJmNhcHRpb25faW5mbyk7CiAgICAgICAgIGNsYXNzSW5mb01hcC5zZXQoY29sVGFn
LmxvY2FsTmFtZSgpLmltcGwoKSwgJmNvbF9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFwLnNl
dChjb2xncm91cFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZjb2xfaW5mbyk7CkBAIC01NDQsNyAr
NTI5LDYgQEAgY29uc3QgQ2xhc3NJbmZvKiBKU0hUTUxFbGVtZW50OjpjbGFzc0luZgogICAgICAg
ICBjbGFzc0luZm9NYXAuc2V0KGh0bWxUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmaHRtbF9pbmZv
KTsKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldChpZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCAmaUZyYW1lX2luZm8pOwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KGltZ1RhZy5sb2NhbE5h
bWUoKS5pbXBsKCksICZpbWdfaW5mbyk7Ci0gICAgICAgIGNsYXNzSW5mb01hcC5zZXQoaW5wdXRU
YWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmaW5wdXRfaW5mbyk7CiAgICAgICAgIGNsYXNzSW5mb01h
cC5zZXQoaW5zVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJm1vZF9pbmZvKTsKICAgICAgICAgY2xh
c3NJbmZvTWFwLnNldChpc2luZGV4VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmlzSW5kZXhfaW5m
byk7CiAgICAgICAgIGNsYXNzSW5mb01hcC5zZXQobGFiZWxUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCAmbGFiZWxfaW5mbyk7CkBAIC01NTYsOCArNTQwLDYgQEAgY29uc3QgQ2xhc3NJbmZvKiBKU0hU
TUxFbGVtZW50OjpjbGFzc0luZgogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KG1lbnVUYWcubG9j
YWxOYW1lKCkuaW1wbCgpLCAmbWVudV9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldChv
YmplY3RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmb2JqZWN0X2luZm8pOwogICAgICAgICBjbGFz
c0luZm9NYXAuc2V0KG9sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJm9sX2luZm8pOwotICAgICAg
ICBjbGFzc0luZm9NYXAuc2V0KG9wdGdyb3VwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJm9wdEdy
b3VwX2luZm8pOwotICAgICAgICBjbGFzc0luZm9NYXAuc2V0KG9wdGlvblRhZy5sb2NhbE5hbWUo
KS5pbXBsKCksICZvcHRpb25faW5mbyk7CiAgICAgICAgIGNsYXNzSW5mb01hcC5zZXQocFRhZy5s
b2NhbE5hbWUoKS5pbXBsKCksICZwX2luZm8pOwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KHBh
cmFtVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJnBhcmFtX2luZm8pOwogICAgICAgICBjbGFzc0lu
Zm9NYXAuc2V0KHByZVRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZwcmVfaW5mbyk7CkBAIC01Njcs
NyArNTQ5LDYgQEAgY29uc3QgQ2xhc3NJbmZvKiBKU0hUTUxFbGVtZW50OjpjbGFzc0luZgogICAg
ICAgICBjbGFzc0luZm9NYXAuc2V0KHRhYmxlVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJnRhYmxl
X2luZm8pOwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KHRib2R5VGFnLmxvY2FsTmFtZSgpLmlt
cGwoKSwgJnRhYmxlc2VjdGlvbl9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFwLnNldCh0ZFRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksICZ0YWJsZWNlbGxfaW5mbyk7Ci0gICAgICAgIGNsYXNzSW5m
b01hcC5zZXQodGV4dGFyZWFUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmdGV4dEFyZWFfaW5mbyk7
CiAgICAgICAgIGNsYXNzSW5mb01hcC5zZXQodGZvb3RUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAm
dGFibGVzZWN0aW9uX2luZm8pOwogICAgICAgICBjbGFzc0luZm9NYXAuc2V0KHRoVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgJnRhYmxlY2VsbF9pbmZvKTsKICAgICAgICAgY2xhc3NJbmZvTWFwLnNl
dCh0aGVhZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZ0YWJsZXNlY3Rpb25faW5mbyk7CkBAIC01
ODgsMTEgKzU2OSw2IEBAIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyBKU0hUTUxFbGUK
IGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyBKU0hUTUxFbGVtZW50Ojpib2R5X2FjY2Vz
c29ycyA9IHsgJkpTSFRNTEVsZW1lbnQ6OmJvZHlHZXR0ZXIsICZKU0hUTUxFbGVtZW50Ojpib2R5
U2V0dGVyIH07CiBjb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMgSlNIVE1MRWxlbWVudDo6
Zm9ybV9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50Ojpmb3JtR2V0dGVyLCAmSlNIVE1MRWxl
bWVudDo6Zm9ybVNldHRlciB9OwogY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRN
TEVsZW1lbnQ6OnNlbGVjdF9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50OjpzZWxlY3RHZXR0
ZXIsICZKU0hUTUxFbGVtZW50OjpzZWxlY3RTZXR0ZXIgfTsKLWNvbnN0IEpTSFRNTEVsZW1lbnQ6
OkFjY2Vzc29ycyBKU0hUTUxFbGVtZW50OjpvcHRHcm91cF9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxF
bGVtZW50OjpvcHRHcm91cEdldHRlciwgJkpTSFRNTEVsZW1lbnQ6Om9wdEdyb3VwU2V0dGVyIH07
Ci1jb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMgSlNIVE1MRWxlbWVudDo6b3B0aW9uX2Fj
Y2Vzc29ycyA9IHsgJkpTSFRNTEVsZW1lbnQ6Om9wdGlvbkdldHRlciwgJkpTSFRNTEVsZW1lbnQ6
Om9wdGlvblNldHRlciB9OwotY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRNTEVs
ZW1lbnQ6OmlucHV0X2FjY2Vzc29ycyA9IHsgJkpTSFRNTEVsZW1lbnQ6OmlucHV0R2V0dGVyLCAm
SlNIVE1MRWxlbWVudDo6aW5wdXRTZXR0ZXIgfTsKLWNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vz
c29ycyBKU0hUTUxFbGVtZW50Ojp0ZXh0QXJlYV9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50
Ojp0ZXh0QXJlYUdldHRlciwgJkpTSFRNTEVsZW1lbnQ6OnRleHRBcmVhU2V0dGVyIH07Ci1jb25z
dCBKU0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMgSlNIVE1MRWxlbWVudDo6YnV0dG9uX2FjY2Vzc29y
cyA9IHsgJkpTSFRNTEVsZW1lbnQ6OmJ1dHRvbkdldHRlciwgJkpTSFRNTEVsZW1lbnQ6OmJ1dHRv
blNldHRlciB9OwogY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzIEpTSFRNTEVsZW1lbnQ6
OmxhYmVsX2FjY2Vzc29ycyA9IHsgJkpTSFRNTEVsZW1lbnQ6OmxhYmVsR2V0dGVyLCAmSlNIVE1M
RWxlbWVudDo6bGFiZWxTZXR0ZXIgfTsKIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyBK
U0hUTUxFbGVtZW50OjpmaWVsZFNldF9hY2Nlc3NvcnMgPSB7ICZKU0hUTUxFbGVtZW50OjpmaWVs
ZFNldEdldHRlciwgJkpTSFRNTEVsZW1lbnQ6OmZpZWxkU2V0U2V0dGVyIH07CiBjb25zdCBKU0hU
TUxFbGVtZW50OjpBY2Nlc3NvcnMgSlNIVE1MRWxlbWVudDo6bGVnZW5kX2FjY2Vzc29ycyA9IHsg
JkpTSFRNTEVsZW1lbnQ6OmxlZ2VuZEdldHRlciwgJkpTSFRNTEVsZW1lbnQ6OmxlZ2VuZFNldHRl
ciB9OwpAQCAtNjQ0LDcgKzYyMCw2IEBAIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vzc29ycyog
SlNIVE1MRWwKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKGJsb2NrcXVvdGVUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCAmYmxvY2tRdW90ZV9hY2Nlc3NvcnMpOyAKICAgICAgICAgYWNjZXNzb3JNYXAu
YWRkKGJvZHlUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmYm9keV9hY2Nlc3NvcnMpOwogICAgICAg
ICBhY2Nlc3Nvck1hcC5hZGQoYnJUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmYnJfYWNjZXNzb3Jz
KTsKLSAgICAgICAgYWNjZXNzb3JNYXAuYWRkKGJ1dHRvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
ICZidXR0b25fYWNjZXNzb3JzKTsKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKGNhcHRpb25UYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCAmY2FwdGlvbl9hY2Nlc3NvcnMpOwogICAgICAgICBhY2Nlc3Nv
ck1hcC5hZGQoY29sVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJmNvbF9hY2Nlc3NvcnMpOwogICAg
ICAgICBhY2Nlc3Nvck1hcC5hZGQoY29sZ3JvdXBUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmY29s
X2FjY2Vzc29ycyk7CkBAIC02NjgsNyArNjQzLDYgQEAgY29uc3QgSlNIVE1MRWxlbWVudDo6QWNj
ZXNzb3JzKiBKU0hUTUxFbAogICAgICAgICBhY2Nlc3Nvck1hcC5hZGQoaHRtbFRhZy5sb2NhbE5h
bWUoKS5pbXBsKCksICZodG1sX2FjY2Vzc29ycyk7CiAgICAgICAgIGFjY2Vzc29yTWFwLmFkZChp
ZnJhbWVUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmaUZyYW1lX2FjY2Vzc29ycyk7CiAgICAgICAg
IGFjY2Vzc29yTWFwLmFkZChpbWdUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmaW1nX2FjY2Vzc29y
cyk7Ci0gICAgICAgIGFjY2Vzc29yTWFwLmFkZChpbnB1dFRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
ICZpbnB1dF9hY2Nlc3NvcnMpOwogICAgICAgICBhY2Nlc3Nvck1hcC5hZGQoaW5zVGFnLmxvY2Fs
TmFtZSgpLmltcGwoKSwgJm1vZF9hY2Nlc3NvcnMpOwogICAgICAgICBhY2Nlc3Nvck1hcC5hZGQo
aXNpbmRleFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZpc0luZGV4X2FjY2Vzc29ycyk7CiAgICAg
ICAgIGFjY2Vzc29yTWFwLmFkZChsYWJlbFRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZsYWJlbF9h
Y2Nlc3NvcnMpOwpAQCAtNjgwLDggKzY1NCw2IEBAIGNvbnN0IEpTSFRNTEVsZW1lbnQ6OkFjY2Vz
c29ycyogSlNIVE1MRWwKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKG1lbnVUYWcubG9jYWxOYW1l
KCkuaW1wbCgpLCAmbWVudV9hY2Nlc3NvcnMpOwogICAgICAgICBhY2Nlc3Nvck1hcC5hZGQob2Jq
ZWN0VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJm9iamVjdF9hY2Nlc3NvcnMpOwogICAgICAgICBh
Y2Nlc3Nvck1hcC5hZGQob2xUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmb2xfYWNjZXNzb3JzKTsK
LSAgICAgICAgYWNjZXNzb3JNYXAuYWRkKG9wdGlvblRhZy5sb2NhbE5hbWUoKS5pbXBsKCksICZv
cHRpb25fYWNjZXNzb3JzKTsKLSAgICAgICAgYWNjZXNzb3JNYXAuYWRkKG9wdGdyb3VwVGFnLmxv
Y2FsTmFtZSgpLmltcGwoKSwgJm9wdEdyb3VwX2FjY2Vzc29ycyk7CiAgICAgICAgIGFjY2Vzc29y
TWFwLmFkZChwVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJnBfYWNjZXNzb3JzKTsKICAgICAgICAg
YWNjZXNzb3JNYXAuYWRkKHBhcmFtVGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJnBhcmFtX2FjY2Vz
c29ycyk7CiAgICAgICAgIGFjY2Vzc29yTWFwLmFkZChwcmVUYWcubG9jYWxOYW1lKCkuaW1wbCgp
LCAmcHJlX2FjY2Vzc29ycyk7CkBAIC02OTEsNyArNjYzLDYgQEAgY29uc3QgSlNIVE1MRWxlbWVu
dDo6QWNjZXNzb3JzKiBKU0hUTUxFbAogICAgICAgICBhY2Nlc3Nvck1hcC5hZGQodGFibGVUYWcu
bG9jYWxOYW1lKCkuaW1wbCgpLCAmdGFibGVfYWNjZXNzb3JzKTsKICAgICAgICAgYWNjZXNzb3JN
YXAuYWRkKHRib2R5VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJnRhYmxlc2VjdGlvbl9hY2Nlc3Nv
cnMpOwogICAgICAgICBhY2Nlc3Nvck1hcC5hZGQodGRUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAm
dGFibGVjZWxsX2FjY2Vzc29ycyk7Ci0gICAgICAgIGFjY2Vzc29yTWFwLmFkZCh0ZXh0YXJlYVRh
Zy5sb2NhbE5hbWUoKS5pbXBsKCksICZ0ZXh0QXJlYV9hY2Nlc3NvcnMpOwogICAgICAgICBhY2Nl
c3Nvck1hcC5hZGQodGhUYWcubG9jYWxOYW1lKCkuaW1wbCgpLCAmdGFibGVjZWxsX2FjY2Vzc29y
cyk7CiAgICAgICAgIGFjY2Vzc29yTWFwLmFkZCh0aGVhZFRhZy5sb2NhbE5hbWUoKS5pbXBsKCks
ICZ0YWJsZXNlY3Rpb25fYWNjZXNzb3JzKTsKICAgICAgICAgYWNjZXNzb3JNYXAuYWRkKHRmb290
VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJnRhYmxlc2VjdGlvbl9hY2Nlc3NvcnMpOwpAQCAtNzI3
LDQ0ICs2OTgsMTAgQEAgY29uc3QgSlNIVE1MRWxlbWVudDo6QWNjZXNzb3JzKiBKU0hUTUxFbAog
QGJlZ2luIEhUTUxIdG1sRWxlbWVudFRhYmxlIDEKICAgdmVyc2lvbiAgICAgICBLSlM6OkpTSFRN
TEVsZW1lbnQ6Okh0bWxWZXJzaW9uICAgRG9udERlbGV0ZQogQGVuZAotQGJlZ2luIEhUTUxIZWFk
RWxlbWVudFRhYmxlIDEKLSAgcHJvZmlsZSAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkhlYWRQ
cm9maWxlICAgRG9udERlbGV0ZQotQGVuZAotQGJlZ2luIEhUTUxMaW5rRWxlbWVudFRhYmxlIDEx
Ci0gIGRpc2FibGVkICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpMaW5rRGlzYWJsZWQgIERvbnRE
ZWxldGUKLSAgY2hhcnNldCAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkxpbmtDaGFyc2V0ICAg
RG9udERlbGV0ZQotICBocmVmICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6TGlua0hyZWYg
ICAgICBEb250RGVsZXRlCi0gIGhyZWZsYW5nICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpMaW5r
SHJlZkxhbmcgIERvbnREZWxldGUKLSAgbWVkaWEgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6
OkxpbmtNZWRpYSAgICAgRG9udERlbGV0ZQotICByZWwgICAgICAgICAgIEtKUzo6SlNIVE1MRWxl
bWVudDo6TGlua1JlbCAgICAgICBEb250RGVsZXRlCi0gIHJldiAgICAgICAgICAgS0pTOjpKU0hU
TUxFbGVtZW50OjpMaW5rUmV2ICAgICAgIERvbnREZWxldGUKLSAgdGFyZ2V0ICAgICAgICBLSlM6
OkpTSFRNTEVsZW1lbnQ6OkxpbmtUYXJnZXQgICAgRG9udERlbGV0ZQotICB0eXBlICAgICAgICAg
IEtKUzo6SlNIVE1MRWxlbWVudDo6TGlua1R5cGUgICAgICBEb250RGVsZXRlCi0gIHNoZWV0ICAg
ICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpMaW5rU2hlZXQgICAgIERvbnREZWxldGV8UmVhZE9u
bHkKLUBlbmQKLUBiZWdpbiBIVE1MVGl0bGVFbGVtZW50VGFibGUgMQotICB0ZXh0ICAgICAgICAg
IEtKUzo6SlNIVE1MRWxlbWVudDo6VGl0bGVUZXh0ICAgICBEb250RGVsZXRlCi1AZW5kCi1AYmVn
aW4gSFRNTE1ldGFFbGVtZW50VGFibGUgNAotICBjb250ZW50ICAgICAgIEtKUzo6SlNIVE1MRWxl
bWVudDo6TWV0YUNvbnRlbnQgICBEb250RGVsZXRlCi0gIGh0dHBFcXVpdiAgICAgS0pTOjpKU0hU
TUxFbGVtZW50OjpNZXRhSHR0cEVxdWl2IERvbnREZWxldGUKLSAgbmFtZSAgICAgICAgICBLSlM6
OkpTSFRNTEVsZW1lbnQ6Ok1ldGFOYW1lICAgICAgRG9udERlbGV0ZQotICBzY2hlbWUgICAgICAg
IEtKUzo6SlNIVE1MRWxlbWVudDo6TWV0YVNjaGVtZSAgICBEb250RGVsZXRlCi1AZW5kCi1AYmVn
aW4gSFRNTEJhc2VFbGVtZW50VGFibGUgMgotICBocmVmICAgICAgICAgIEtKUzo6SlNIVE1MRWxl
bWVudDo6QmFzZUhyZWYgICAgICBEb250RGVsZXRlCi0gIHRhcmdldCAgICAgICAgS0pTOjpKU0hU
TUxFbGVtZW50OjpCYXNlVGFyZ2V0ICAgIERvbnREZWxldGUKLUBlbmQKIEBiZWdpbiBIVE1MSXNJ
bmRleEVsZW1lbnRUYWJsZSAyCiAgIGZvcm0gICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJ
c0luZGV4Rm9ybSAgIERvbnREZWxldGV8UmVhZE9ubHkKICAgcHJvbXB0ICAgICAgICBLSlM6OkpT
SFRNTEVsZW1lbnQ6OklzSW5kZXhQcm9tcHQgRG9udERlbGV0ZQogQGVuZAotQGJlZ2luIEhUTUxT
dHlsZUVsZW1lbnRUYWJsZSA0Ci0gIGRpc2FibGVkICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpT
dHlsZURpc2FibGVkIERvbnREZWxldGUKLSAgbWVkaWEgICAgICAgICBLSlM6OkpTSFRNTEVsZW1l
bnQ6OlN0eWxlTWVkaWEgICAgRG9udERlbGV0ZQotICB0eXBlICAgICAgICAgIEtKUzo6SlNIVE1M
RWxlbWVudDo6U3R5bGVUeXBlICAgICBEb250RGVsZXRlCi0gIHNoZWV0ICAgICAgICAgS0pTOjpK
U0hUTUxFbGVtZW50OjpTdHlsZVNoZWV0ICAgIERvbnREZWxldGV8UmVhZE9ubHkKLUBlbmQKIEBi
ZWdpbiBIVE1MQm9keUVsZW1lbnRUYWJsZSAxMAogICBhTGluayAgICAgICAgIEtKUzo6SlNIVE1M
RWxlbWVudDo6Qm9keUFMaW5rICAgICBEb250RGVsZXRlCiAgIGJhY2tncm91bmQgICAgS0pTOjpK
U0hUTUxFbGVtZW50OjpCb2R5QmFja2dyb3VuZCAgICAgICAgRG9udERlbGV0ZQpAQCAtODA4LDc4
ICs3NDUsNiBAQCBjb25zdCBKU0hUTUxFbGVtZW50OjpBY2Nlc3NvcnMqIEpTSFRNTEVsCiAgIGJs
dXIgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpTZWxlY3RCbHVyICAgIERvbnREZWxldGV8
RnVuY3Rpb24gMAogICBmb2N1cyAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6U2VsZWN0Rm9j
dXMgICBEb250RGVsZXRlfEZ1bmN0aW9uIDAKIEBlbmQKLUBiZWdpbiBIVE1MT3B0R3JvdXBFbGVt
ZW50VGFibGUgMgotICBkaXNhYmxlZCAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6T3B0R3JvdXBE
aXNhYmxlZCAgICAgIERvbnREZWxldGUKLSAgbGFiZWwgICAgICAgICBLSlM6OkpTSFRNTEVsZW1l
bnQ6Ok9wdEdyb3VwTGFiZWwgICAgICAgICBEb250RGVsZXRlCi1AZW5kCi1AYmVnaW4gSFRNTE9w
dGlvbkVsZW1lbnRUYWJsZSA4Ci0gIGZvcm0gICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpP
cHRpb25Gb3JtICAgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICBkZWZhdWx0U2VsZWN0
ZWQgS0pTOjpKU0hUTUxFbGVtZW50OjpPcHRpb25EZWZhdWx0U2VsZWN0ZWQgICAgICAgRG9udERl
bGV0ZQotICB0ZXh0ICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6T3B0aW9uVGV4dCAgICAg
ICAgICAgIERvbnREZWxldGUKLSAgaW5kZXggICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6Ok9w
dGlvbkluZGV4ICAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gIGRpc2FibGVkICAgICAg
S0pTOjpKU0hUTUxFbGVtZW50OjpPcHRpb25EaXNhYmxlZCAgICAgICAgRG9udERlbGV0ZQotICBs
YWJlbCAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6T3B0aW9uTGFiZWwgICAgICAgICAgIERv
bnREZWxldGUKLSAgc2VsZWN0ZWQgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6Ok9wdGlvblNlbGVj
dGVkICAgICAgICBEb250RGVsZXRlCi0gIHZhbHVlICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50
OjpPcHRpb25WYWx1ZSAgICAgICAgICAgRG9udERlbGV0ZQotQGVuZAotQGJlZ2luIEhUTUxJbnB1
dEVsZW1lbnRUYWJsZSAyNAotICBkZWZhdWx0VmFsdWUgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5w
dXREZWZhdWx0VmFsdWUgICAgIERvbnREZWxldGUKLSAgZGVmYXVsdENoZWNrZWQgS0pTOjpKU0hU
TUxFbGVtZW50OjpJbnB1dERlZmF1bHRDaGVja2VkICBEb250RGVsZXRlCi0gIGZvcm0gICAgICAg
ICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dEZvcm0gICAgICAgICAgICAgRG9udERlbGV0ZXxS
ZWFkT25seQotICBhY2NlcHQgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRBY2NlcHQg
ICAgICAgICAgIERvbnREZWxldGUKLSAgYWNjZXNzS2V5ICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6
OklucHV0QWNjZXNzS2V5ICAgICAgICBEb250RGVsZXRlCi0gIGFsaWduICAgICAgICAgS0pTOjpK
U0hUTUxFbGVtZW50OjpJbnB1dEFsaWduICAgICAgICAgICAgRG9udERlbGV0ZQotICBhbHQgICAg
ICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRBbHQgICAgICAgICAgICAgIERvbnREZWxl
dGUKLSAgY2hlY2tlZCAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0Q2hlY2tlZCAgICAg
ICAgICBEb250RGVsZXRlCi0gIGRpc2FibGVkICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1
dERpc2FibGVkICAgICAgICAgRG9udERlbGV0ZQotICBpbmRldGVybWluYXRlIEtKUzo6SlNIVE1M
RWxlbWVudDo6SW5wdXRJbmRldGVybWluYXRlICAgIERvbnREZWxldGUKLSAgbWF4TGVuZ3RoICAg
ICBLSlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0TWF4TGVuZ3RoICAgICAgICBEb250RGVsZXRlCi0g
IG5hbWUgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dE5hbWUgICAgICAgICAgICAg
RG9udERlbGV0ZQotICByZWFkT25seSAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRSZWFk
T25seSAgICAgICAgIERvbnREZWxldGUKLSAgc2VsZWN0aW9uU3RhcnQgICAgICAgIEtKUzo6SlNI
VE1MRWxlbWVudDo6SW5wdXRTZWxlY3Rpb25TdGFydCAgIERvbnREZWxldGUKLSAgc2VsZWN0aW9u
RW5kICBLSlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0U2VsZWN0aW9uRW5kICAgICBEb250RGVsZXRl
Ci0gIHNpemUgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dFNpemUgICAgICAgICAg
ICAgRG9udERlbGV0ZQotICBzcmMgICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRT
cmMgICAgICAgICAgICAgIERvbnREZWxldGUKLSAgdGFiSW5kZXggICAgICBLSlM6OkpTSFRNTEVs
ZW1lbnQ6OklucHV0VGFiSW5kZXggICAgICAgICBEb250RGVsZXRlCi0gIHR5cGUgICAgICAgICAg
S0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dFR5cGUgICAgICAgICAgICAgRG9udERlbGV0ZQotICB1
c2VNYXAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6SW5wdXRVc2VNYXAgICAgICAgICAgIERv
bnREZWxldGUKLSAgdmFsdWUgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0VmFsdWUg
ICAgICAgICAgICBEb250RGVsZXRlCi0gIGJsdXIgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50
OjpJbnB1dEJsdXIgICAgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi0gIGZvY3VzICAg
ICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dEZvY3VzICAgICAgICAgICAgRG9udERlbGV0
ZXxGdW5jdGlvbiAwCi0gIHNlbGVjdCAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpJbnB1dFNl
bGVjdCAgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi0gIGNsaWNrICAgICAgICAgS0pT
OjpKU0hUTUxFbGVtZW50OjpJbnB1dENsaWNrICAgICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlv
biAwCi0gIHNldFNlbGVjdGlvblJhbmdlICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OklucHV0U2V0
U2VsZWN0aW9uUmFuZ2UgICAgICAgIERvbnREZWxldGV8RnVuY3Rpb24gMgotQGVuZAotQGJlZ2lu
IEhUTUxUZXh0QXJlYUVsZW1lbnRUYWJsZSAxNwotICBkZWZhdWx0VmFsdWUgIEtKUzo6SlNIVE1M
RWxlbWVudDo6VGV4dEFyZWFEZWZhdWx0VmFsdWUgIERvbnREZWxldGUKLSAgZm9ybSAgICAgICAg
ICBLSlM6OkpTSFRNTEVsZW1lbnQ6OlRleHRBcmVhRm9ybSAgICAgICAgICBEb250RGVsZXRlfFJl
YWRPbmx5Ci0gIGFjY2Vzc0tleSAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0QXJlYUFjY2Vz
c0tleSAgICAgRG9udERlbGV0ZQotICBjb2xzICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6
VGV4dEFyZWFDb2xzICAgICAgICAgIERvbnREZWxldGUKLSAgZGlzYWJsZWQgICAgICBLSlM6OkpT
SFRNTEVsZW1lbnQ6OlRleHRBcmVhRGlzYWJsZWQgICAgICBEb250RGVsZXRlCi0gIG5hbWUgICAg
ICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0QXJlYU5hbWUgICAgICAgICAgRG9udERlbGV0
ZQotICByZWFkT25seSAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6VGV4dEFyZWFSZWFkT25seSAg
ICAgIERvbnREZWxldGUKLSAgcm93cyAgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OlRleHRB
cmVhUm93cyAgICAgICAgICBEb250RGVsZXRlCi0gIHNlbGVjdGlvblN0YXJ0ICAgICAgICBLSlM6
OkpTSFRNTEVsZW1lbnQ6OlRleHRBcmVhU2VsZWN0aW9uU3RhcnQgICAgICAgIERvbnREZWxldGUK
LSAgc2VsZWN0aW9uRW5kICBLSlM6OkpTSFRNTEVsZW1lbnQ6OlRleHRBcmVhU2VsZWN0aW9uRW5k
ICBEb250RGVsZXRlCi0gIHRhYkluZGV4ICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0QXJl
YVRhYkluZGV4ICAgICAgRG9udERlbGV0ZQotICB0eXBlICAgICAgICAgIEtKUzo6SlNIVE1MRWxl
bWVudDo6VGV4dEFyZWFUeXBlICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgdmFsdWUg
ICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OlRleHRBcmVhVmFsdWUgICAgICAgICBEb250RGVs
ZXRlCi0gIGJsdXIgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0QXJlYUJsdXIgICAg
ICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi0gIGZvY3VzICAgICAgICAgS0pTOjpKU0hUTUxF
bGVtZW50OjpUZXh0QXJlYUZvY3VzICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi0gIHNl
bGVjdCAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpUZXh0QXJlYVNlbGVjdCAgICAgICAgRG9u
dERlbGV0ZXxGdW5jdGlvbiAwCi0gIHNldFNlbGVjdGlvblJhbmdlICAgICBLSlM6OkpTSFRNTEVs
ZW1lbnQ6OlRleHRBcmVhU2V0U2VsZWN0aW9uUmFuZ2UgICAgIERvbnREZWxldGV8RnVuY3Rpb24g
MgotQGVuZAotQGJlZ2luIEhUTUxCdXR0b25FbGVtZW50VGFibGUgNwotICBmb3JtICAgICAgICAg
IEtKUzo6SlNIVE1MRWxlbWVudDo6QnV0dG9uRm9ybSAgICAgICAgICAgIERvbnREZWxldGV8UmVh
ZE9ubHkKLSAgYWNjZXNzS2V5ICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkJ1dHRvbkFjY2Vzc0tl
eSAgICAgICBEb250RGVsZXRlCi0gIGRpc2FibGVkICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpC
dXR0b25EaXNhYmxlZCAgICAgICAgRG9udERlbGV0ZQotICBuYW1lICAgICAgICAgIEtKUzo6SlNI
VE1MRWxlbWVudDo6QnV0dG9uTmFtZSAgICAgICAgICAgIERvbnREZWxldGUKLSAgdGFiSW5kZXgg
ICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkJ1dHRvblRhYkluZGV4ICAgICAgICBEb250RGVsZXRl
Ci0gIHR5cGUgICAgICAgICAgS0pTOjpKU0hUTUxFbGVtZW50OjpCdXR0b25UeXBlICAgICAgICAg
ICAgRG9udERlbGV0ZXxSZWFkT25seQotICB2YWx1ZSAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVu
dDo6QnV0dG9uVmFsdWUgICAgICAgICAgIERvbnREZWxldGUKLSAgYmx1ciAgICAgICAgICBLSlM6
OkpTSFRNTEVsZW1lbnQ6OkJ1dHRvbkJsdXIgICAgICAgICAgICBEb250RGVsZXRlfEZ1bmN0aW9u
IDAKLSAgZm9jdXMgICAgICAgICBLSlM6OkpTSFRNTEVsZW1lbnQ6OkJ1dHRvbkZvY3VzICAgICAg
ICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDAKLUBlbmQKIEBiZWdpbiBIVE1MTGFiZWxFbGVtZW50
VGFibGUgNAogICBmb3JtICAgICAgICAgIEtKUzo6SlNIVE1MRWxlbWVudDo6TGFiZWxGb3JtICAg
ICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKICAgYWNjZXNzS2V5ICAgICBLSlM6OkpTSFRN
TEVsZW1lbnQ6OkxhYmVsQWNjZXNzS2V5ICAgICAgICBEb250RGVsZXRlCkBAIC0xMzE0LDI3ICsx
MTc5LDExIEBAIGJvb2wgSlNIVE1MRWxlbWVudDo6Z2V0T3duUHJvcGVydHlTbG90KEUKICAgICBj
b25zdCBIYXNoVGFibGUqIHRhYmxlID0gY2xhc3NJbmZvKCktPnByb3BIYXNoVGFibGU7IC8vIGdl
dCB0aGUgcmlnaHQgaGFzaHRhYmxlCiAgICAgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSA9IExvb2t1
cDo6ZmluZEVudHJ5KHRhYmxlLCBwcm9wZXJ0eU5hbWUpOwogICAgIGlmIChlbnRyeSkgewotICAg
ICAgICAvLyBkb24ndCBleHBvc2Ugc2VsZWN0aW9uIHByb3BlcnRpZXMgZm9yIGlucHV0IHR5cGVz
IHRoYXQgY2FuJ3QgaGF2ZSBhIHNlbGVjdGlvbgotICAgICAgICBpZiAoZWxlbWVudC5oYXNMb2Nh
bE5hbWUoaW5wdXRUYWcpICYmICFzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oaW1wbCgp
KS0+Y2FuSGF2ZVNlbGVjdGlvbigpKSB7Ci0gICAgICAgICAgICBzd2l0Y2ggKGVudHJ5LT52YWx1
ZSkgewotICAgICAgICAgICAgY2FzZSBJbnB1dFNldFNlbGVjdGlvblJhbmdlOgotICAgICAgICAg
ICAgY2FzZSBJbnB1dFNlbGVjdGlvblN0YXJ0OgotICAgICAgICAgICAgY2FzZSBJbnB1dFNlbGVj
dGlvbkVuZDoKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6Ci0g
ICAgICAgICAgICAgICAgaWYgKGVudHJ5LT5hdHRyICYgRnVuY3Rpb24pCi0gICAgICAgICAgICAg
ICAgICAgIHNsb3Quc2V0U3RhdGljRW50cnkodGhpcywgZW50cnksIHN0YXRpY0Z1bmN0aW9uR2V0
dGVyPEhUTUxFbGVtZW50RnVuY3Rpb24+KTsgCi0gICAgICAgICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgICAgICAgICBzbG90LnNldFN0YXRpY0VudHJ5KHRoaXMsIGVudHJ5LCBzdGF0aWNWYWx1
ZUdldHRlcjxKU0hUTUxFbGVtZW50Pik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAoZW50cnktPmF0
dHIgJiBGdW5jdGlvbikKLSAgICAgICAgICAgICAgICBzbG90LnNldFN0YXRpY0VudHJ5KHRoaXMs
IGVudHJ5LCBzdGF0aWNGdW5jdGlvbkdldHRlcjxIVE1MRWxlbWVudEZ1bmN0aW9uPik7IAotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHNsb3Quc2V0U3RhdGljRW50cnkodGhpcywg
ZW50cnksIHN0YXRpY1ZhbHVlR2V0dGVyPEpTSFRNTEVsZW1lbnQ+KTsKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICB9CisgICAgICAgIGlmIChlbnRyeS0+YXR0ciAmIEZ1bmN0aW9u
KQorICAgICAgICAgICAgc2xvdC5zZXRTdGF0aWNFbnRyeSh0aGlzLCBlbnRyeSwgc3RhdGljRnVu
Y3Rpb25HZXR0ZXI8SFRNTEVsZW1lbnRGdW5jdGlvbj4pOyAKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgc2xvdC5zZXRTdGF0aWNFbnRyeSh0aGlzLCBlbnRyeSwgc3RhdGljVmFsdWVHZXR0ZXI8
SlNIVE1MRWxlbWVudD4pOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKICAgICAvLyBC
YXNlIEpTSFRNTEVsZW1lbnQgc3R1ZmYgb3IgcGFyZW50IGNsYXNzIGZvcndhcmQsIGFzIHVzdWFs
CkBAIC0xNDQ3LDExMSArMTI5Niw2IEBAIEpTVmFsdWUgKkpTSFRNTEVsZW1lbnQ6OnNlbGVjdEdl
dHRlcihFeGUKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAotSlNWYWx1ZSAqSlNIVE1M
RWxlbWVudDo6b3B0R3JvdXBHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNvbnN0
Ci17Ci0gICAgSFRNTE9wdEdyb3VwRWxlbWVudCYgb3B0Z3JvdXAgPSAqc3RhdGljX2Nhc3Q8SFRN
TE9wdEdyb3VwRWxlbWVudCo+KGltcGwoKSk7Ci0gICAgc3dpdGNoICh0b2tlbikgewotICAgICAg
ICBjYXNlIE9wdEdyb3VwRGlzYWJsZWQ6ICAgICAgICByZXR1cm4ganNCb29sZWFuKG9wdGdyb3Vw
LmRpc2FibGVkKCkpOwotICAgICAgICBjYXNlIE9wdEdyb3VwTGFiZWw6ICAgICAgICAgICByZXR1
cm4ganNTdHJpbmcob3B0Z3JvdXAubGFiZWwoKSk7Ci0gICAgfQotICAgIHJldHVybiBqc1VuZGVm
aW5lZCgpOwotfQotCi1KU1ZhbHVlICpKU0hUTUxFbGVtZW50OjpvcHRpb25HZXR0ZXIoRXhlY1N0
YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNvbnN0Ci17Ci0gICAgSFRNTE9wdGlvbkVsZW1lbnQmIG9w
dGlvbiA9ICpzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KGltcGwoKSk7Ci0gICAgc3dp
dGNoICh0b2tlbikgewotICAgICAgICBjYXNlIE9wdGlvbkZvcm06ICAgICAgICAgICAgcmV0dXJu
IHRvSlMoZXhlYyxvcHRpb24uZm9ybSgpKTsgLy8gdHlwZSBIVE1MRm9ybUVsZW1lbnQKLSAgICAg
ICAgY2FzZSBPcHRpb25EZWZhdWx0U2VsZWN0ZWQ6IHJldHVybiBqc0Jvb2xlYW4ob3B0aW9uLmRl
ZmF1bHRTZWxlY3RlZCgpKTsKLSAgICAgICAgY2FzZSBPcHRpb25UZXh0OiAgICAgICAgICAgIHJl
dHVybiBqc1N0cmluZyhvcHRpb24udGV4dCgpKTsKLSAgICAgICAgY2FzZSBPcHRpb25JbmRleDog
ICAgICAgICAgIHJldHVybiBqc051bWJlcihvcHRpb24uaW5kZXgoKSk7Ci0gICAgICAgIGNhc2Ug
T3B0aW9uRGlzYWJsZWQ6ICAgICAgICByZXR1cm4ganNCb29sZWFuKG9wdGlvbi5kaXNhYmxlZCgp
KTsKLSAgICAgICAgY2FzZSBPcHRpb25MYWJlbDogICAgICAgICAgIHJldHVybiBqc1N0cmluZyhv
cHRpb24ubGFiZWwoKSk7Ci0gICAgICAgIGNhc2UgT3B0aW9uU2VsZWN0ZWQ6ICAgICAgICByZXR1
cm4ganNCb29sZWFuKG9wdGlvbi5zZWxlY3RlZCgpKTsKLSAgICAgICAgY2FzZSBPcHRpb25WYWx1
ZTogICAgICAgICAgIHJldHVybiBqc1N0cmluZyhvcHRpb24udmFsdWUoKSk7Ci0gICAgfQotICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwotfQotCi1zdGF0aWMgSlNWYWx1ZSAqZ2V0SW5wdXRTZWxl
Y3Rpb25TdGFydChIVE1MSW5wdXRFbGVtZW50ICZpbnB1dCkKLXsKLSAgICBpZiAoaW5wdXQuY2Fu
SGF2ZVNlbGVjdGlvbigpKQotICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5wdXQuc2VsZWN0aW9u
U3RhcnQoKSk7Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0KLXN0YXRpYyBKU1ZhbHVl
ICpnZXRJbnB1dFNlbGVjdGlvbkVuZChIVE1MSW5wdXRFbGVtZW50ICZpbnB1dCkKLXsKLSAgICBp
ZiAoaW5wdXQuY2FuSGF2ZVNlbGVjdGlvbigpKQotICAgICAgICByZXR1cm4ganNOdW1iZXIoaW5w
dXQuc2VsZWN0aW9uRW5kKCkpOwotICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotfQotCi1KU1Zh
bHVlICpKU0hUTUxFbGVtZW50OjppbnB1dEdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tl
bikgY29uc3QKLXsKLSAgICBIVE1MSW5wdXRFbGVtZW50JiBpbnB1dCA9ICpzdGF0aWNfY2FzdDxI
VE1MSW5wdXRFbGVtZW50Kj4oaW1wbCgpKTsKLSAgICBzd2l0Y2ggKHRva2VuKSB7Ci0gICAgICAg
IGNhc2UgSW5wdXREZWZhdWx0VmFsdWU6ICAgIHJldHVybiBqc1N0cmluZyhpbnB1dC5kZWZhdWx0
VmFsdWUoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXREZWZhdWx0Q2hlY2tlZDogIHJldHVybiBqc0Jv
b2xlYW4oaW5wdXQuZGVmYXVsdENoZWNrZWQoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXRGb3JtOiAg
ICAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsaW5wdXQuZm9ybSgpKTsgLy8gdHlwZSBIVE1MRm9y
bUVsZW1lbnQKLSAgICAgICAgY2FzZSBJbnB1dEFjY2VwdDogICAgICAgICAgcmV0dXJuIGpzU3Ry
aW5nKGlucHV0LmFjY2VwdCgpKTsKLSAgICAgICAgY2FzZSBJbnB1dEFjY2Vzc0tleTogICAgICAg
cmV0dXJuIGpzU3RyaW5nKGlucHV0LmFjY2Vzc0tleSgpKTsKLSAgICAgICAgY2FzZSBJbnB1dEFs
aWduOiAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGlucHV0LmFsaWduKCkpOwotICAgICAgICBj
YXNlIElucHV0QWx0OiAgICAgICAgICAgICByZXR1cm4ganNTdHJpbmcoaW5wdXQuYWx0KCkpOwot
ICAgICAgICBjYXNlIElucHV0Q2hlY2tlZDogICAgICAgICByZXR1cm4ganNCb29sZWFuKGlucHV0
LmNoZWNrZWQoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXREaXNhYmxlZDogICAgICAgIHJldHVybiBq
c0Jvb2xlYW4oaW5wdXQuZGlzYWJsZWQoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXRJbmRldGVybWlu
YXRlOiAgIHJldHVybiBqc0Jvb2xlYW4oaW5wdXQuaW5kZXRlcm1pbmF0ZSgpKTsKLSAgICAgICAg
Y2FzZSBJbnB1dE1heExlbmd0aDogICAgICAgcmV0dXJuIGpzTnVtYmVyKGlucHV0Lm1heExlbmd0
aCgpKTsKLSAgICAgICAgY2FzZSBJbnB1dE5hbWU6ICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5n
KGlucHV0Lm5hbWUoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXRSZWFkT25seTogICAgICAgIHJldHVy
biBqc0Jvb2xlYW4oaW5wdXQucmVhZE9ubHkoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXRTZWxlY3Rp
b25TdGFydDogIHJldHVybiBnZXRJbnB1dFNlbGVjdGlvblN0YXJ0KGlucHV0KTsKLSAgICAgICAg
Y2FzZSBJbnB1dFNlbGVjdGlvbkVuZDogICAgcmV0dXJuIGdldElucHV0U2VsZWN0aW9uRW5kKGlu
cHV0KTsKLSAgICAgICAgY2FzZSBJbnB1dFNpemU6ICAgICAgICAgICAgcmV0dXJuIGpzTnVtYmVy
KGlucHV0LnNpemUoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXRTcmM6ICAgICAgICAgICAgIHJldHVy
biBqc1N0cmluZyhpbnB1dC5zcmMoKSk7Ci0gICAgICAgIGNhc2UgSW5wdXRUYWJJbmRleDogICAg
ICAgIHJldHVybiBqc051bWJlcihpbnB1dC50YWJJbmRleCgpKTsKLSAgICAgICAgY2FzZSBJbnB1
dFR5cGU6ICAgICAgICAgICAgcmV0dXJuIGpzU3RyaW5nKGlucHV0LnR5cGUoKSk7Ci0gICAgICAg
IGNhc2UgSW5wdXRVc2VNYXA6ICAgICAgICAgIHJldHVybiBqc1N0cmluZyhpbnB1dC51c2VNYXAo
KSk7Ci0gICAgICAgIGNhc2UgSW5wdXRWYWx1ZTogICAgICAgICAgIHJldHVybiBqc1N0cmluZyhp
bnB1dC52YWx1ZSgpKTsKLSAgICB9Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0KLUpT
VmFsdWUgKkpTSFRNTEVsZW1lbnQ6OnRleHRBcmVhR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgaW50
IHRva2VuKSBjb25zdAotewotICAgIEhUTUxUZXh0QXJlYUVsZW1lbnQmIHRleHRhcmVhID0gKnN0
YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihpbXBsKCkpOwotICAgIHN3aXRjaCAodG9r
ZW4pIHsKLSAgICAgICAgY2FzZSBUZXh0QXJlYURlZmF1bHRWYWx1ZTogICAgcmV0dXJuIGpzU3Ry
aW5nKHRleHRhcmVhLmRlZmF1bHRWYWx1ZSgpKTsKLSAgICAgICAgY2FzZSBUZXh0QXJlYUZvcm06
ICAgICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYyx0ZXh0YXJlYS5mb3JtKCkpOyAvLyB0eXBlIEhU
TUxGb3JtRWxlbWVudAotICAgICAgICBjYXNlIFRleHRBcmVhQWNjZXNzS2V5OiAgICAgICByZXR1
cm4ganNTdHJpbmcodGV4dGFyZWEuYWNjZXNzS2V5KCkpOwotICAgICAgICBjYXNlIFRleHRBcmVh
Q29sczogICAgICAgICAgICByZXR1cm4ganNOdW1iZXIodGV4dGFyZWEuY29scygpKTsKLSAgICAg
ICAgY2FzZSBUZXh0QXJlYURpc2FibGVkOiAgICAgICAgcmV0dXJuIGpzQm9vbGVhbih0ZXh0YXJl
YS5kaXNhYmxlZCgpKTsKLSAgICAgICAgY2FzZSBUZXh0QXJlYU5hbWU6ICAgICAgICAgICAgcmV0
dXJuIGpzU3RyaW5nKHRleHRhcmVhLm5hbWUoKSk7Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFSZWFk
T25seTogICAgICAgIHJldHVybiBqc0Jvb2xlYW4odGV4dGFyZWEucmVhZE9ubHkoKSk7Ci0gICAg
ICAgIGNhc2UgVGV4dEFyZWFSb3dzOiAgICAgICAgICAgIHJldHVybiBqc051bWJlcih0ZXh0YXJl
YS5yb3dzKCkpOwotICAgICAgICBjYXNlIFRleHRBcmVhU2VsZWN0aW9uU3RhcnQ6ICByZXR1cm4g
anNOdW1iZXIodGV4dGFyZWEuc2VsZWN0aW9uU3RhcnQoKSk7Ci0gICAgICAgIGNhc2UgVGV4dEFy
ZWFTZWxlY3Rpb25FbmQ6ICAgIHJldHVybiBqc051bWJlcih0ZXh0YXJlYS5zZWxlY3Rpb25FbmQo
KSk7Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFUYWJJbmRleDogICAgICAgIHJldHVybiBqc051bWJl
cih0ZXh0YXJlYS50YWJJbmRleCgpKTsKLSAgICAgICAgY2FzZSBUZXh0QXJlYVR5cGU6ICAgICAg
ICAgICAgcmV0dXJuIGpzU3RyaW5nKHRleHRhcmVhLnR5cGUoKSk7Ci0gICAgICAgIGNhc2UgVGV4
dEFyZWFWYWx1ZTogICAgICAgICAgIHJldHVybiBqc1N0cmluZyh0ZXh0YXJlYS52YWx1ZSgpKTsK
LSAgICB9Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0KLUpTVmFsdWUgKkpTSFRNTEVs
ZW1lbnQ6OmJ1dHRvbkdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGludCB0b2tlbikgY29uc3QKLXsK
LSAgICBIVE1MQnV0dG9uRWxlbWVudCYgYnV0dG9uID0gKnN0YXRpY19jYXN0PEhUTUxCdXR0b25F
bGVtZW50Kj4oaW1wbCgpKTsKLSAgICBzd2l0Y2ggKHRva2VuKSB7Ci0gICAgICAgIGNhc2UgQnV0
dG9uRm9ybTogICAgICAgICAgICByZXR1cm4gdG9KUyhleGVjLGJ1dHRvbi5mb3JtKCkpOyAvLyB0
eXBlIEhUTUxGb3JtRWxlbWVudAotICAgICAgICBjYXNlIEJ1dHRvbkFjY2Vzc0tleTogICAgICAg
cmV0dXJuIGpzU3RyaW5nKGJ1dHRvbi5hY2Nlc3NLZXkoKSk7Ci0gICAgICAgIGNhc2UgQnV0dG9u
RGlzYWJsZWQ6ICAgICAgICByZXR1cm4ganNCb29sZWFuKGJ1dHRvbi5kaXNhYmxlZCgpKTsKLSAg
ICAgICAgY2FzZSBCdXR0b25OYW1lOiAgICAgICAgICAgIHJldHVybiBqc1N0cmluZyhidXR0b24u
bmFtZSgpKTsKLSAgICAgICAgY2FzZSBCdXR0b25UYWJJbmRleDogICAgICAgIHJldHVybiBqc051
bWJlcihidXR0b24udGFiSW5kZXgoKSk7Ci0gICAgICAgIGNhc2UgQnV0dG9uVHlwZTogICAgICAg
ICAgICByZXR1cm4ganNTdHJpbmcoYnV0dG9uLnR5cGUoKSk7Ci0gICAgICAgIGNhc2UgQnV0dG9u
VmFsdWU6ICAgICAgICAgICByZXR1cm4ganNTdHJpbmcoYnV0dG9uLnZhbHVlKCkpOwotICAgIH0K
LSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLX0KLQogSlNWYWx1ZSAqSlNIVE1MRWxlbWVudDo6
bGFiZWxHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBpbnQgdG9rZW4pIGNvbnN0CiB7CiAgICAgSFRN
TExhYmVsRWxlbWVudCYgbGFiZWwgPSAqc3RhdGljX2Nhc3Q8SFRNTExhYmVsRWxlbWVudCo+KGlt
cGwoKSk7CkBAIC0yMjIwLDQwICsxOTY0LDYgQEAgSlNWYWx1ZSAqSFRNTEVsZW1lbnRGdW5jdGlv
bjo6Y2FsbEFzRnVuYwogICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgICAg
IH0KICAgICB9Ci0gICAgZWxzZSBpZiAoZWxlbWVudC5oYXNMb2NhbE5hbWUoaW5wdXRUYWcpKSB7
Ci0gICAgICAgIEhUTUxJbnB1dEVsZW1lbnQgJmlucHV0ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0
RWxlbWVudCAmPihlbGVtZW50KTsKLSAgICAgICAgaWYgKGlkID09IEpTSFRNTEVsZW1lbnQ6Oklu
cHV0Qmx1cikgewotICAgICAgICAgICAgaW5wdXQuYmx1cigpOwotICAgICAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoaWQgPT0gSlNIVE1M
RWxlbWVudDo6SW5wdXRGb2N1cykgewotICAgICAgICAgICAgaW5wdXQuZm9jdXMoKTsKLSAgICAg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYg
KGlkID09IEpTSFRNTEVsZW1lbnQ6OklucHV0U2VsZWN0KSB7Ci0gICAgICAgICAgICBpbnB1dC5z
ZWxlY3QoKTsKLSAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0g
ICAgICAgIGVsc2UgaWYgKGlkID09IEpTSFRNTEVsZW1lbnQ6OklucHV0Q2xpY2spIHsKLSAgICAg
ICAgICAgIGlucHV0LmNsaWNrKCk7Ci0gICAgICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
LSAgICAgICAgfQotICAgICAgICBlbHNlIGlmIChpZCA9PSBKU0hUTUxFbGVtZW50OjpJbnB1dFNl
dFNlbGVjdGlvblJhbmdlKSB7Ci0gICAgICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShh
cmdzWzBdLT50b0ludDMyKGV4ZWMpLCBhcmdzWzFdLT50b0ludDMyKGV4ZWMpKTsKLSAgICAgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgfQotICAgIGVsc2UgaWYg
KGVsZW1lbnQuaGFzTG9jYWxOYW1lKGJ1dHRvblRhZykpIHsKLSAgICAgICAgSFRNTEJ1dHRvbkVs
ZW1lbnQgJmJ1dHRvbiA9IHN0YXRpY19jYXN0PEhUTUxCdXR0b25FbGVtZW50ICY+KGVsZW1lbnQp
OwotICAgICAgICBpZiAoaWQgPT0gSlNIVE1MRWxlbWVudDo6QnV0dG9uQmx1cikgewotICAgICAg
ICAgICAgYnV0dG9uLmJsdXIoKTsKLSAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwot
ICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKGlkID09IEpTSFRNTEVsZW1lbnQ6OkJ1dHRvbkZv
Y3VzKSB7Ci0gICAgICAgICAgICBidXR0b24uZm9jdXMoKTsKLSAgICAgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgfQogICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFz
TG9jYWxOYW1lKGxhYmVsVGFnKSkgewogICAgICAgICBIVE1MTGFiZWxFbGVtZW50ICZsYWJlbCA9
IHN0YXRpY19jYXN0PEhUTUxMYWJlbEVsZW1lbnQgJj4oZWxlbWVudCk7CiAgICAgICAgIGlmIChp
ZCA9PSBKU0hUTUxFbGVtZW50OjpMYWJlbEZvY3VzKSB7CkBAIC0yMjY4LDI1ICsxOTc4LDYgQEAg
SlNWYWx1ZSAqSFRNTEVsZW1lbnRGdW5jdGlvbjo6Y2FsbEFzRnVuYwogICAgICAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgZWxzZSBpZiAoZWxlbWVu
dC5oYXNMb2NhbE5hbWUodGV4dGFyZWFUYWcpKSB7Ci0gICAgICAgIEhUTUxUZXh0QXJlYUVsZW1l
bnQgJnRleHRhcmVhID0gc3RhdGljX2Nhc3Q8SFRNTFRleHRBcmVhRWxlbWVudCAmPihlbGVtZW50
KTsKLSAgICAgICAgaWYgKGlkID09IEpTSFRNTEVsZW1lbnQ6OlRleHRBcmVhQmx1cikgewotICAg
ICAgICAgICAgdGV4dGFyZWEuYmx1cigpOwotICAgICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSBpZiAoaWQgPT0gSlNIVE1MRWxlbWVudDo6VGV4
dEFyZWFGb2N1cykgewotICAgICAgICAgICAgdGV4dGFyZWEuZm9jdXMoKTsKLSAgICAgICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0gICAgICAgIGVsc2UgaWYgKGlkID09
IEpTSFRNTEVsZW1lbnQ6OlRleHRBcmVhU2VsZWN0KSB7Ci0gICAgICAgICAgICB0ZXh0YXJlYS5z
ZWxlY3QoKTsKLSAgICAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgICAgICB9Ci0g
ICAgICAgIGVsc2UgaWYgKGlkID09IEpTSFRNTEVsZW1lbnQ6OlRleHRBcmVhU2V0U2VsZWN0aW9u
UmFuZ2UpIHsKLSAgICAgICAgICAgIHRleHRhcmVhLnNldFNlbGVjdGlvblJhbmdlKGFyZ3NbMF0t
PnRvSW50MzIoZXhlYyksIGFyZ3NbMV0tPnRvSW50MzIoZXhlYykpOwotICAgICAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgIH0KLSAgICB9CiAgICAgZWxzZSBpZiAoZWxlbWVu
dC5oYXNMb2NhbE5hbWUoYVRhZykpIHsKICAgICAgICAgSFRNTEFuY2hvckVsZW1lbnQgJmFuY2hv
ciA9IHN0YXRpY19jYXN0PEhUTUxBbmNob3JFbGVtZW50ICY+KGVsZW1lbnQpOwogICAgICAgICBp
ZiAoaWQgPT0gSlNIVE1MRWxlbWVudDo6QW5jaG9yQmx1cikgewpAQCAtMjM5Myw4ICsyMDg0LDcg
QEAgdm9pZCBKU0hUTUxFbGVtZW50OjpwdXQoRXhlY1N0YXRlICpleGVjLAogICAgICAgICBpZiAo
ZW50cnktPmF0dHIgJiBGdW5jdGlvbikgeyAvLyBmdW5jdGlvbjogcHV0IGFzIG92ZXJyaWRlIHBy
b3BlcnR5CiAgICAgICAgICAgICBKU09iamVjdDo6cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFs
dWUsIGF0dHIpOwogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGVsc2Ug
aWYgKCEoZW50cnktPmF0dHIgJiBSZWFkT25seSkpIHsgLy8gbGV0IGxvb2t1cFB1dCBwcmludCB0
aGUgd2FybmluZyBpZiByZWFkLW9ubHkKKyAgICAgICAgfSBlbHNlIGlmICghKGVudHJ5LT5hdHRy
ICYgUmVhZE9ubHkpKSB7IC8vIGxldCBsb29rdXBQdXQgcHJpbnQgdGhlIHdhcm5pbmcgaWYgcmVh
ZC1vbmx5CiAgICAgICAgICAgICBwdXRWYWx1ZVByb3BlcnR5KGV4ZWMsIGVudHJ5LT52YWx1ZSwg
dmFsdWUsIGF0dHIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0yNDA1LDkg
KzIwOTUsOSBAQCB2b2lkIEpTSFRNTEVsZW1lbnQ6OnB1dChFeGVjU3RhdGUgKmV4ZWMsCiAKIHZv
aWQgSlNIVE1MRWxlbWVudDo6aHRtbFNldHRlcihFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbiwg
SlNWYWx1ZSAqdmFsdWUsIGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgc3RyKQogewotICAgIEhUTUxI
ZWFkRWxlbWVudCAmaGVhZCA9ICpzdGF0aWNfY2FzdDxIVE1MSGVhZEVsZW1lbnQqPihpbXBsKCkp
OwotICAgIGlmICh0b2tlbiA9PSBIZWFkUHJvZmlsZSkgCi0gICAgICAgIGhlYWQuc2V0UHJvZmls
ZShzdHIpOworICAgIEhUTUxIdG1sRWxlbWVudCYgaHRtbCA9ICpzdGF0aWNfY2FzdDxIVE1MSHRt
bEVsZW1lbnQqPihpbXBsKCkpOworICAgIGlmICh0b2tlbiA9PSBIdG1sVmVyc2lvbikKKyAgICAg
ICAgaHRtbC5zZXRWZXJzaW9uKHN0cik7CiB9CiAKIHZvaWQgSlNIVE1MRWxlbWVudDo6aXNJbmRl
eFNldHRlcihFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbiwgSlNWYWx1ZSAqdmFsdWUsIGNvbnN0
IFdlYkNvcmU6OlN0cmluZyYgc3RyKQpAQCAtMjQ4MCw5MyArMjE3MCw2IEBAIHZvaWQgSlNIVE1M
RWxlbWVudDo6c2VsZWN0U2V0dGVyKEV4ZWNTdGEKICAgICB9CiB9CiAKLXZvaWQgSlNIVE1MRWxl
bWVudDo6b3B0R3JvdXBTZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUg
KnZhbHVlLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIHN0cikKLXsKLSAgICBIVE1MT3B0R3JvdXBF
bGVtZW50JiBvcHRncm91cCA9ICpzdGF0aWNfY2FzdDxIVE1MT3B0R3JvdXBFbGVtZW50Kj4oaW1w
bCgpKTsKLSAgICBzd2l0Y2ggKHRva2VuKSB7Ci0gICAgICAgIGNhc2UgT3B0R3JvdXBEaXNhYmxl
ZDogICAgICAgIHsgb3B0Z3JvdXAuc2V0RGlzYWJsZWQodmFsdWUtPnRvQm9vbGVhbihleGVjKSk7
IHJldHVybjsgfQotICAgICAgICBjYXNlIE9wdEdyb3VwTGFiZWw6ICAgICAgICAgICB7IG9wdGdy
b3VwLnNldExhYmVsKHN0cik7IHJldHVybjsgfQotICAgIH0KLX0KLQotdm9pZCBKU0hUTUxFbGVt
ZW50OjpvcHRpb25TZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZh
bHVlLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcmIHN0cikKLXsKLSAgICBET01FeGNlcHRpb25UcmFu
c2xhdG9yIGV4Y2VwdGlvbihleGVjKTsKLSAgICBIVE1MT3B0aW9uRWxlbWVudCYgb3B0aW9uID0g
KnN0YXRpY19jYXN0PEhUTUxPcHRpb25FbGVtZW50Kj4oaW1wbCgpKTsKLSAgICBzd2l0Y2ggKHRv
a2VuKSB7Ci0gICAgICAgIC8vIHJlYWQtb25seTogZm9ybQotICAgICAgICBjYXNlIE9wdGlvbkRl
ZmF1bHRTZWxlY3RlZDogeyBvcHRpb24uc2V0RGVmYXVsdFNlbGVjdGVkKHZhbHVlLT50b0Jvb2xl
YW4oZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBPcHRpb25UZXh0OiAgICAgICAgICAg
IHsgb3B0aW9uLnNldFRleHQoc3RyLCBleGNlcHRpb24pOyByZXR1cm47IH0KLSAgICAgICAgLy8g
cmVhZC1vbmx5OiBpbmRleAotICAgICAgICBjYXNlIE9wdGlvbkRpc2FibGVkOiAgICAgICAgeyBv
cHRpb24uc2V0RGlzYWJsZWQodmFsdWUtPnRvQm9vbGVhbihleGVjKSk7IHJldHVybjsgfQotICAg
ICAgICBjYXNlIE9wdGlvbkxhYmVsOiAgICAgICAgICAgeyBvcHRpb24uc2V0TGFiZWwoc3RyKTsg
cmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgT3B0aW9uU2VsZWN0ZWQ6ICAgICAgICB7IG9wdGlvbi5z
ZXRTZWxlY3RlZCh2YWx1ZS0+dG9Cb29sZWFuKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNh
c2UgT3B0aW9uVmFsdWU6ICAgICAgICAgICB7IG9wdGlvbi5zZXRWYWx1ZShzdHIpOyByZXR1cm47
IH0KLSAgICB9Ci19Ci0KLXZvaWQgSlNIVE1MRWxlbWVudDo6aW5wdXRTZXR0ZXIoRXhlY1N0YXRl
ICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcm
IHN0cikKLXsKLSAgICBIVE1MSW5wdXRFbGVtZW50JiBpbnB1dCA9ICpzdGF0aWNfY2FzdDxIVE1M
SW5wdXRFbGVtZW50Kj4oaW1wbCgpKTsKLSAgICBzd2l0Y2ggKHRva2VuKSB7Ci0gICAgICAgIGNh
c2UgSW5wdXREZWZhdWx0VmFsdWU6ICAgIHsgaW5wdXQuc2V0RGVmYXVsdFZhbHVlKHN0cik7IHJl
dHVybjsgfQotICAgICAgICBjYXNlIElucHV0RGVmYXVsdENoZWNrZWQ6ICB7IGlucHV0LnNldERl
ZmF1bHRDaGVja2VkKHZhbHVlLT50b0Jvb2xlYW4oZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAg
Ly8gcmVhZC1vbmx5OiBmb3JtCi0gICAgICAgIGNhc2UgSW5wdXRBY2NlcHQ6ICAgICAgICAgIHsg
aW5wdXQuc2V0QWNjZXB0KHN0cik7IHJldHVybjsgfQotICAgICAgICBjYXNlIElucHV0QWNjZXNz
S2V5OiAgICAgICB7IGlucHV0LnNldEFjY2Vzc0tleShzdHIpOyByZXR1cm47IH0KLSAgICAgICAg
Y2FzZSBJbnB1dEFsaWduOiAgICAgICAgICAgeyBpbnB1dC5zZXRBbGlnbihzdHIpOyByZXR1cm47
IH0KLSAgICAgICAgY2FzZSBJbnB1dEFsdDogICAgICAgICAgICAgeyBpbnB1dC5zZXRBbHQoc3Ry
KTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSW5wdXRDaGVja2VkOiAgICAgICAgIHsgaW5wdXQu
c2V0Q2hlY2tlZCh2YWx1ZS0+dG9Cb29sZWFuKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNh
c2UgSW5wdXREaXNhYmxlZDogICAgICAgIHsgaW5wdXQuc2V0RGlzYWJsZWQodmFsdWUtPnRvQm9v
bGVhbihleGVjKSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIElucHV0SW5kZXRlcm1pbmF0ZTog
ICB7IGlucHV0LnNldEluZGV0ZXJtaW5hdGUodmFsdWUtPnRvQm9vbGVhbihleGVjKSk7IHJldHVy
bjsgfQotICAgICAgICBjYXNlIElucHV0TWF4TGVuZ3RoOiAgICAgICB7IGlucHV0LnNldE1heExl
bmd0aCh2YWx1ZS0+dG9JbnQzMihleGVjKSk7IHJldHVybjsgfQotICAgICAgICBjYXNlIElucHV0
TmFtZTogICAgICAgICAgICB7IGlucHV0LnNldE5hbWUoQXRvbWljU3RyaW5nKHN0cikpOyByZXR1
cm47IH0KLSAgICAgICAgY2FzZSBJbnB1dFJlYWRPbmx5OiAgICAgICAgeyBpbnB1dC5zZXRSZWFk
T25seSh2YWx1ZS0+dG9Cb29sZWFuKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSW5w
dXRTaXplOiAgICAgICAgICAgIHsgaW5wdXQuc2V0U2l6ZSh2YWx1ZS0+dG9JbnQzMihleGVjKSk7
IHJldHVybjsgfQotICAgICAgICBjYXNlIElucHV0U2VsZWN0aW9uU3RhcnQ6ICB7IGlucHV0LnNl
dFNlbGVjdGlvblN0YXJ0KHZhbHVlLT50b0ludDMyKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAg
IGNhc2UgSW5wdXRTZWxlY3Rpb25FbmQ6ICAgIHsgaW5wdXQuc2V0U2VsZWN0aW9uRW5kKHZhbHVl
LT50b0ludDMyKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSW5wdXRTcmM6ICAgICAg
ICAgICAgIHsgaW5wdXQuc2V0U3JjKHN0cik7IHJldHVybjsgfQotICAgICAgICBjYXNlIElucHV0
VGFiSW5kZXg6ICAgICAgICB7IGlucHV0LnNldFRhYkluZGV4KHZhbHVlLT50b0ludDMyKGV4ZWMp
KTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSW5wdXRUeXBlOiAgICAgICAgICAgIHsgaW5wdXQu
c2V0VHlwZShzdHIpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBJbnB1dFVzZU1hcDogICAgICAg
ICAgeyBpbnB1dC5zZXRVc2VNYXAoc3RyKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgSW5wdXRW
YWx1ZTogICAgICAgICAgIHsgaW5wdXQuc2V0VmFsdWUoc3RyKTsgcmV0dXJuOyB9Ci0gICAgfQot
fQotCi12b2lkIEpTSFRNTEVsZW1lbnQ6OnRleHRBcmVhU2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywg
aW50IHRva2VuLCBKU1ZhbHVlICp2YWx1ZSwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBzdHIpCi17
Ci0gICAgSFRNTFRleHRBcmVhRWxlbWVudCYgdGV4dGFyZWEgPSAqc3RhdGljX2Nhc3Q8SFRNTFRl
eHRBcmVhRWxlbWVudCo+KGltcGwoKSk7Ci0gICAgc3dpdGNoICh0b2tlbikgewotICAgICAgICBj
YXNlIFRleHRBcmVhRGVmYXVsdFZhbHVlOiAgICB7IHRleHRhcmVhLnNldERlZmF1bHRWYWx1ZShz
dHIpOyByZXR1cm47IH0KLSAgICAgICAgLy8gcmVhZC1vbmx5OiBmb3JtCi0gICAgICAgIGNhc2Ug
VGV4dEFyZWFBY2Nlc3NLZXk6ICAgICAgIHsgdGV4dGFyZWEuc2V0QWNjZXNzS2V5KHN0cik7IHJl
dHVybjsgfQotICAgICAgICBjYXNlIFRleHRBcmVhQ29sczogICAgICAgICAgICB7IHRleHRhcmVh
LnNldENvbHModmFsdWUtPnRvSW50MzIoZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBU
ZXh0QXJlYURpc2FibGVkOiAgICAgICAgeyB0ZXh0YXJlYS5zZXREaXNhYmxlZCh2YWx1ZS0+dG9C
b29sZWFuKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFOYW1lOiAgICAg
ICAgICAgIHsgdGV4dGFyZWEuc2V0TmFtZShBdG9taWNTdHJpbmcoc3RyKSk7IHJldHVybjsgfQot
ICAgICAgICBjYXNlIFRleHRBcmVhUmVhZE9ubHk6ICAgICAgICB7IHRleHRhcmVhLnNldFJlYWRP
bmx5KHZhbHVlLT50b0Jvb2xlYW4oZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBUZXh0
QXJlYVJvd3M6ICAgICAgICAgICAgeyB0ZXh0YXJlYS5zZXRSb3dzKHZhbHVlLT50b0ludDMyKGV4
ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIGNhc2UgVGV4dEFyZWFTZWxlY3Rpb25TdGFydDogIHsg
dGV4dGFyZWEuc2V0U2VsZWN0aW9uU3RhcnQodmFsdWUtPnRvSW50MzIoZXhlYykpOyByZXR1cm47
IH0KLSAgICAgICAgY2FzZSBUZXh0QXJlYVNlbGVjdGlvbkVuZDogICAgeyB0ZXh0YXJlYS5zZXRT
ZWxlY3Rpb25FbmQodmFsdWUtPnRvSW50MzIoZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAgY2Fz
ZSBUZXh0QXJlYVRhYkluZGV4OiAgICAgICAgeyB0ZXh0YXJlYS5zZXRUYWJJbmRleCh2YWx1ZS0+
dG9JbnQzMihleGVjKSk7IHJldHVybjsgfQotICAgICAgICAvLyByZWFkLW9ubHk6IHR5cGUKLSAg
ICAgICAgY2FzZSBUZXh0QXJlYVZhbHVlOiAgICAgICAgICAgeyB0ZXh0YXJlYS5zZXRWYWx1ZShz
dHIpOyByZXR1cm47IH0KLSAgICB9Ci19Ci0KLXZvaWQgSlNIVE1MRWxlbWVudDo6YnV0dG9uU2V0
dGVyKEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuLCBKU1ZhbHVlICp2YWx1ZSwgY29uc3QgV2Vi
Q29yZTo6U3RyaW5nJiBzdHIpCi17Ci0gICAgSFRNTEJ1dHRvbkVsZW1lbnQmIGJ1dHRvbiA9ICpz
dGF0aWNfY2FzdDxIVE1MQnV0dG9uRWxlbWVudCo+KGltcGwoKSk7Ci0gICAgc3dpdGNoICh0b2tl
bikgewotICAgICAgICAvLyByZWFkLW9ubHk6IGZvcm0KLSAgICAgICAgY2FzZSBCdXR0b25BY2Nl
c3NLZXk6ICAgICAgIHsgYnV0dG9uLnNldEFjY2Vzc0tleShzdHIpOyByZXR1cm47IH0KLSAgICAg
ICAgY2FzZSBCdXR0b25EaXNhYmxlZDogICAgICAgIHsgYnV0dG9uLnNldERpc2FibGVkKHZhbHVl
LT50b0Jvb2xlYW4oZXhlYykpOyByZXR1cm47IH0KLSAgICAgICAgY2FzZSBCdXR0b25OYW1lOiAg
ICAgICAgICAgIHsgYnV0dG9uLnNldE5hbWUoQXRvbWljU3RyaW5nKHN0cikpOyByZXR1cm47IH0K
LSAgICAgICAgY2FzZSBCdXR0b25UYWJJbmRleDogICAgICAgIHsgYnV0dG9uLnNldFRhYkluZGV4
KHZhbHVlLT50b0ludDMyKGV4ZWMpKTsgcmV0dXJuOyB9Ci0gICAgICAgIC8vIHJlYWQtb25seTog
dHlwZQotICAgICAgICBjYXNlIEJ1dHRvblZhbHVlOiAgICAgICAgICAgeyBidXR0b24uc2V0VmFs
dWUoc3RyKTsgcmV0dXJuOyB9Ci0gICAgfQotfQotCiB2b2lkIEpTSFRNTEVsZW1lbnQ6OmxhYmVs
U2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuLCBKU1ZhbHVlICp2YWx1ZSwgY29uc3Qg
V2ViQ29yZTo6U3RyaW5nJiBzdHIpCiB7CiAgICAgSFRNTExhYmVsRWxlbWVudCYgbGFiZWwgPSAq
c3RhdGljX2Nhc3Q8SFRNTExhYmVsRWxlbWVudCo+KGltcGwoKSk7CkBAIC0zMzI0LDQzICsyOTI3
LDYgQEAgdm9pZCBKU0hUTUxTZWxlY3RDb2xsZWN0aW9uOjpwdXQoRXhlY1N0YQogICBzZXRET01F
eGNlcHRpb24oZXhlYywgZXhjZXB0aW9uKTsKIH0KIAotLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBP
cHRpb24gT2JqZWN0IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1PcHRpb25Db25zdHJ1Y3Rv
ckltcDo6T3B0aW9uQ29uc3RydWN0b3JJbXAoRXhlY1N0YXRlICpleGVjLCBEb2N1bWVudCAqZCkK
LSAgICA6IG1fZG9jKGQpCi17Ci0gIHB1dChleGVjLGxlbmd0aFByb3BlcnR5TmFtZSwganNOdW1i
ZXIoNCksIFJlYWRPbmx5fERvbnREZWxldGV8RG9udEVudW0pOwotfQotCi1ib29sIE9wdGlvbkNv
bnN0cnVjdG9ySW1wOjppbXBsZW1lbnRzQ29uc3RydWN0KCkgY29uc3QKLXsKLSAgcmV0dXJuIHRy
dWU7Ci19Ci0KLUpTT2JqZWN0ICpPcHRpb25Db25zdHJ1Y3RvckltcDo6Y29uc3RydWN0KEV4ZWNT
dGF0ZSAqZXhlYywgY29uc3QgTGlzdCAmYXJncykKLXsKLSAgaW50IGV4Y2VwdGlvbiA9IDA7Ci0g
IFJlZlB0cjxFbGVtZW50PiBlbChtX2RvYy0+Y3JlYXRlRWxlbWVudCgib3B0aW9uIiwgZXhjZXB0
aW9uKSk7Ci0gIEhUTUxPcHRpb25FbGVtZW50ICpvcHQgPSAwOwotICBpZiAoZWwpIHsKLSAgICBv
cHQgPSBzdGF0aWNfY2FzdDxIVE1MT3B0aW9uRWxlbWVudCo+KGVsLmdldCgpKTsKLSAgICBpbnQg
c3ogPSBhcmdzLnNpemUoKTsKLSAgICBSZWZQdHI8VGV4dD4gdCA9IG1fZG9jLT5jcmVhdGVUZXh0
Tm9kZSgiIik7Ci0gICAgb3B0LT5hcHBlbmRDaGlsZCh0LCBleGNlcHRpb24pOwotICAgIGlmIChl
eGNlcHRpb24gPT0gMCAmJiBzeiA+IDApCi0gICAgICB0LT5zZXREYXRhKGFyZ3NbMF0tPnRvU3Ry
aW5nKGV4ZWMpLCBleGNlcHRpb24pOyAvLyBzZXQgdGhlIHRleHQKLSAgICBpZiAoZXhjZXB0aW9u
ID09IDAgJiYgc3ogPiAxKQotICAgICAgb3B0LT5zZXRWYWx1ZShhcmdzWzFdLT50b1N0cmluZyhl
eGVjKSk7Ci0gICAgaWYgKGV4Y2VwdGlvbiA9PSAwICYmIHN6ID4gMikKLSAgICAgIG9wdC0+c2V0
RGVmYXVsdFNlbGVjdGVkKGFyZ3NbMl0tPnRvQm9vbGVhbihleGVjKSk7Ci0gICAgaWYgKGV4Y2Vw
dGlvbiA9PSAwICYmIHN6ID4gMykKLSAgICAgIG9wdC0+c2V0U2VsZWN0ZWQoYXJnc1szXS0+dG9C
b29sZWFuKGV4ZWMpKTsKLSAgfQotCi0gIHNldERPTUV4Y2VwdGlvbihleGVjLCBleGNlcHRpb24p
OwotICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNPYmplY3QqPih0b0pTKGV4ZWMsb3B0KSk7Ci19Ci0K
IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8gSW1hZ2UgT2JqZWN0IC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwogCiBJbWFnZUNvbnN0cnVjdG9ySW1wOjpJbWFnZUNvbnN0cnVjdG9ySW1wKEV4ZWNTdGF0
ZSAqLCBEb2N1bWVudCAqZCkKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRvdy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfd2luZG93LmNwcAkocmV2
aXNpb24gMTQ0NTApCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc193aW5kb3cuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiSlNET01QYXJzZXIuaCIKICNp
bmNsdWRlICJKU0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkpTRXZlbnQuaCIKKyNpbmNsdWRlICJK
U0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJKU011dGF0aW9uRXZl
bnQuaCIKICNpbmNsdWRlICJKU05vZGUuaCIKICNpbmNsdWRlICJKU05vZGVGaWx0ZXIuaCIKQEAg
LTc3MSw3ICs3NzIsNyBAQCBKU1ZhbHVlICpXaW5kb3c6OmdldFZhbHVlUHJvcGVydHkoRXhlY1N0
CiAgICAgICAvLyB0aW1lCiAgICAgICByZXR1cm4gbmV3IEltYWdlQ29uc3RydWN0b3JJbXAoZXhl
YywgbV9mcmFtZS0+ZG9jdW1lbnQoKSk7CiAgICAgY2FzZSBPcHRpb246Ci0gICAgICByZXR1cm4g
bmV3IE9wdGlvbkNvbnN0cnVjdG9ySW1wKGV4ZWMsIG1fZnJhbWUtPmRvY3VtZW50KCkpOworICAg
ICAgcmV0dXJuIG5ldyBKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IoZXhlYywgbV9mcmFt
ZS0+ZG9jdW1lbnQoKSk7CiAgICAgY2FzZSBYTUxIdHRwUmVxdWVzdDoKICAgICAgIHJldHVybiBu
ZXcgSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9ySW1wKGV4ZWMsIG1fZnJhbWUtPmRvY3VtZW50
KCkpOwogICAgIGNhc2UgWE1MU2VyaWFsaXplcjoKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMv
SlNIVE1MSW5wdXRFbGVtZW50QmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBT
dWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqLworCisjaWZuZGVm
IEpTSFRNTElucHV0RWxlbWVudEJhc2VfSAorI2RlZmluZSBKU0hUTUxJbnB1dEVsZW1lbnRCYXNl
X0gKKworI2luY2x1ZGUgImtqc19odG1sLmgiCisjaW5jbHVkZSAia2pzX2JpbmRpbmcuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgSFRNTElucHV0RWxlbWVudDsKKworICAg
IEtKU19ERUZJTkVfUFJPVE9UWVBFX1dJVEhfUFJPVE9UWVBFKEpTSFRNTElucHV0RWxlbWVudEJh
c2VQcm90bywgS0pTOjpKU0hUTUxFbGVtZW50UHJvdG8pCisKKyAgICBjbGFzcyBKU0hUTUxJbnB1
dEVsZW1lbnRCYXNlIDogcHVibGljIEtKUzo6SlNIVE1MRWxlbWVudCB7CisgICAgcHVibGljOgor
ICAgICAgICBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlKEtKUzo6RXhlY1N0YXRlKiwgUGFzc1JlZlB0
cjxIVE1MSW5wdXRFbGVtZW50Pik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0
eVNsb3QoS0pTOjpFeGVjU3RhdGUqLCBjb25zdCBLSlM6OklkZW50aWZpZXImLCBLSlM6OlByb3Bl
cnR5U2xvdCYpOworICAgICAgICBLSlM6OkpTVmFsdWUqIGdldFZhbHVlUHJvcGVydHkoS0pTOjpF
eGVjU3RhdGUqLCBpbnQgdG9rZW4pIGNvbnN0OworICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEtK
Uzo6RXhlY1N0YXRlKiwgY29uc3QgS0pTOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUqLCBpbnQgYXR0cik7CisgICAgICAgIHZvaWQgcHV0VmFsdWVQcm9wZXJ0eShLSlM6OkV4ZWNT
dGF0ZSosIGludCB0b2tlbiwgS0pTOjpKU1ZhbHVlKiwgaW50IGF0dHIpOworICAgICAgICB2aXJ0
dWFsIGNvbnN0IEtKUzo6Q2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmaW5m
bzsgfQorICAgICAgICBzdGF0aWMgY29uc3QgS0pTOjpDbGFzc0luZm8gaW5mbzsKKyAgICAgICAg
ZW51bSB7IFNldFNlbGVjdGlvblJhbmdlLCBTZWxlY3Rpb25TdGFydCwgU2VsZWN0aW9uRW5kIH07
CisgICAgfTsKK30KKworI2VuZGlmCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxNDQ1
MCkKKysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtNjIs
MTQgKzYyLDIwIEBAIGFsbCA6IFwKICAgICBKU0VsZW1lbnQuaCBcCiAgICAgSlNFdmVudC5oIFwK
ICAgICBKU0VudGl0eS5oIFwKKyAgICBKU0hUTUxCdXR0b25FbGVtZW50LmggXAogICAgIEpTSFRN
TEJhc2VFbGVtZW50LmggXAogICAgIEpTSFRNTENhbnZhc0VsZW1lbnQuaCBcCiAgICAgSlNIVE1M
RG9jdW1lbnQuaCBcCiAgICAgSlNIVE1MRWxlbWVudC5oIFwKICAgICBKU0hUTUxIZWFkRWxlbWVu
dC5oIFwKKyAgICBKU0hUTUxJbnB1dEVsZW1lbnQuaCBcCisgICAgSlNIVE1MSW5wdXRFbGVtZW50
QmFzZVRhYmxlLmNwcCBcCiAgICAgSlNIVE1MTGlua0VsZW1lbnQuaCBcCisgICAgSlNIVE1MT3B0
aW9uRWxlbWVudC5oIFwKKyAgICBKU0hUTUxPcHRHcm91cEVsZW1lbnQuaCBcCiAgICAgSlNIVE1M
TWV0YUVsZW1lbnQuaCBcCiAgICAgSlNIVE1MU3R5bGVFbGVtZW50LmggXAorICAgIEpTSFRNTFRl
eHRBcmVhRWxlbWVudC5oIFwKICAgICBKU0hUTUxUaXRsZUVsZW1lbnQuaCBcCiAgICAgSlNLZXli
b2FyZEV2ZW50LmggXAogICAgIEpTTW91c2VFdmVudC5oIFwKSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MT3B0R3JvdXBFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE9w
dEdyb3VwRWxlbWVudC5pZGwJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2h0bWwvSFRNTE9wdEdy
b3VwRWxlbWVudC5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0
b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqLworCittb2R1bGUgaHRtbCB7CisKKyAgICBpbnRl
cmZhY2UgW0xlZ2FjeVBhcmVudD1LSlM6OkpTSFRNTEVsZW1lbnRdIEhUTUxPcHRHcm91cEVsZW1l
bnQgOiBIVE1MRWxlbWVudCB7CisgICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAg
ICAgZGlzYWJsZWQ7CisgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgbGFi
ZWw7CisgICAgfTsKKworfQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAkocmV2aXNp
b24gMCkKKysrIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRl
ciwgSW5jLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBs
ZSBQbGFjZSAtIFN1aXRlIDMzMCwKKyAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorICov
CisKK21vZHVsZSBodG1sIHsKKworICAgIGludGVyZmFjZSBbTGVnYWN5UGFyZW50PUpTSFRNTElu
cHV0RWxlbWVudEJhc2VdIEhUTUxJbnB1dEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgZGVmYXVsdFZhbHVlOwor
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIGRlZmF1bHRD
aGVja2VkOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgIEhUTUxGb3JtRWxlbWVudCAgICAg
IGZvcm07CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAg
YWNjZXB0OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAg
IGFjY2Vzc0tleTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAg
ICAgICBhbGlnbjsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAg
ICAgICBhbHQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgYm9vbGVhbiAgICAgICAgICAg
ICAgY2hlY2tlZDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAgICAgICAg
ICAgICBkaXNhYmxlZDsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBsb25nICAgICAgICAg
ICAgICAgICBtYXhMZW5ndGg7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5n
ICAgICAgICAgICAgbmFtZTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAg
ICAgICAgICAgICByZWFkT25seTsKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICB1bnNpZ25l
ZCBsb25nICAgICAgICBzaXplOyAvLyBDaGFuZ2VkIHN0cmluZyAtPiBsb25nIGFzIHBhcnQgb2Yg
RE9NIGxldmVsIDIKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAg
ICAgICBzcmM7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgbG9uZyAgICAgICAgICAgICAg
ICAgdGFiSW5kZXg7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAg
ICAgICAgdHlwZTsgLy8gcmVhZG9ubHkgZHJvcHBlZCBhcyBwYXJ0IG9mIERPTSBsZXZlbCAyCisg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgdXNlTWFwOwor
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAgIHZhbHVlOwor
ICAgICAgICAKKyAgICAgICAgdm9pZCAgICBibHVyKCk7CisgICAgICAgIHZvaWQgICAgZm9jdXMo
KTsKKyAgICAgICAgdm9pZCAgICBzZWxlY3QoKTsKKyAgICAgICAgdm9pZCAgICBjbGljaygpOwor
ICAgICAgICAKKyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIGJvb2xlYW4gaW5kZXRlcm1pbmF0
ZTsgLy8gV2luSUUgZXh0ZW5zaW9uCisgICAgICAgIAorICAgICAgICAvLyBIYW5kbGVkIGJ5IEpT
SFRNTElucHV0RWxlbWVudEJhc2UgdG8gYWxsb3cgaGlkaW5nIGJhc2VkIG9uIHR5cGUKKyAgICAg
ICAgLy8gYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgc2VsZWN0aW9uU3RhcnQ7CisgICAgICAgIC8v
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHNlbGVjdGlvbkVuZDsKKyAgICAgICAgLy8gdm9pZCBz
ZXRTZWxlY3Rpb25SYW5nZShpbiBsb25nIHN0YXJ0LCBpbiBsb25nIGVuZCk7CisgICAgfTsKKwor
fQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9odG1sL0hUTUxPcHRpb25FbGVtZW50LmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwz
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoK
KyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlz
IGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1
aXRlIDMzMCwKKyAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorICovCisKK21vZHVsZSBo
dG1sIHsKKworICAgIGludGVyZmFjZSBbTGVnYWN5UGFyZW50PUtKUzo6SlNIVE1MRWxlbWVudF0g
SFRNTE9wdGlvbkVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSAgSFRNTEZvcm1FbGVtZW50ICAgICAgZm9ybTsKKyAgICAgICAgICAgICAgICAgYXR0cmli
dXRlICBib29sZWFuICAgICAgICAgICAgICBkZWZhdWx0U2VsZWN0ZWQ7CisgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgdGV4dDsKKyAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlICBsb25nICAgICAgICAgICAgICAgICBpbmRleAorICAgICAgICAgICAgICAg
ICAgICAgICAgc2V0dGVyIHJhaXNlcyAoZG9tOjpET01FeGNlcHRpb24pOyAvLyBGSVhNRTogV2Ug
ZGlzYWxsb3cgc2V0dGluZyBpbiB2aW9sYXRpb24gb2YgRE9NIDEgSFRNTC4KKyAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICBkaXNhYmxlZDsKKyAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICBsYWJlbDsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICBzZWxlY3RlZDsKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICB2YWx1ZTsKKyAgICB9
OworCit9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5pZGwJKHJldmlzaW9uIDApCisr
KyBXZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMu
CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
ICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy
cmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNl
IC0gU3VpdGUgMzMwLAorICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisgKi8KKworbW9k
dWxlIGh0bWwgeworCisgICAgaW50ZXJmYWNlIFtMZWdhY3lQYXJlbnQ9S0pTOjpKU0hUTUxFbGVt
ZW50XSBIVE1MQnV0dG9uRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlICBIVE1MRm9ybUVsZW1lbnQgICAgICBmb3JtOworICAgICAgICAgICAgICAgICBh
dHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAgIGFjY2Vzc0tleTsKKyAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICBkaXNhYmxlZDsKKyAgICAgICAgICAg
ICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICBuYW1lOworICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgIGxvbmcgICAgICAgICAgICAgICAgIHRhYkluZGV4OworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAgICAgICAgIHR5cGU7CisgICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgdmFsdWU7CisgICAgfTsKKwor
fQpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAkocmV2aXNpb24gMCkKKysr
IFdlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmlkbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5j
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdh
cnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
IGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUg
dG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFj
ZSAtIFN1aXRlIDMzMCwKKyAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorICovCisKK21v
ZHVsZSBodG1sIHsKKworICAgIGludGVyZmFjZSBbTGVnYWN5UGFyZW50PUtKUzo6SlNIVE1MRWxl
bWVudF0gSFRNTFRleHRBcmVhRWxlbWVudCA6IEhUTUxFbGVtZW50IHsKKyAgICAgICAgICAgICAg
ICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICBkZWZhdWx0VmFsdWU7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSAgSFRNTEZvcm1FbGVtZW50ICAgICAgZm9ybTsKKyAgICAgICAg
ICAgICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICBhY2Nlc3NLZXk7CisgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSAgbG9uZyAgICAgICAgICAgICAgICAgY29sczsKKyAgICAg
ICAgICAgICAgICAgYXR0cmlidXRlICBib29sZWFuICAgICAgICAgICAgICBkaXNhYmxlZDsKKyAg
ICAgICAgICAgICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICBuYW1lOworICAg
ICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGJvb2xlYW4gICAgICAgICAgICAgIHJlYWRPbmx5Owor
ICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgIGxvbmcgICAgICAgICAgICAgICAgIHJvd3M7Cisg
ICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSAgbG9uZyAgICAgICAgICAgICAgICAgdGFiSW5kZXg7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgdHlwZTsK
KyAgICAgICAgICAgICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICB2YWx1ZTsK
KyAgICAgICAgCisgICAgICAgIHZvaWQgICAgIGJsdXIoKTsKKyAgICAgICAgdm9pZCAgICAgZm9j
dXMoKTsKKyAgICAgICAgdm9pZCAgICAgc2VsZWN0KCk7CisKKyAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgc2VsZWN0aW9uU3RhcnQ7CisgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIHNlbGVjdGlvbkVuZDsKKyAgICAgICAgdm9pZCBzZXRTZWxl
Y3Rpb25SYW5nZShpbiBsb25nIHN0YXJ0LCBpbiBsb25nIGVuZCk7CisgICAgfTsKKworfQpJbmRl
eDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE0
NDUwKQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTY0MSw2ICs2NDEsMjMgQEAKIAkJQTgwRTdCMTMwQTE5RDYwNjAwN0ZCOEM1
IC8qIEpTSFRNTFRpdGxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBODBFN0IwOTBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MVGl0bGVF
bGVtZW50LmNwcCAqLzsgfTsKIAkJQTgwRTdCMTQwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEhl
YWRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE4MEU3QjBBMEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxIZWFkRWxlbWVudC5jcHAgKi87
IH07CiAJCUE4MEU3QjE1MEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxIZWFkRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTdCMEIwQTE5
RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEhlYWRFbGVtZW50LmggKi87IH07CisJCUE4MEU3RTFBMEEx
QTdDQ0IwMDdGQjhDNSAvKiBIVE1MVGV4dEFyZWFFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTdFMTYwQTFBN0NDQjAwN0ZCOEM1
IC8qIEhUTUxUZXh0QXJlYUVsZW1lbnQuaWRsICovOyB9OworCQlBODBFN0UxQjBBMUE3Q0NCMDA3
RkI4QzUgLyogSFRNTElucHV0RWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3RTE3MEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MSW5w
dXRFbGVtZW50LmlkbCAqLzsgfTsKKwkJQTgwRTdFMUMwQTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxP
cHRpb25FbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTgwRTdFMTgwQTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxPcHRpb25FbGVtZW50Lmlk
bCAqLzsgfTsKKwkJQTgwRTdFMUQwQTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxPcHRHcm91cEVsZW1l
bnQuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
ODBFN0UxOTBBMUE3Q0NCMDA3RkI4QzUgLyogSFRNTE9wdEdyb3VwRWxlbWVudC5pZGwgKi87IH07
CisJCUE4MEU3RTU2MEExQTdGQjMwMDdGQjhDNSAvKiBIVE1MQnV0dG9uRWxlbWVudC5pZGwgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3RTU1MEEx
QTdGQjMwMDdGQjhDNSAvKiBIVE1MQnV0dG9uRWxlbWVudC5pZGwgKi87IH07CisJCUE4MEU3RTY1
MEExQTgyRUMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFN0U2MzBBMUE4MkVDMDA3RkI4
QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5oICovOyB9OworCQlBODBFN0U2NjBBMUE4MkVD
MDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFN0U2NDBBMUE4MkVDMDA3RkI4QzUgLyog
SlNIVE1MSW5wdXRFbGVtZW50QmFzZS5jcHAgKi87IH07CisJCUE4MEU3RTk3MEExQTgzRTMwMDdG
QjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3RThEMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1
dEVsZW1lbnQuaCAqLzsgfTsKKwkJQTgwRTdFOTgwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTElu
cHV0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBODBFN0U4RTBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50LmNwcCAq
LzsgfTsKKwkJQTgwRTdFOTkwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3RThG
MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxPcHRpb25FbGVtZW50LmggKi87IH07CisJCUE4MEU3
RTlBMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxPcHRpb25FbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3RTkwMEExQTgzRTMwMDdG
QjhDNSAvKiBKU0hUTUxPcHRpb25FbGVtZW50LmNwcCAqLzsgfTsKKwkJQTgwRTdFOUIwQTFBODNF
MzAwN0ZCOEM1IC8qIEpTSFRNTE9wdEdyb3VwRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgwRTdFOTEwQTFBODNFMzAwN0ZCOEM1IC8qIEpT
SFRNTE9wdEdyb3VwRWxlbWVudC5oICovOyB9OworCQlBODBFN0U5QzBBMUE4M0UzMDA3RkI4QzUg
LyogSlNIVE1MT3B0R3JvdXBFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4MEU3RTkyMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxPcHRH
cm91cEVsZW1lbnQuY3BwICovOyB9OworCQlBODBFN0U5RDBBMUE4M0UzMDA3RkI4QzUgLyogSlNI
VE1MVGV4dEFyZWFFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODBFN0U5MzBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MVGV4dEFyZWFFbGVt
ZW50LmggKi87IH07CisJCUE4MEU3RTlFMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxUZXh0QXJl
YUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTgwRTdFOTQwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTFRleHRBcmVhRWxlbWVudC5jcHAg
Ki87IH07CisJCUE4MEU3RTlGMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxCdXR0b25FbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFN0U5
NTBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MQnV0dG9uRWxlbWVudC5oICovOyB9OworCQlBODBF
N0VBMDBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MQnV0dG9uRWxlbWVudC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODBFN0U5NjBBMUE4M0UzMDA3
RkI4QzUgLyogSlNIVE1MQnV0dG9uRWxlbWVudC5jcHAgKi87IH07CiAJCUE4MTM2OUNBMDk3Mzc0
RjYwMEQ3NDQ2MyAvKiBIVE1MSXNJbmRleEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTM2OUFFMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1M
SXNJbmRleEVsZW1lbnQuaCAqLzsgfTsKIAkJQTgxMzY5Q0IwOTczNzRGNjAwRDc0NDYzIC8qIEhU
TUxJc0luZGV4RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBODEzNjlBRjA5NzM3NEY1MDBENzQ0NjMgLyogSFRNTElzSW5kZXhFbGVtZW50
LmNwcCAqLzsgfTsKIAkJQTgxMzY5Q0MwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxJbnB1dEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MTM2
OUIwMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MSW5wdXRFbGVtZW50LmggKi87IH07CkBAIC02OTYs
NiArNzEzLDggQEAKIAkJQTgyMzlFMDAwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgyMzlERkUwOUIz
Q0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuY3BwICovOyB9OwogCQlBODIzOUUwMTA5QjNDRjhBMDBC
NjA2NDEgLyogTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTgyMzlERkYwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuaCAqLzsgfTsKIAkJ
QTgyM0E3NUMwOUI2RTUzOTAwQjYwNjQxIC8qIEdyYXBoaWNzQ29udGV4dC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODIzQTc1QjA5QjZFNTM5MDBC
NjA2NDEgLyogR3JhcGhpY3NDb250ZXh0LmNwcCAqLzsgfTsKKwkJQTgyNkU4QUUwQTFBOEYyMzAw
Q0QxQkI2IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTgyNkU4QUMwQTFBOEYyMzAwQ0QxQkI2
IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5oICovOyB9OworCQlBODI2RUM0ODBB
MUIwQ0JFMDBDRDFCQjYgLyogSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4MjZFOEFEMEExQThG
MjMwMENEMUJCNiAvKiBKU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuY3BwICovOyB9Owog
CQlBODY2MjlDRjA5REEyQjQ3MDA5NjMzQTUgLyogSlNVSUV2ZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBODY2MjlDOTA5REEyQjQ3MDA5NjMzQTUg
LyogSlNVSUV2ZW50LmggKi87IH07CiAJCUE4NjYyOUQwMDlEQTJCNDgwMDk2MzNBNSAvKiBKU1VJ
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTg2NjI5Q0EwOURBMkI0NzAwOTYzM0E1IC8qIEpTVUlFdmVudC5jcHAgKi87IH07CiAJCUE4NjYy
OUQxMDlEQTJCNDgwMDk2MzNBNSAvKiBKU01vdXNlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4NjYyOUNCMDlEQTJCNDcwMDk2MzNBNSAvKiBK
U01vdXNlRXZlbnQuaCAqLzsgfTsKQEAgLTE0MjIsNiArMTQ0MSwyMyBAQAogCQlGQUUwNDE5MDA5
NzU5NkM5MDAwNTQwQkUgLyogU1ZHSW1hZ2VMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZBRTA0MThFMDk3NTk2QzkwMDA1NDBCRSAvKiBTVkdJ
bWFnZUxvYWRlci5oICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKKy8q
IEJlZ2luIFBCWEJ1aWxkU3R5bGUgc2VjdGlvbiAqLworCQlBODI2RjNCRjBBMUJEMTFEMDBDRDFC
QjYgLyogRGV2ZWxvcG1lbnQgKi8gPSB7CisJCQlpc2EgPSBQQlhCdWlsZFN0eWxlOworCQkJYnVp
bGRTZXR0aW5ncyA9IHsKKwkJCQlDT1BZX1BIQVNFX1NUUklQID0gTk87CisJCQl9OworCQkJbmFt
ZSA9IERldmVsb3BtZW50OworCQl9OworCQlBODI2RjNDMDBBMUJEMTFEMDBDRDFCQjYgLyogRGVw
bG95bWVudCAqLyA9IHsKKwkJCWlzYSA9IFBCWEJ1aWxkU3R5bGU7CisJCQlidWlsZFNldHRpbmdz
ID0geworCQkJCUNPUFlfUEhBU0VfU1RSSVAgPSBZRVM7CisJCQl9OworCQkJbmFtZSA9IERlcGxv
eW1lbnQ7CisJCX07CisvKiBFbmQgUEJYQnVpbGRTdHlsZSBzZWN0aW9uICovCisKIC8qIEJlZ2lu
IFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCiAJCUREMDQxRkYwMDlEOUUzMjUwMDEw
QUYyQSAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CiAJCQlpc2EgPSBQQlhDb250YWlu
ZXJJdGVtUHJveHk7CkBAIC0yMDI1LDYgKzIwNjEsMjMgQEAKIAkJQTgwRTdCMDkwQTE5RDYwNjAw
N0ZCOEM1IC8qIEpTSFRNTFRpdGxlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNIVE1MVGl0bGVFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQTgwRTdCMEEwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEhlYWRFbGVtZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxIZWFkRWxl
bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MEU3QjBCMEExOUQ2MDYw
MDdGQjhDNSAvKiBKU0hUTUxIZWFkRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNIVE1MSGVhZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQTgwRTdFMTYwQTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxUZXh0QXJlYUVsZW1lbnQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MVGV4dEFyZWFFbGVtZW50LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgwRTdFMTcwQTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxJbnB1
dEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MSW5wdXRFbGVtZW50Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgwRTdFMTgwQTFBN0NDQjAwN0ZCOEM1
IC8qIEhUTUxPcHRpb25FbGVtZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTE9w
dGlvbkVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODBFN0UxOTBB
MUE3Q0NCMDA3RkI4QzUgLyogSFRNTE9wdEdyb3VwRWxlbWVudC5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEhUTUxPcHRHcm91cEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBODBFN0U1NTBBMUE3RkIzMDA3RkI4QzUgLyogSFRNTEJ1dHRvbkVsZW1lbnQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MQnV0dG9uRWxlbWVudC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MEU3RTYzMEExQTgyRUMwMDdGQjhDNSAvKiBKU0hUTUxJ
bnB1dEVsZW1lbnRCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hU
TUxJbnB1dEVsZW1lbnRCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MEU3
RTY0MEExQTgyRUMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgwRTdFOEQwQTFBODNFMzAwN0ZCOEM1
IC8qIEpTSFRNTElucHV0RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNIVE1MSW5wdXRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4
MEU3RThFMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTElucHV0RWxlbWVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MEU3RThGMEExQTgzRTMwMDdGQjhDNSAvKiBK
U0hUTUxPcHRpb25FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0hUTUxPcHRpb25FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MEU3
RTkwMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxPcHRpb25FbGVtZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxPcHRpb25FbGVtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgwRTdFOTEwQTFBODNFMzAwN0ZCOEM1IC8qIEpT
SFRNTE9wdEdyb3VwRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SlNIVE1MT3B0R3JvdXBFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4
MEU3RTkyMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxPcHRHcm91cEVsZW1lbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTE9wdEdyb3VwRWxlbWVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4MEU3RTkzMEExQTgzRTMwMDdGQjhD
NSAvKiBKU0hUTUxUZXh0QXJlYUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTSFRNTFRleHRBcmVhRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBODBFN0U5NDBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MVGV4dEFyZWFFbGVtZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxUZXh0QXJlYUVs
ZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODBFN0U5NTBBMUE4M0Uz
MDA3RkI4QzUgLyogSlNIVE1MQnV0dG9uRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNIVE1MQnV0dG9uRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBODBFN0U5NjBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MQnV0dG9uRWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MQnV0dG9uRWxl
bWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4MTBFMzkzMDhBNDE2MEYw
MDMzM0Q5OCAvKiBLQ2FudmFzVHJlZURlYnVnLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS0NhbnZhc1RyZWVEZWJ1Zy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQTgxMEUzOTQwOEE0
MTYwRjAwMzMzRDk4IC8qIEtDYW52YXNUcmVlRGVidWcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLQ2FudmFzVHJlZURlYnVnLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJ
CUE4MTIyQzdFMDhENTY0QjAwMDg0NEZBMyAvKiBHZXRTVkdEb2N1bWVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBHZXRTVkdEb2N1bWVudC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMjIw
MSw2ICsyMjU0LDggQEAKIAkJQTgyMzlERkUwOUIzQ0Y4QTAwQjYwNjQxIC8qIExvZ2dpbmcuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvZ2dpbmcuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODIzOURGRjA5QjNDRjhBMDBCNjA2NDEgLyogTG9n
Z2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9nZ2luZy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBODIzQTc1QjA5QjZFNTM5MDBCNjA2NDEgLyogR3Jh
cGhpY3NDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBH
cmFwaGljc0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBODI2RThB
QzBBMUE4RjIzMDBDRDFCQjYgLyogSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxPcHRpb25FbGVtZW50Q29uc3Ry
dWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTgyNkU4QUQwQTFBOEYyMzAw
Q0QxQkI2IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9y
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTgyRkMzM0IwOENCQjA3QzAwRUZF
RTIzIC8qIFNWR0N1cnNvckVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTVkdDdXJzb3JFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlBODJGQzMzQzA4Q0JCMDdD
MDBFRkVFMjMgLyogU1ZHQ3Vyc29yRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0N1cnNvckVsZW1lbnQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQTg1
RDdBMkYwODc5RUJBOTAwNkE5MTcyIC8qIFF1YXJ0ekNvcmUuZnJhbWV3b3JrICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7
IG5hbWUgPSBRdWFydHpDb3JlLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL1F1YXJ0ekNvcmUuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9
OwpAQCAtMzI0MCw2ICszMjk1LDggQEAKIAkJCQkxNEU4Mzc4RDA5Rjg1RDRGMDBCODVBRTQgLyog
SlNFdmVudC5oICovLAogCQkJCUE4MEU3QjA4MEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxCYXNl
RWxlbWVudC5jcHAgKi8sCiAJCQkJQTgwRTdCMDcwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEJh
c2VFbGVtZW50LmggKi8sCisJCQkJQTgwRTdFOTYwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTEJ1
dHRvbkVsZW1lbnQuY3BwICovLAorCQkJCUE4MEU3RTk1MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hU
TUxCdXR0b25FbGVtZW50LmggKi8sCiAJCQkJOTM4RTY2NUYwOUYwOUI4MTAwOEE0OEVDIC8qIEpT
SFRNTENhbnZhc0VsZW1lbnQuY3BwICovLAogCQkJCTkzOEU2NjYxMDlGMDlCODcwMDhBNDhFQyAv
KiBKU0hUTUxDYW52YXNFbGVtZW50LmggKi8sCiAJCQkJMUE0OTRFMzIwQTEyMzU4QTAwRkRBRkMx
IC8qIEpTSFRNTERvY3VtZW50LmNwcCAqLywKQEAgLTMyNDgsMTIgKzMzMDUsMjAgQEAKIAkJCQkx
QTQ5NEJGOTBBMTIyRjQ0MDBGREFGQzEgLyogSlNIVE1MRWxlbWVudC5oICovLAogCQkJCUE4MEU3
QjBBMEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxIZWFkRWxlbWVudC5jcHAgKi8sCiAJCQkJQTgw
RTdCMEIwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEhlYWRFbGVtZW50LmggKi8sCisJCQkJQTgw
RTdFOEUwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVudC5jcHAgKi8sCisJCQkJ
QTgwRTdFOEQwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVudC5oICovLAogCQkJ
CUE4MEU3QjA2MEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxMaW5rRWxlbWVudC5jcHAgKi8sCiAJ
CQkJQTgwRTdCMDMwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTExpbmtFbGVtZW50LmggKi8sCiAJ
CQkJQTgwRTdBMTUwQTE5QzNENjAwN0ZCOEM1IC8qIEpTSFRNTE1ldGFFbGVtZW50LmNwcCAqLywK
IAkJCQlBODBFN0ExNjBBMTlDM0Q2MDA3RkI4QzUgLyogSlNIVE1MTWV0YUVsZW1lbnQuaCAqLywK
KwkJCQlBODBFN0U5MjBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MT3B0R3JvdXBFbGVtZW50LmNw
cCAqLywKKwkJCQlBODBFN0U5MTBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MT3B0R3JvdXBFbGVt
ZW50LmggKi8sCisJCQkJQTgwRTdFOTAwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTE9wdGlvbkVs
ZW1lbnQuY3BwICovLAorCQkJCUE4MEU3RThGMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxPcHRp
b25FbGVtZW50LmggKi8sCiAJCQkJQTgwRTdCMDUwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTFN0
eWxlRWxlbWVudC5jcHAgKi8sCiAJCQkJQTgwRTdCMDQwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRN
TFN0eWxlRWxlbWVudC5oICovLAorCQkJCUE4MEU3RTk0MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hU
TUxUZXh0QXJlYUVsZW1lbnQuY3BwICovLAorCQkJCUE4MEU3RTkzMEExQTgzRTMwMDdGQjhDNSAv
KiBKU0hUTUxUZXh0QXJlYUVsZW1lbnQuaCAqLywKIAkJCQlBODBFN0IwOTBBMTlENjA2MDA3RkI4
QzUgLyogSlNIVE1MVGl0bGVFbGVtZW50LmNwcCAqLywKIAkJCQlBODBFN0IwMjBBMTlENjA2MDA3
RkI4QzUgLyogSlNIVE1MVGl0bGVFbGVtZW50LmggKi8sCiAJCQkJQTg2NjI5Q0UwOURBMkI0NzAw
OTYzM0E1IC8qIEpTS2V5Ym9hcmRFdmVudC5jcHAgKi8sCkBAIC0zNTk5LDYgKzM2NjQsNyBAQAog
CQkJCUE4Q0ZGN0EwMEExNTY5NzgwMDBBNDIzNCAvKiBIVE1MQlJFbGVtZW50LmggKi8sCiAJCQkJ
QTgxMzY5QjcwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxCdXR0b25FbGVtZW50LmNwcCAqLywKIAkJ
CQlBODEzNjlCNjA5NzM3NEY1MDBENzQ0NjMgLyogSFRNTEJ1dHRvbkVsZW1lbnQuaCAqLywKKwkJ
CQlBODBFN0U1NTBBMUE3RkIzMDA3RkI4QzUgLyogSFRNTEJ1dHRvbkVsZW1lbnQuaWRsICovLAog
CQkJCTUxRjZBM0Q1MDY2M0JGMDQwMDREMjkxOSAvKiBIVE1MQ2FudmFzRWxlbWVudC5jcHAgKi8s
CiAJCQkJNTFGNkEzRDYwNjYzQkYwNDAwNEQyOTE5IC8qIEhUTUxDYW52YXNFbGVtZW50LmggKi8s
CiAJCQkJOTM4RTY2MjUwOUYwOTk1NjAwOEE0OEVDIC8qIEhUTUxDYW52YXNFbGVtZW50LmlkbCAq
LywKQEAgLTM2NTEsNiArMzcxNyw3IEBACiAJCQkJQThFQTdEMjMwQTE5Mzg1NTAwQThFRjVGIC8q
IEhUTUxJbWFnZUxvYWRlci5oICovLAogCQkJCUE4MTM2OUIxMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBI
VE1MSW5wdXRFbGVtZW50LmNwcCAqLywKIAkJCQlBODEzNjlCMDA5NzM3NEY1MDBENzQ0NjMgLyog
SFRNTElucHV0RWxlbWVudC5oICovLAorCQkJCUE4MEU3RTE3MEExQTdDQ0IwMDdGQjhDNSAvKiBI
VE1MSW5wdXRFbGVtZW50LmlkbCAqLywKIAkJCQlBODEzNjlBRjA5NzM3NEY1MDBENzQ0NjMgLyog
SFRNTElzSW5kZXhFbGVtZW50LmNwcCAqLywKIAkJCQlBODEzNjlBRTA5NzM3NEY1MDBENzQ0NjMg
LyogSFRNTElzSW5kZXhFbGVtZW50LmggKi8sCiAJCQkJQTgxMzY5QzkwOTczNzRGNjAwRDc0NDYz
IC8qIEhUTUxLZXlnZW5FbGVtZW50LmNwcCAqLywKQEAgLTM2ODUsOCArMzc1MiwxMCBAQAogCQkJ
CUE4RUE3OUU1MEExOTE2REYwMEE4RUY1RiAvKiBIVE1MT0xpc3RFbGVtZW50LmggKi8sCiAJCQkJ
QTgxMzY5QzMwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxPcHRHcm91cEVsZW1lbnQuY3BwICovLAog
CQkJCUE4MTM2OUMyMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MT3B0R3JvdXBFbGVtZW50LmggKi8s
CisJCQkJQTgwRTdFMTkwQTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxPcHRHcm91cEVsZW1lbnQuaWRs
ICovLAogCQkJCUE4MTM2OUMxMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MT3B0aW9uRWxlbWVudC5j
cHAgKi8sCiAJCQkJQTgxMzY5QzAwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxPcHRpb25FbGVtZW50
LmggKi8sCisJCQkJQTgwRTdFMTgwQTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxPcHRpb25FbGVtZW50
LmlkbCAqLywKIAkJCQk5MzI3QTk0MTA5OTY4RDFBMDA2OEE1NDYgLyogSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uLmNwcCAqLywKIAkJCQlBODEzNjlCRTA5NzM3NEY1MDBENzQ0NjMgLyogSFRNTE9wdGlv
bnNDb2xsZWN0aW9uLmggKi8sCiAJCQkJQThFQTdDQTQwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxQ
YXJhZ3JhcGhFbGVtZW50LmNwcCAqLywKQEAgLTM3MjQsNiArMzc5Myw3IEBACiAJCQkJQTg3MURC
MTcwQTE1MEJENjAwQjEyQTY4IC8qIEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmggKi8sCiAJCQkJ
QTgxMzY5QkIwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwICovLAog
CQkJCUE4MTM2OUJBMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MVGV4dEFyZWFFbGVtZW50LmggKi8s
CisJCQkJQTgwRTdFMTYwQTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxUZXh0QXJlYUVsZW1lbnQuaWRs
ICovLAogCQkJCUFCMjNBMzEwMDlCQkE3NzYwMDY3Q0M1MyAvKiBIVE1MVGV4dEZpZWxkSW5uZXJF
bGVtZW50LmNwcCAqLywKIAkJCQlBQjIzQTMxMTA5QkJBNzc2MDA2N0NDNTMgLyogSFRNTFRleHRG
aWVsZElubmVyRWxlbWVudC5oICovLAogCQkJCUE4NzFEQzFEMEExNTIwNTcwMEIxMkE2OCAvKiBI
VE1MVGl0bGVFbGVtZW50LmNwcCAqLywKQEAgLTQzNzMsNiArNDQ0MywxMCBAQAogCQkJCTkzQjcw
RDQwMDlFQjBDN0MwMDlEODQ2OCAvKiBKU0RPTVBhcnNlci5oICovLAogCQkJCTkzOEU2NUY2MDlG
MDk4NUQwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwICovLAogCQkJ
CTkzOEU2NUYwMDlGMDk4NDAwMDhBNDhFQyAvKiBKU0hUTUxFbGVtZW50V3JhcHBlckZhY3Rvcnku
aCAqLywKKwkJCQlBODBFN0U2NDBBMUE4MkVDMDA3RkI4QzUgLyogSlNIVE1MSW5wdXRFbGVtZW50
QmFzZS5jcHAgKi8sCisJCQkJQTgwRTdFNjMwQTFBODJFQzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0
RWxlbWVudEJhc2UuaCAqLywKKwkJCQlBODI2RThBRDBBMUE4RjIzMDBDRDFCQjYgLyogSlNIVE1M
T3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmNwcCAqLywKKwkJCQlBODI2RThBQzBBMUE4RjIzMDBD
RDFCQjYgLyogSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmggKi8sCiAJCQkJOTNCNzBE
NDEwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTWE1MSHR0cFJlcXVlc3QuY3BwICovLAogCQkJCTkzQjcw
RDQyMDlFQjBDN0MwMDlEODQ2OCAvKiBKU1hNTEh0dHBSZXF1ZXN0LmggKi8sCiAJCQkJOTNCNzBE
NDMwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTWE1MU2VyaWFsaXplci5jcHAgKi8sCkBAIC01NzAzLDYg
KzU3NzcsMTMgQEAKIAkJCQlBODBFN0IwRTBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MU3R5bGVF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFN0IxMTBBMTlENjA2MDA3RkI4QzUgLyog
SlNIVE1MQmFzZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU3QjE1MEExOUQ2MDYw
MDdGQjhDNSAvKiBKU0hUTUxIZWFkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTgwRTdF
NjUwQTFBODJFQzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVudEJhc2UuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUE4MEU3RTk3MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxJbnB1dEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCUE4MEU3RTk5MEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxP
cHRpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBODBFN0U5QjBBMUE4M0UzMDA3RkI4
QzUgLyogSlNIVE1MT3B0R3JvdXBFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBODBFN0U5
RDBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MVGV4dEFyZWFFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKKwkJCQlBODBFN0U5RjBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MQnV0dG9uRWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQTgyNkU4QUUwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTSFRNTE9w
dGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC01NzM2LDYgKzU4MTcs
MTIgQEAKIAkJMDg2N0Q2OTBGRTg0MDI4RkMwMkFBQzA3IC8qIFByb2plY3Qgb2JqZWN0ICovID0g
ewogCQkJaXNhID0gUEJYUHJvamVjdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAxNDlD
Mjg0MzA4OTAyQjExMDA4QTlFRkMgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQ
cm9qZWN0ICJXZWJDb3JlIiAqLzsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQl9OworCQkJYnVp
bGRTdHlsZXMgPSAoCisJCQkJQTgyNkYzQkYwQTFCRDExRDAwQ0QxQkI2IC8qIERldmVsb3BtZW50
ICovLAorCQkJCUE4MjZGM0MwMEExQkQxMUQwMENEMUJCNiAvKiBEZXBsb3ltZW50ICovLAorCQkJ
KTsKIAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25zID0gKAog
CQkJCUVuZ2xpc2gsCkBAIC01ODA0LDYgKzU4OTEsMTEgQEAKIAkJCQlBODBFN0FCNTBBMTlEMUYx
MDA3RkI4QzUgLyogSFRNTExpbmtFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJQTgw
RTdBQjYwQTE5RDFGMTAwN0ZCOEM1IC8qIEhUTUxIZWFkRWxlbWVudC5pZGwgaW4gUmVzb3VyY2Vz
ICovLAogCQkJCUE4MEU3QUI3MEExOUQxRjEwMDdGQjhDNSAvKiBIVE1MU3R5bGVFbGVtZW50Lmlk
bCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgwRTdFMUEwQTFBN0NDQjAwN0ZCOEM1IC8qIEhUTUxU
ZXh0QXJlYUVsZW1lbnQuaWRsIGluIFJlc291cmNlcyAqLywKKwkJCQlBODBFN0UxQjBBMUE3Q0NC
MDA3RkI4QzUgLyogSFRNTElucHV0RWxlbWVudC5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUE4
MEU3RTFDMEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MT3B0aW9uRWxlbWVudC5pZGwgaW4gUmVzb3Vy
Y2VzICovLAorCQkJCUE4MEU3RTFEMEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MT3B0R3JvdXBFbGVt
ZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJQTgwRTdFNTYwQTFBN0ZCMzAwN0ZCOEM1IC8q
IEhUTUxCdXR0b25FbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC02NDg2LDYgKzY1Nzgs
MTMgQEAKIAkJCQlBODBFN0IxMjBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MQmFzZUVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTdCMTMwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRN
TFRpdGxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFN0IxNDBBMTlENjA2MDA3
RkI4QzUgLyogSlNIVE1MSGVhZEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTgwRTdF
NjYwQTFBODJFQzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVudEJhc2UuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQTgwRTdFOTgwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTElucHV0RWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBODBFN0U5QTBBMUE4M0UzMDA3RkI4QzUgLyogSlNI
VE1MT3B0aW9uRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBODBFN0U5QzBBMUE4M0Uz
MDA3RkI4QzUgLyogSlNIVE1MT3B0R3JvdXBFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUE4MEU3RTlFMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJQTgwRTdFQTAwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTEJ1dHRv
bkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQTgyNkVDNDgwQTFCMENCRTAwQ0QxQkI2
IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQzZEQjQ3NDBBMUE5MEZCMDBFNUNEMTQgLyogR2x5cGhNYXAuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkM2REI0RDQwQTFBRkVFRjAwRTVDRDE0IC8qIEdseXBoTWFwTWFjLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBOUVGNDU3MEExQjk1N0QwMDMzMkI2MyAvKiBKU0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFdlYkNvcmUvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNDQ1MCkKKysr
IFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTAgQEAKKzIwMDYt
MDUtMTcgIEVyaWMgU2VpZGVsICA8ZXNlaWRlbEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50V3JhcHBlckZhY3RvcnkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlQnV0dG9uV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJbnB1
dFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT3B0R3JvdXBXcmFwcGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZU9wdGlvbldyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6
Y3JlYXRlVGV4dEFyZWFXcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUpTV3JhcHBl
cik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MSW5wdXRFbGVtZW50QmFzZS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MSW5wdXRFbGVtZW50QmFzZVByb3RvRnVuYzo6
Y2FsbEFzRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKFdlYkNvcmU6
OkpTSFRNTElucHV0RWxlbWVudEJhc2U6OkpTSFRNTElucHV0RWxlbWVudEJhc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNIVE1MSW5wdXRFbGVtZW50QmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVsZW1lbnRCYXNlLmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SlNIVE1MSW5wdXRFbGVtZW50QmFzZTo6Y2xhc3NJbmZvKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTSFRNTElucHV0RWxlbWVudEJhc2U6Oik6CisgICAgICAgIChXZWJD
b3JlOjpKU0hUTUxJbnB1dEVsZW1lbnRCYXNlOjppbXBsKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0hUTUxPcHRpb25FbGVtZW50Q29uc3RydWN0b3IuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvcjo6SlNIVE1MT3B0aW9uRWxlbWVu
dENvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTE9wdGlvbkVsZW1lbnRDb25z
dHJ1Y3Rvcjo6aW1wbGVtZW50c0NvbnN0cnVjdCk6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxP
cHRpb25FbGVtZW50Q29uc3RydWN0b3I6OmNvbnN0cnVjdCk6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNIVE1MT3B0aW9uRWxlbWVudENvbnN0cnVjdG9yLmg6IEFkZGVkLgorICAgICAgICAqIGJp
bmRpbmdzL2pzL2tqc19kb21ub2RlLmg6CisgICAgICAgICogYmluZGluZ3MvanMva2pzX2h0bWwu
Y3BwOgorICAgICAgICAoS0pTOjopOgorICAgICAgICAoS0pTOjpKU0hUTUxFbGVtZW50OjpjbGFz
c0luZm8pOgorICAgICAgICAoS0pTOjpKU0hUTUxFbGVtZW50OjphY2Nlc3NvcnMpOgorICAgICAg
ICAoS0pTOjpKU0hUTUxFbGVtZW50OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoS0pT
OjpIVE1MRWxlbWVudEZ1bmN0aW9uOjpjYWxsQXNGdW5jdGlvbik6CisgICAgICAgIChLSlM6OkpT
SFRNTEVsZW1lbnQ6OnB1dCk6CisgICAgICAgIChLSlM6OkpTSFRNTEVsZW1lbnQ6Omh0bWxTZXR0
ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc19odG1sLmg6CisgICAgICAgIChLSlM6OkpT
SFRNTEVsZW1lbnQ6Oik6CisgICAgICAgICogYmluZGluZ3MvanMva2pzX3dpbmRvdy5jcHA6Cisg
ICAgICAgIChLSlM6OldpbmRvdzo6Z2V0VmFsdWVQcm9wZXJ0eSk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICogaHRtbC9IVE1MQnV0dG9u
RWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5pZGw6
IEFkZGVkLgorICAgICAgICAqIGh0bWwvSFRNTE9wdEdyb3VwRWxlbWVudC5pZGw6IEFkZGVkLgor
ICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBo
dG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaWRsOiBBZGRlZC4KKwogMjAwNi0wNS0xNyAgRGF2aWQg
SHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGZvciA4OTU0LCBzZXBhcmF0
ZSB0aGUgZ2x5cGggbWFwIG91dCBpbnRvIGl0cyBvd24gZmlsZXMgYW5kIG1ha2UgaXQK
</data>
<flag name="review"
          id="2373"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>