<?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>10864</bug_id>
          
          <creation_ts>2006-09-14 20:43:01 -0700</creation_ts>
          <short_desc>Linux\GDK build fixes</short_desc>
          <delta_ts>2006-09-15 17:32:53 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>420+</version>
          <rep_platform>PC</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>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Krzysztof Kowalczyk">kkowalczyk</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>55550</commentid>
    <comment_count>0</comment_count>
    <who name="Krzysztof Kowalczyk">kkowalczyk</who>
    <bug_when>2006-09-14 20:43:01 -0700</bug_when>
    <thetext>Attached patch fixes GDK build.

The only (I hope) controversial thing is adding #define USE_OLD_CAIRO in FontDataGdk.cpp. If defined, it makes the build compile with older (1.0.4) version of cairo (which seems to be standard on most distros e.g. my Ubuntu 6.06.1) by not using a cairo_scaled_font_text_extents() which is only available in later cairo builds. I think that it&apos;s better to have a build working out of the box on popular distros rather than force people to install their own copy of cairo (which is non-trivial for most people).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55551</commentid>
    <comment_count>1</comment_count>
      <attachid>10569</attachid>
    <who name="Krzysztof Kowalczyk">kkowalczyk</who>
    <bug_when>2006-09-14 20:43:29 -0700</bug_when>
    <thetext>Created attachment 10569
fix linux\gdk build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55554</commentid>
    <comment_count>2</comment_count>
      <attachid>10569</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2006-09-14 20:56:34 -0700</bug_when>
    <thetext>Comment on attachment 10569
fix linux\gdk build

It looks like you&apos;ve got a tab character in WebCore/Projects/gdk/webcore-gdk.bkl

Also, can you remove the commas from the end of your name in the ChangeLog?

Other than those, r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55567</commentid>
    <comment_count>3</comment_count>
      <attachid>10572</attachid>
    <who name="Krzysztof Kowalczyk">kkowalczyk</who>
    <bug_when>2006-09-15 01:28:09 -0700</bug_when>
    <thetext>Created attachment 10572
fix the name in ChangeLog and remove tab

Just like the previous patch with tab in webcore-gdk.bkl removed and the commas after name removed in ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55602</commentid>
    <comment_count>4</comment_count>
      <attachid>10572</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2006-09-15 11:28:33 -0700</bug_when>
    <thetext>Comment on attachment 10572
fix the name in ChangeLog and remove tab

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55625</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2006-09-15 17:32:53 -0700</bug_when>
    <thetext>Landed in r16382.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10569</attachid>
            <date>2006-09-14 20:43:29 -0700</date>
            <delta_ts>2006-09-15 01:28:09 -0700</delta_ts>
            <desc>fix linux\gdk build</desc>
            <filename>linux_build_fixes.txt</filename>
            <type>text/plain</type>
            <size>29713</size>
            <attacher name="Krzysztof Kowalczyk">kkowalczyk</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MzY3KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTAgQEAKKzIwMDYtMDktMTQgIEtyenlzenRv
ZiBLb3dhbGN6eWssLCwgIDxra293YWxjenlrQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlU291cmNlcy5i
a2w6CisgICAgICAgICoganNjb3JlLmJrbDoKKwogMjAwNi0wOS0xMiAgU3RldmUgRmFsa2VuYnVy
ZyAgPHNmYWxrZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYS4KSW5kZXg6
IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlU291cmNlcy5ia2wKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVTb3VyY2VzLmJrbAkocmV2aXNpb24gMTYzNjcp
CisrKyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZVNvdXJjZXMuYmtsCSh3b3JraW5nIGNv
cHkpCkBAIC03Myw0ICs3MywyMCBAQAogCQlwY3JlL3VjcF9maW5kY2hhci5jCiAKIAk8L3NldD4K
Kwk8c2V0IGFwcGVuZD0iMSIgdmFyPSJKU0NPUkVfU09VUkNFU19CSU5ESU5HUyI+CisJCQorCQli
aW5kaW5ncy9jL2NfY2xhc3MuY3BwCisJCWJpbmRpbmdzL2MvY19pbnN0YW5jZS5jcHAKKwkJYmlu
ZGluZ3MvYy9jX3J1bnRpbWUuY3BwCisJCWJpbmRpbmdzL2MvY191dGlsaXR5LmNwcAorCQliaW5k
aW5ncy9OUF9qc29iamVjdC5jcHAKKwkJYmluZGluZ3MvbnBydW50aW1lLmNwcAorCQliaW5kaW5n
cy9ydW50aW1lLmNwcAorCQliaW5kaW5ncy9ydW50aW1lX2FycmF5LmNwcAorCQliaW5kaW5ncy9y
dW50aW1lX21ldGhvZC5jcHAKKwkJYmluZGluZ3MvcnVudGltZV9vYmplY3QuY3BwCisJCWJpbmRp
bmdzL3J1bnRpbWVfcm9vdC5jcHAKKworCTwvc2V0PgorCiA8L21ha2VmaWxlPgpJbmRleDogSmF2
YVNjcmlwdENvcmUvanNjb3JlLmJrbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9qc2Nv
cmUuYmtsCShyZXZpc2lvbiAxNjM2NykKKysrIEphdmFTY3JpcHRDb3JlL2pzY29yZS5ia2wJKHdv
cmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAKICAgICAgICAgCiAgICAgICAgIDxpbmNsdWRl
PiQoU1JDRElSKTwvaW5jbHVkZT4KICAgICAgICAgPGluY2x1ZGU+JChTUkNESVIpL0ZvcndhcmRp
bmdIZWFkZXJzPC9pbmNsdWRlPgorICAgICAgICA8aW5jbHVkZT4kKFNSQ0RJUikvd3RmPC9pbmNs
dWRlPgogICAgICAgICA8aW5jbHVkZT4kKFNSQ0RJUikva2pzPC9pbmNsdWRlPgogICAgICAgICA8
aW5jbHVkZT4kKFNSQ0RJUikvcGNyZTwvaW5jbHVkZT4KICAgICAgICAgPGluY2x1ZGU+JChTUkNE
SVIpL2JpbmRpbmdzPC9pbmNsdWRlPgpAQCAtNjcsNyArNjgsNyBAQAogICAgICAgICAgICAgPGRl
ZmluZT5VU0VfQ09OU0VSVkFUSVZFX0dDPTE8L2RlZmluZT4KICAgICAgICAgPC9pZj4gCiAKLSAg
ICAgICAgPGRlZmluZT5LSFRNTF9YU0xUPTE8L2RlZmluZT4KKyAgICAgICAgPGRlZmluZT5YU0xU
X1NVUFBPUlQ9MTwvZGVmaW5lPgogCiAgICAgICAgIDxpZiBjb25kPSJGT1JNQVQ9PSdnbnUnIj4K
ICAgICAgICAgICAgIDwhLS0gRklYTUU6IHdlIG5lZWQgcHJvcGVyIGNvbmZpZ3VyZSBjaGVja3Mg
LS0+CkBAIC04Nyw2ICs4OCw3IEBACiAKICAgICA8ZXhlIGlkPSJkZnRhYmxlcyI+CiAgICAgICAg
IDxkaXJuYW1lPiQoU1JDRElSKTwvZGlybmFtZT4KKyAgICAgICAgPGluY2x1ZGU+JChTUkNESVIp
L3d0ZjwvaW5jbHVkZT4KICAgICAgICAgPHNvdXJjZXM+JChTUkNESVIpL3BjcmUvZGZ0YWJsZXMu
Yzwvc291cmNlcz4KICAgICA8L2V4ZT4KIApAQCAtOTksMTQgKzEwMSwxNSBAQAogICAgICAgICA8
b2JqZWN0cy1kZXBlbmQ+ZGZ0YWJsZXM8L29iamVjdHMtZGVwZW5kPgogICAgICAgICA8cHJlLWJ1
aWxkLXRhcmdldD5EZXJpdmVkU291cmNlczwvcHJlLWJ1aWxkLXRhcmdldD4KICAgICAgICAgPHNv
dXJjZXM+Ci0JCQkkKEpTQ09SRV9TT1VSQ0VTX1dURikKKwkgICAgJChKU0NPUkVfU09VUkNFU19X
VEYpCiAgICAgICAgICAgICAkKEpTQ09SRV9TT1VSQ0VTX1BDUkUpCiAgICAgICAgICAgICAkKEpT
Q09SRV9TT1VSQ0VTX0tKUykKKyAgICAgICAgICAgICQoSlNDT1JFX1NPVVJDRVNfQklORElOR1Mp
CiAgICAgICAgIDwvc291cmNlcz4KICAgICAgICAgPGlmIGNvbmQ9IlBMQVRGT1JNX1dJTjMyPT0n
MSciPgogICAgICAgICAgICAgJChKU0NPUkVfU09VUkNFU19XSU4pCi0JCTwvaWY+Ci0JCTxpbnN0
YWxsLXRvPiQoQlVJTERESVIpPC9pbnN0YWxsLXRvPgorCTwvaWY+CisJPGluc3RhbGwtdG8+JChC
VUlMRERJUik8L2luc3RhbGwtdG8+CiAgICAgPC9saWI+CiAKIDwvbWFrZWZpbGU+CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dkay9JbWFnZUdkay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9nZGsvSW1hZ2VHZGsuY3BwCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9nZGsvSW1hZ2VHZGsuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW1hZ2UuaCIKKwor
I2lmIFBMQVRGT1JNKENBSVJPKQorI2luY2x1ZGUgPGNhaXJvLmg+CisjZWxzZQorI2Vycm9yICJH
REsgcG9ydCByZXF1aXJlcyBQTEFURk9STShDQUlSTykiCisjZW5kaWYKKworLy8gVGhpcyBmdW5j
dGlvbiBsb2FkcyByZXNvdXJjZXMgZnJvbSBXZWJLaXQKK1ZlY3RvcjxjaGFyPiBsb2FkUmVzb3Vy
Y2VJbnRvQXJyYXkoY29uc3QgY2hhciopOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICB2
b2lkIEltYWdlOjppbml0UGxhdGZvcm1EYXRhKCkKKyAgICB7CisgICAgfQorCisgICAgdm9pZCBJ
bWFnZTo6aW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgpCisgICAgeworICAgIH0KKworICAgIEltYWdl
KiBJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoY29uc3QgY2hhciAqbmFtZSkKKyAgICB7Cisg
ICAgICAgIFZlY3RvcjxjaGFyPiBhcnIgPSBsb2FkUmVzb3VyY2VJbnRvQXJyYXkobmFtZSk7Cisg
ICAgICAgIEltYWdlKiBpbWcgPSBuZXcgSW1hZ2U7CisgICAgICAgIGltZy0+c2V0TmF0aXZlRGF0
YSgmYXJyLCB0cnVlKTsKKyAgICAgICAgcmV0dXJuIGltZzsKKyAgICB9CisKKyAgICBib29sIElt
YWdlOjpzdXBwb3J0c1R5cGUoY29uc3QgU3RyaW5nJiB0eXBlKQorICAgIHsKKyAgICAgICAgLy8g
RklYTUU6IEltcGxlbWVudC4KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworfQpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9nZGsvRm9udENhY2hlR2RrLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dkay9Gb250Q2FjaGVHZGsuY3BwCShyZXZpc2lvbiAxNjM2NykKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0ZvbnRDYWNoZUdkay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKIAogI2luY2x1ZGUgIkZvbnQu
aCIKLSNpbmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgiCisjaW5jbHVkZSAiRm9udERhdGEuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dkay9UZW1w
b3JhcnlMaW5rU3R1YnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL1Rl
bXBvcmFyeUxpbmtTdHVicy5jcHAJKHJldmlzaW9uIDE2MzY3KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9nZGsvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTAgKzMx
LDExIEBACiAKICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1
ZGUgIkNTdHJpbmcuaCIKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiVGV4dEZpZWxkLmgi
CisjaW5jbHVkZSAiRmlsZUNob29zZXIuaCIKICNpbmNsdWRlICJGb250LmgiCi0jaW5jbHVkZSAi
RmlsZUJ1dHRvbi5oIgogI2luY2x1ZGUgIlBvcFVwQnV0dG9uLmgiCiAjaW5jbHVkZSAiSW50UG9p
bnQuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKQEAgLTQ0LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJs
b2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJLVVJMLmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1TY3JvbGxCYXIuaCIKICNpbmNsdWRlICJTY3JvbGxCYXIuaCIKICNpbmNs
dWRlICJKYXZhQXBwbGV0V2lkZ2V0LmgiCiAjaW5jbHVkZSAiUGF0aC5oIgpAQCAtNjEsOSArNjMs
MTEgQEAKICNpbmNsdWRlICJSZW5kZXJUaGVtZUdkay5oIgogI2luY2x1ZGUgIlRleHRCb3VuZGFy
aWVzLmgiCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgotI2luY2x1ZGUgIkRlcHJlY2F0ZWRT
dHJpbmcuaCIKLSNpbmNsdWRlICJEZXByZWNhdGVkU3RyaW5nTGlzdC5oIgotI2luY2x1ZGUgIlNT
TEtleUdlbmVyYXRvci5oIgorI2luY2x1ZGUgIlJlbmRlclBvcHVwTWVudUdkay5oIgorI2luY2x1
ZGUgIkVkaXRDb21tYW5kLmgiCisjaW5jbHVkZSAiSWNvbi5oIgorI2luY2x1ZGUgIkljb25Mb2Fk
ZXIuaCIKKyNpbmNsdWRlICJJY29uRGF0YWJhc2UuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiAKQEAgLTExNCwxNiArMTE4LDYgQEAKIHZvaWQgTGlzdEJveDo6Y2xlYXIoKSB7IG5vdElt
cGxlbWVudGVkKCk7IH0KIGJvb2wgTGlzdEJveDo6Y2hlY2tzRGVzY2VuZGFudHNGb3JGb2N1cygp
IGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KIAotRmlsZUJ1dHRvbjo6Rmls
ZUJ1dHRvbihGcmFtZSopIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotdm9pZCBGaWxlQnV0dG9uOjpj
bGljayhib29sKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLUludFNpemUgRmlsZUJ1dHRvbjo6c2l6
ZUZvckNoYXJhY3RlcldpZHRoKGludCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4g
SW50U2l6ZSgpOyB9Ci1XaWRnZXQ6OkZvY3VzUG9saWN5IEZpbGVCdXR0b246OmZvY3VzUG9saWN5
KCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gTm9Gb2N1czsgfQotV2ViQ29yZTo6
SW50UmVjdCBGaWxlQnV0dG9uOjpmcmFtZUdlb21ldHJ5KCkgY29uc3QgeyBub3RJbXBsZW1lbnRl
ZCgpOyByZXR1cm4gSW50UmVjdCgpOyB9Ci12b2lkIEZpbGVCdXR0b246OnNldEZpbGVuYW1lKERl
cHJlY2F0ZWRTdHJpbmcgY29uc3QmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLWludCBGaWxlQnV0
dG9uOjpiYXNlbGluZVBvc2l0aW9uKGludCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1
cm4gMDsgfQotdm9pZCBGaWxlQnV0dG9uOjpzZXRGcmFtZUdlb21ldHJ5KFdlYkNvcmU6OkludFJl
Y3QgY29uc3QmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRmlsZUJ1dHRvbjo6c2V0RGlz
YWJsZWQoYm9vbCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci0KIFdpZGdldDo6Rm9jdXNQb2xpY3kg
U2xpZGVyOjpmb2N1c1BvbGljeSgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIE5v
Rm9jdXM7IH0KIFdpZGdldDo6Rm9jdXNQb2xpY3kgTGlzdEJveDo6Zm9jdXNQb2xpY3koKSBjb25z
dCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBOb0ZvY3VzOyB9CiBXaWRnZXQ6OkZvY3VzUG9s
aWN5IFRleHRGaWVsZDo6Zm9jdXNQb2xpY3koKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJl
dHVybiBOb0ZvY3VzOyB9CkBAIC0xNDksNiArMTQzLDcgQEAKIHZvaWQgRnJhbWVHZGs6Omlzc3Vl
UmVkb0NvbW1hbmQodm9pZCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiBLSlM6OkJpbmRpbmdzOjpJ
bnN0YW5jZSogRnJhbWVHZGs6OmdldE9iamVjdEluc3RhbmNlRm9yV2lkZ2V0KFdpZGdldCAqKSB7
IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9CiBLSlM6OkJpbmRpbmdzOjpJbnN0YW5jZSog
RnJhbWVHZGs6OmdldEVtYmVkSW5zdGFuY2VGb3JXaWRnZXQoV2lkZ2V0ICopIHsgbm90SW1wbGVt
ZW50ZWQoKTsgcmV0dXJuIDA7IH0KK0tKUzo6QmluZGluZ3M6OlJvb3RPYmplY3QqIEZyYW1lR2Rr
OjpiaW5kaW5nUm9vdE9iamVjdCgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KIGJv
b2wgRnJhbWVHZGs6OmNhblJlZG8oKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAw
OyB9CiBib29sIEZyYW1lR2RrOjpjYW5VbmRvKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyBy
ZXR1cm4gMDsgfQogdm9pZCBGcmFtZUdkazo6cmVnaXN0ZXJDb21tYW5kRm9yUmVkbyhQYXNzUmVm
UHRyPFdlYkNvcmU6OkVkaXRDb21tYW5kPikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CkBAIC0xNjQs
NyArMTU5LDcgQEAKIFN0cmluZyBGcmFtZUdkazo6bWltZVR5cGVGb3JGaWxlTmFtZShTdHJpbmcg
Y29uc3QmKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQogdm9p
ZCBGcmFtZUdkazo6aXNzdWVQYXN0ZUNvbW1hbmQoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIHZv
aWQgRnJhbWVHZGs6OnNjaGVkdWxlQ2xvc2UoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQg
RnJhbWVHZGs6Om1hcmtNaXNzcGVsbGluZ3MoV2ViQ29yZTo6U2VsZWN0aW9uQ29udHJvbGxlciBj
b25zdCYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQordm9pZCBGcmFtZUdkazo6bWFya01pc3NwZWxs
aW5ncyhXZWJDb3JlOjpTZWxlY3Rpb24gY29uc3QmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIGJv
b2wgRnJhbWVHZGs6Om1lbnViYXJWaXNpYmxlKCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4g
MDsgfQogYm9vbCBGcmFtZUdkazo6cGVyc29uYWxiYXJWaXNpYmxlKCkgeyBub3RJbXBsZW1lbnRl
ZCgpOyByZXR1cm4gMDsgfQogYm9vbCBGcmFtZUdkazo6c3RhdHVzYmFyVmlzaWJsZSgpIHsgbm90
SW1wbGVtZW50ZWQoKTsgcmV0dXJuIDA7IH0KQEAgLTE4NCw4ICsxNzksOCBAQAogS1VSTCBCcm93
c2VyRXh0ZW5zaW9uR2RrOjpoaXN0b3J5VVJMKGludCBkaXN0YW5jZSkgeyBub3RJbXBsZW1lbnRl
ZCgpOyByZXR1cm4gS1VSTCgpOyB9CiB2b2lkIEJyb3dzZXJFeHRlbnNpb25HZGs6OmNyZWF0ZU5l
d1dpbmRvdyhzdHJ1Y3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IGNvbnN0JikgeyBub3RJbXBs
ZW1lbnRlZCgpOyB9CiAKLWludCBXZWJDb3JlOjpzY3JlZW5EZXB0aFBlckNvbXBvbmVudChXaWRn
ZXQqKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9Ci1ib29sIFdlYkNvcmU6OnNjcmVl
bklzTW9ub2Nocm9tZShXaWRnZXQqKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsg
fQoraW50IFdlYkNvcmU6OnNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KGNvbnN0IFBhZ2UqKSB7IG5v
dEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9Citib29sIFdlYkNvcmU6OnNjcmVlbklzTW9ub2No
cm9tZShjb25zdCBQYWdlKikgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFsc2U7IH0KIAog
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
LwogLyogQ29tcGxldGVseSBlbXB0eSBzdHVicyAobW9zdGx5IHRvIGFsbG93IERSVCB0byBydW4p
OiAqLwpAQCAtMTk5LDYgKzE5NCw5IEBACiBTdHJpbmcgV2ViQ29yZTo6c3VibWl0QnV0dG9uRGVm
YXVsdExhYmVsKCkgeyByZXR1cm4gIlN1Ym1pdCI7IH0KIFN0cmluZyBXZWJDb3JlOjppbnB1dEVs
ZW1lbnRBbHRUZXh0KCkgeyByZXR1cm4gRGVwcmVjYXRlZFN0cmluZygpOyB9CiBTdHJpbmcgV2Vi
Q29yZTo6cmVzZXRCdXR0b25EZWZhdWx0TGFiZWwoKSB7IHJldHVybiAiUmVzZXQiOyB9CitTdHJp
bmcgV2ViQ29yZTo6ZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpIHsgcmV0dXJuICJCcm93c2Uu
Li4iOyB9CitTdHJpbmcgV2ViQ29yZTo6ZmlsZUJ1dHRvbk5vRmlsZVNlbGVjdGVkTGFiZWwoKSB7
IHJldHVybiBTdHJpbmcoKTsgfQorCiBTdHJpbmcgV2ViQ29yZTo6ZGVmYXVsdExhbmd1YWdlKCkg
eyByZXR1cm4gImVuIjsgfQogCiB2b2lkIFdlYkNvcmU6OmZpbmRXb3JkQm91bmRhcnkoVUNoYXIg
Y29uc3QqIHN0ciwgaW50IGxlbiwgaW50IHBvc2l0aW9uLCBpbnQqIHN0YXJ0LCBpbnQqIGVuZCkg
eypzdGFydCA9IHBvc2l0aW9uOyAqZW5kID0gcG9zaXRpb247IH0KQEAgLTIxOSw4ICsyMTcsOSBA
QAogUmFuZ2UqIEZyYW1lR2RrOjptYXJrZWRUZXh0UmFuZ2UoKSBjb25zdCB7IHJldHVybiAwOyB9
CiBib29sIEZyYW1lR2RrOjpsYXN0RXZlbnRJc01vdXNlVXAoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogdm9pZCBGcmFtZUdkazo6YWRkTWVzc2FnZVRvQ29uc29sZShTdHJpbmcgY29uc3QmLCB1
bnNpZ25lZCBpbnQsIFN0cmluZyBjb25zdCYpIHsgfQotYm9vbCBGcmFtZUdkazo6c2hvdWxkQ2hh
bmdlU2VsZWN0aW9uKFNlbGVjdGlvbkNvbnRyb2xsZXIgY29uc3QmLCBTZWxlY3Rpb25Db250cm9s
bGVyIGNvbnN0JiwgV2ViQ29yZTo6RUFmZmluaXR5LCBib29sKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9Ci12b2lkIEZyYW1lR2RrOjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKFdlYkNvcmU6OlNl
bGVjdGlvbkNvbnRyb2xsZXIgY29uc3QmLCBib29sKSB7IH0KK2Jvb2wgRnJhbWVHZGs6OnNob3Vs
ZENoYW5nZVNlbGVjdGlvbihjb25zdCBTZWxlY3Rpb24mLCBjb25zdCBTZWxlY3Rpb24mLCBXZWJD
b3JlOjpFQWZmaW5pdHksIGJvb2wpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KK2Jvb2wgRnJhbWVH
ZGs6OnNob3VsZENoYW5nZVNlbGVjdGlvbihjb25zdCBTZWxlY3Rpb24mKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9Cit2b2lkIEZyYW1lR2RrOjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKFdlYkNv
cmU6OlNlbGVjdGlvbiBjb25zdCYsIGJvb2wpIHsgfQogRnJhbWUqIEZyYW1lR2RrOjpjcmVhdGVG
cmFtZShjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmFtZSwgRWxlbWVudCogb3duZXJF
bGVtZW50LCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKSB7IHJldHVybiAwOyB9CiAKIHZvaWQgRnJh
bWVHZGs6OnNhdmVEb2N1bWVudFN0YXRlKCkgeyB9CkBAIC0yMjgsNyArMjI3LDcgQEAKIHZvaWQg
RnJhbWVHZGs6OmNsZWFyVW5kb1JlZG9PcGVyYXRpb25zKHZvaWQpIHsgfQogU3RyaW5nIEZyYW1l
R2RrOjppbmNvbWluZ1JlZmVycmVyKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KIHZvaWQg
RnJhbWVHZGs6Om1hcmtNaXNzcGVsbGluZ3NJbkFkamFjZW50V29yZHMoV2ViQ29yZTo6VmlzaWJs
ZVBvc2l0aW9uIGNvbnN0JikgeyB9Ci12b2lkIEZyYW1lR2RrOjpyZXNwb25kVG9DaGFuZ2VkQ29u
dGVudHMoKSB7IH0KK3ZvaWQgRnJhbWVHZGs6OnJlc3BvbmRUb0NoYW5nZWRDb250ZW50cyhjb25z
dCBTZWxlY3Rpb24mKSB7IH0KIAogQnJvd3NlckV4dGVuc2lvbkdkazo6QnJvd3NlckV4dGVuc2lv
bkdkayhXZWJDb3JlOjpGcmFtZSopIHsgfQogdm9pZCBCcm93c2VyRXh0ZW5zaW9uR2RrOjpzZXRU
eXBlZEljb25VUkwoS1VSTCBjb25zdCYsIGNvbnN0IFN0cmluZyYpIHsgfQpAQCAtMjc2LDcgKzI3
NSw3IEBACiBQYXRoOjpQYXRoKCl7IH0KIFBhdGg6On5QYXRoKCl7IH0KIFBhdGg6OlBhdGgoY29u
c3QgUGF0aCYpeyB9Ci1ib29sIFBhdGg6OmNvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQmKSBjb25z
dHsgcmV0dXJuIGZhbHNlOyB9Citib29sIFBhdGg6OmNvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQm
LCBXaW5kUnVsZSBydWxlKSBjb25zdHsgcmV0dXJuIGZhbHNlOyB9CiB2b2lkIFBhdGg6OnRyYW5z
bGF0ZShjb25zdCBGbG9hdFNpemUmKXsgfQogRmxvYXRSZWN0IFBhdGg6OmJvdW5kaW5nUmVjdCgp
IGNvbnN0IHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CiBQYXRoJiBQYXRoOjpvcGVyYXRvcj0oY29u
c3QgUGF0aCYpeyByZXR1cm4gKiB0aGlzOyB9CkBAIC0zMjIsNiArMzIxLDE3IEBACiBJbnRSZWN0
IFBvcFVwQnV0dG9uOjpmcmFtZUdlb21ldHJ5KCkgY29uc3QgeyByZXR1cm4gSW50UmVjdCgpOyB9
CiB2b2lkIFBvcFVwQnV0dG9uOjpzZXRGcmFtZUdlb21ldHJ5KEludFJlY3QgY29uc3QmKSB7IH0K
IAorUGxhdGZvcm1TY3JvbGxCYXI6OlBsYXRmb3JtU2Nyb2xsQmFyKFNjcm9sbEJhckNsaWVudCog
Y2xpZW50LCBTY3JvbGxCYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgOiBTY3JvbGxCYXIoY2xp
ZW50LCBvcmllbnRhdGlvbikgeyB9CitQbGF0Zm9ybVNjcm9sbEJhcjo6flBsYXRmb3JtU2Nyb2xs
QmFyKCkgeyB9CitpbnQgUGxhdGZvcm1TY3JvbGxCYXI6OndpZHRoKCkgY29uc3QgeyByZXR1cm4g
MDsgfQoraW50IFBsYXRmb3JtU2Nyb2xsQmFyOjpoZWlnaHQoKSBjb25zdCB7IHJldHVybiAwOyB9
Cit2b2lkIFBsYXRmb3JtU2Nyb2xsQmFyOjpzZXRFbmFibGVkKGJvb2wpIHsgfQordm9pZCBQbGF0
Zm9ybVNjcm9sbEJhcjo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYgZGFt
YWdlUmVjdCkgeyB9Cit2b2lkIFBsYXRmb3JtU2Nyb2xsQmFyOjpzZXRTY3JvbGxCYXJWYWx1ZShp
bnQgdikgeyB9Cit2b2lkIFBsYXRmb3JtU2Nyb2xsQmFyOjpzZXRLbm9iUHJvcG9ydGlvbihpbnQg
dmlzaWJsZVNpemUsIGludCB0b3RhbFNpemUpIHsgfQordm9pZCBQbGF0Zm9ybVNjcm9sbEJhcjo6
c2V0UmVjdChjb25zdCBJbnRSZWN0JikgeyB9CisKK1Njcm9sbEJhcjo6U2Nyb2xsQmFyKFNjcm9s
bEJhckNsaWVudCosIFNjcm9sbEJhck9yaWVudGF0aW9uKSB7IH0KIHZvaWQgU2Nyb2xsQmFyOjpz
ZXRTdGVwcyhpbnQsIGludCkgeyB9CiBib29sIFNjcm9sbEJhcjo6c2Nyb2xsKFNjcm9sbERpcmVj
dGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0KSB7IHJldHVybiAwOyB9CiBib29sIFNjcm9s
bEJhcjo6c2V0VmFsdWUoaW50KSB7IHJldHVybiAwOyB9CkBAIC0zMzIsNiArMzQyLDEzIEBACiB2
b2lkIExpc3RCb3g6OnNldFNlbGVjdGlvbk1vZGUoTGlzdEJveDo6U2VsZWN0aW9uTW9kZSkgeyB9
CiB2b2lkIExpc3RCb3g6OnNldEZvbnQoV2ViQ29yZTo6Rm9udCBjb25zdCYpIHsgfQogCitGaWxl
Q2hvb3Nlcjo6RmlsZUNob29zZXIoRG9jdW1lbnQqLCBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbCop
IHsgbm90SW1wbGVtZW50ZWQoKTsgfQorRmlsZUNob29zZXI6On5GaWxlQ2hvb3NlcigpIHsgbm90
SW1wbGVtZW50ZWQoKTsgfQordm9pZCBGaWxlQ2hvb3Nlcjo6b3BlbkZpbGVDaG9vc2VyKCkgeyBu
b3RJbXBsZW1lbnRlZCgpOyB9CitTdHJpbmcgRmlsZUNob29zZXI6OmJhc2VuYW1lRm9yV2lkdGgo
aW50IHdpZHRoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBTdHJpbmcoKTsgfQor
dm9pZCBGaWxlQ2hvb3Nlcjo6dXBsb2FkQ29udHJvbERldGFjaGluZygpIHsgbm90SW1wbGVtZW50
ZWQoKTsgfQordm9pZCBGaWxlQ2hvb3Nlcjo6Y2hvb3NlRmlsZShjb25zdCBTdHJpbmcmIGZpbGVu
YW1lKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KKwogQ29sb3IgV2ViQ29yZTo6Zm9jdXNSaW5nQ29s
b3IoKSB7IHJldHVybiAweEZGMDAwMEZGOyB9CiB2b2lkIFdlYkNvcmU6OnNldEZvY3VzUmluZ0Nv
bG9yQ2hhbmdlRnVuY3Rpb24odm9pZCAoKikoKSkgeyB9CiAKQEAgLTM0NSw2ICszNjIsMTkgQEAK
IHZvaWQgUmVuZGVyVGhlbWVHZGs6OmFkanVzdFRleHRGaWVsZFN0eWxlKENTU1N0eWxlU2VsZWN0
b3IqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqIGUpIGNvbnN0IHt9CiBib29sIFJlbmRlclRoZW1l
R2RrOjpwYWludFRleHRGaWVsZChSZW5kZXJPYmplY3QqLCBjb25zdCBSZW5kZXJPYmplY3Q6OlBh
aW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiBmYWxzZTsgfQogCitJY29uOjpJY29u
KCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CitJY29uOjp+SWNvbigpIHsgbm90SW1wbGVtZW50ZWQo
KTsgfQorUGFzc1JlZlB0cjxJY29uPiBJY29uOjpuZXdJY29uRm9yRmlsZShjb25zdCBTdHJpbmcm
IGZpbGVuYW1lKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBQYXNzUmVmUHRyPEljb24+KG5l
dyBJY29uKCkpOyB9Cit2b2lkIEljb246OnBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IElu
dFJlY3QmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KKwordm9pZCBJY29uTG9hZGVyOjpzdG9wTG9h
ZGluZygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfSAKK3ZvaWQgSWNvbkxvYWRlcjo6c3RhcnRMb2Fk
aW5nKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9IAorSWNvbkxvYWRlciogSWNvbkxvYWRlcjo6Y3Jl
YXRlRm9yRnJhbWUoRnJhbWUgKmZyYW1lKSB7IHJldHVybiAwOyB9IAorCitib29sIEljb25EYXRh
YmFzZTo6aXNJY29uRXhwaXJlZEZvckljb25VUkwoY29uc3QgU3RyaW5nJiB1cmwpIHsgcmV0dXJu
IGZhbHNlOyB9Citib29sIEljb25EYXRhYmFzZTo6aGFzRW50cnlGb3JJY29uVVJMKGNvbnN0IFN0
cmluZyYgdXJsKSB7IHJldHVybiBmYWxzZTsgfQorSWNvbkRhdGFiYXNlKiBJY29uRGF0YWJhc2U6
OnNoYXJlZEljb25EYXRhYmFzZSgpIHsgcmV0dXJuIDA7IH0KKwogRmxvYXRSZWN0IEZvbnQ6OnNl
bGVjdGlvblJlY3RGb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiwgY29uc3QgVGV4dFN0eWxl
JiwgY29uc3QgSW50UG9pbnQmLCBpbnQpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UmVjdCgpOyB9CiB2
b2lkIEZvbnQ6OmRyYXdDb21wbGV4VGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBUZXh0UnVu
JiwgY29uc3QgVGV4dFN0eWxlJiwgY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0IHsgbm90SW1wbGVt
ZW50ZWQoKTsgfQogZmxvYXQgRm9udDo6ZmxvYXRXaWR0aEZvckNvbXBsZXhUZXh0KGNvbnN0IFRl
eHRSdW4mLCBjb25zdCBUZXh0U3R5bGUmKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVy
biAwOyB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dkay9TeXN0ZW1UaW1lTGludXguY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL1N5c3RlbVRpbWVMaW51eC5jcHAJKHJl
dmlzaW9uIDE2MzY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9nZGsvU3lzdGVtVGltZUxpbnV4LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTUgKzI4LDE3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiU3lzdGVtVGltZS5oIgogCi0jaW5jbHVkZSA8dGltZS5oPgorI2luY2x1ZGUg
PHN5cy90aW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogZG91YmxlIGN1cnJlbnRUaW1l
KCkKIHsKLSAgICB0aW1lX3QgdHRpbWU7Ci0gICAgdGltZSgmdHRpbWUpOwotICAgIHJldHVybiAo
ZG91YmxlKXR0aW1lOworICBzdHJ1Y3QgdGltZXZhbCBhVGltZXZhbDsKKyAgc3RydWN0IHRpbWV6
b25lIGFUaW1lem9uZTsKKyAKKyAgZ2V0dGltZW9mZGF5KCAmYVRpbWV2YWwsICZhVGltZXpvbmUg
KTsKKyAgcmV0dXJuIChkb3VibGUpYVRpbWV2YWwudHZfc2VjICsgKGRvdWJsZSkoYVRpbWV2YWwu
dHZfdXNlYyAvIDEwMDAwMDAuMCApOwogfQogCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dk
ay9SZW5kZXJQb3B1cE1lbnVHZGsuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dk
ay9SZW5kZXJQb3B1cE1lbnVHZGsuaAkocmV2aXNpb24gMTYzNjcpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dkay9SZW5kZXJQb3B1cE1lbnVHZGsuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzks
NyBAQAogICAgIHZpcnR1YWwgdm9pZCBjbGVhcigpOwogICAgIHZpcnR1YWwgdm9pZCBwb3B1bGF0
ZSgpOwogICAgIHZpcnR1YWwgdm9pZCBzaG93UG9wdXAoY29uc3QgSW50UmVjdCYsIEZyYW1lVmll
dyosIGludCBpbmRleCk7CisgICAgdmlydHVhbCB2b2lkIGhpZGVQb3B1cCgpOwogICAgIAogcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBhZGRTZXBhcmF0b3IoKTsKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vZ2RrL0ZyYW1lR2RrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9n
ZGsvRnJhbWVHZGsuaAkocmV2aXNpb24gMTYzNjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dkay9G
cmFtZUdkay5oCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw3ICs4Nyw3IEBACiAgICAgdmlydHVhbCBT
dHJpbmcgbWltZVR5cGVGb3JGaWxlTmFtZShjb25zdCBTdHJpbmcmKSBjb25zdDsKIAogICAgIHZp
cnR1YWwgdm9pZCBtYXJrTWlzc3BlbGxpbmdzSW5BZGphY2VudFdvcmRzKGNvbnN0IFZpc2libGVQ
b3NpdGlvbiYpOwotICAgIHZpcnR1YWwgdm9pZCBtYXJrTWlzc3BlbGxpbmdzKGNvbnN0IFNlbGVj
dGlvbkNvbnRyb2xsZXImKTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFya01pc3NwZWxsaW5ncyhjb25z
dCBTZWxlY3Rpb24mKTsKIAogICAgIHZpcnR1YWwgYm9vbCBsYXN0RXZlbnRJc01vdXNlVXAoKSBj
b25zdDsKIApAQCAtOTksNiArOTksNyBAQAogICAgIHZpcnR1YWwgS0pTOjpCaW5kaW5nczo6SW5z
dGFuY2UqIGdldEVtYmVkSW5zdGFuY2VGb3JXaWRnZXQoV2lkZ2V0Kik7CiAgICAgdmlydHVhbCBL
SlM6OkJpbmRpbmdzOjpJbnN0YW5jZSogZ2V0T2JqZWN0SW5zdGFuY2VGb3JXaWRnZXQoV2lkZ2V0
Kik7CiAgICAgdmlydHVhbCBLSlM6OkJpbmRpbmdzOjpJbnN0YW5jZSogZ2V0QXBwbGV0SW5zdGFu
Y2VGb3JXaWRnZXQoV2lkZ2V0Kik7CisgICAgdmlydHVhbCBLSlM6OkJpbmRpbmdzOjpSb290T2Jq
ZWN0KiBiaW5kaW5nUm9vdE9iamVjdCgpOwogCiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyQ29t
bWFuZEZvclVuZG8oUGFzc1JlZlB0cjxFZGl0Q29tbWFuZD4pOwogICAgIHZpcnR1YWwgdm9pZCBy
ZWdpc3RlckNvbW1hbmRGb3JSZWRvKFBhc3NSZWZQdHI8RWRpdENvbW1hbmQ+KTsKQEAgLTExMCw5
ICsxMTEsMTAgQEAKICAgICB2aXJ0dWFsIHZvaWQgaXNzdWVQYXN0ZUNvbW1hbmQoKTsKICAgICB2
aXJ0dWFsIHZvaWQgaXNzdWVQYXN0ZUFuZE1hdGNoU3R5bGVDb21tYW5kKCk7CiAgICAgdmlydHVh
bCB2b2lkIGlzc3VlVHJhbnNwb3NlQ29tbWFuZCgpOwotICAgIHZpcnR1YWwgdm9pZCByZXNwb25k
VG9DaGFuZ2VkU2VsZWN0aW9uKGNvbnN0IFNlbGVjdGlvbkNvbnRyb2xsZXImIG9sZFNlbGVjdGlv
biwgYm9vbCBjbG9zZVR5cGluZyk7Ci0gICAgdmlydHVhbCB2b2lkIHJlc3BvbmRUb0NoYW5nZWRD
b250ZW50cygpOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3Rpb24oY29uc3Qg
U2VsZWN0aW9uQ29udHJvbGxlciYgb2xkU2VsZWN0aW9uLCBjb25zdCBTZWxlY3Rpb25Db250cm9s
bGVyJiBuZXdTZWxlY3Rpb24sIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGlu
ZykgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHJlc3BvbmRUb0NoYW5nZWRTZWxlY3Rpb24oY29u
c3QgU2VsZWN0aW9uJiBvbGRTZWxlY3Rpb24sIGJvb2wgY2xvc2VUeXBpbmcpOworICAgIHZpcnR1
YWwgdm9pZCByZXNwb25kVG9DaGFuZ2VkQ29udGVudHMoY29uc3QgU2VsZWN0aW9uJiBlbmRpbmdT
ZWxlY3Rpb24pOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3Rpb24oY29uc3Qg
U2VsZWN0aW9uJiBvbGRTZWxlY3Rpb24sIGNvbnN0IFNlbGVjdGlvbiYgbmV3U2VsZWN0aW9uLCBF
QWZmaW5pdHkgYWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpIGNvbnN0OworICAgIGJvb2wg
c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKGNvbnN0IFNlbGVjdGlvbiYpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBwYXJ0Q2xlYXJlZEluQmVnaW4oKTsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5Hb0Jh
Y2tPckZvcndhcmQoaW50IGRpc3RhbmNlKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0v
Z2RrL1NjcmVlbkdkay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9nZGsvU2Ny
ZWVuR2RrLmNwcAkocmV2aXNpb24gMTYzNjcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dkay9TY3Jl
ZW5HZGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwzMiArMjgsNTIgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJTY3JlZW4uaCIKIAorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIldpZGdldC5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5o
IgotI2luY2x1ZGUgIldpZGdldC5oIgorCiAjaW5jbHVkZSA8Z2RrL2dkay5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLUZsb2F0UmVjdCBzY3JlZW5SZWN0KFdpZGdldCogd2lkZ2V0KQorc3Rh
dGljIEdka0RyYXdhYmxlKiBkcmF3YWJsZUZvclBhZ2UoY29uc3QgUGFnZSogcGFnZSkKIHsKLSAg
ICBHZGtEcmF3YWJsZSogZHJhd2FibGUgPSB3aWRnZXQtPmRyYXdhYmxlKCk7CisgICAgRnJhbWUq
IGZyYW1lID0gKHBhZ2UgPyBwYWdlLT5tYWluRnJhbWUoKSA6IDApOworICAgIEZyYW1lVmlldyog
ZnJhbWVWaWV3ID0gKGZyYW1lID8gZnJhbWUtPnZpZXcoKSA6IDApOworICAgIAorICAgIGlmICgh
ZnJhbWVWaWV3KQorICAgICAgICByZXR1cm4gMDsKKyAgICAKKyAgICByZXR1cm4gZnJhbWVWaWV3
LT5kcmF3YWJsZSgpOworfQorCitGbG9hdFJlY3Qgc2NyZWVuUmVjdChjb25zdCBQYWdlKiBwYWdl
KQoreworICAgIEdka0RyYXdhYmxlKiBkcmF3YWJsZSA9IGRyYXdhYmxlRm9yUGFnZShwYWdlKTsK
ICAgICBpZiAoIWRyYXdhYmxlKQogICAgICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CiAgICAgR2Rr
U2NyZWVuKiBzY3JlZW4gPSBnZGtfZHJhd2FibGVfZ2V0X3NjcmVlbihkcmF3YWJsZSk7CiAgICAg
cmV0dXJuIEZsb2F0UmVjdCgwLCAwLCBnZGtfc2NyZWVuX2dldF93aWR0aChzY3JlZW4pLCBnZGtf
c2NyZWVuX2dldF9oZWlnaHQoc2NyZWVuKSk7CiB9CiAKLWludCBzY3JlZW5EZXB0aChXaWRnZXQq
IHdpZGdldCkKK2ludCBzY3JlZW5EZXB0aChjb25zdCBQYWdlKiBwYWdlKQogewotICAgIEdka0Ry
YXdhYmxlKiBkcmF3YWJsZSA9IHdpZGdldC0+ZHJhd2FibGUoKTsKKyAgICBHZGtEcmF3YWJsZSog
ZHJhd2FibGUgPSBkcmF3YWJsZUZvclBhZ2UocGFnZSk7CiAgICAgaWYgKCFkcmF3YWJsZSkKICAg
ICAgICAgcmV0dXJuIDMyOwogICAgIHJldHVybiBnZGtfZHJhd2FibGVfZ2V0X2RlcHRoKGRyYXdh
YmxlKTsKIH0KIAotRmxvYXRSZWN0IHVzYWJsZVNjcmVlblJlY3QoV2lkZ2V0KiB3aWRnZXQpCitG
bG9hdFJlY3QgdXNhYmxlU2NyZWVuUmVjdChjb25zdCBQYWdlKiBwYWdlKQogewotICAgIHJldHVy
biBzY3JlZW5SZWN0KHdpZGdldCk7CisgICAgcmV0dXJuIHNjcmVlblJlY3QocGFnZSk7CiB9CiAK
K2Zsb2F0IHNjYWxlRmFjdG9yKGNvbnN0IFBhZ2UqKQoreworICAgIHJldHVybiAxLjBmOworCiB9
CisKK30KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ2RrL1dpZGdldEdkay5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9nZGsvV2lkZ2V0R2RrLmNwcAkocmV2aXNpb24gMTYzNjcp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dkay9XaWRnZXRHZGsuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNjksMTAgKzE2OSw0IEBACiAgICAgcmV0dXJuIEludFBvaW50KHAueCgpIC0geCwgcC55KCkg
LSB5KTsKIH0KIAotZmxvYXQgV2lkZ2V0OjpzY2FsZUZhY3RvcigpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIDEuMGY7Ci0KIH0KLQotfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9nZGsvUmVuZGVyUG9w
dXBNZW51R2RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dkay9SZW5kZXJQ
b3B1cE1lbnVHZGsuY3BwCShyZXZpc2lvbiAxNjM2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ2Rr
L1JlbmRlclBvcHVwTWVudUdkay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDEwIEBA
CiB7CiB9CiAKK3ZvaWQgUmVuZGVyUG9wdXBNZW51R2RrOjpoaWRlUG9wdXAoKQoreworfQorCiB2
b2lkIFJlbmRlclBvcHVwTWVudUdkazo6YWRkU2VwYXJhdG9yKCkKIHsKIH0KSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ2RrL0ZyYW1lR2RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL2dkay9GcmFtZUdkay5jcHAJKHJldmlzaW9uIDE2MzY3KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9nZGsvRnJhbWVHZGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzMsNyArMjMzLDcgQEAKICAg
ICAgICAgICAgIFBsYXRmb3JtS2V5Ym9hcmRFdmVudCBrZXZlbnQoZXZlbnQpOwogICAgICAgICAg
ICAgYm9vbCBoYW5kbGVkID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAoIWtldmVudC5pc0tleVVw
KCkpIHsKLSAgICAgICAgICAgICAgICBOb2RlKiBzdGFydCA9IHNlbGVjdGlvbigpLnN0YXJ0KCku
bm9kZSgpOworICAgICAgICAgICAgICAgIE5vZGUqIHN0YXJ0ID0gc2VsZWN0aW9uQ29udHJvbGxl
cigpLT5zdGFydCgpLm5vZGUoKTsKICAgICAgICAgICAgICAgICBpZiAoc3RhcnQgJiYgc3RhcnQt
PmlzQ29udGVudEVkaXRhYmxlKCkpIHsKICAgICAgICAgICAgICAgICAgICAgc3dpdGNoKGtldmVu
dC5XaW5kb3dzS2V5Q29kZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFZLX0JB
Q0s6CkBAIC0yNDMsMTYgKzI0MywxNiBAQAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5
cGluZ0NvbW1hbmQ6OmZvcndhcmREZWxldGVLZXlQcmVzc2VkKGRvY3VtZW50KCkpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBWS19MRUZUOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbigpLm1vZGlm
eShTZWxlY3Rpb25Db250cm9sbGVyOjpNT1ZFLCBTZWxlY3Rpb25Db250cm9sbGVyOjpMRUZULCBD
aGFyYWN0ZXJHcmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0
aW9uQ29udHJvbGxlcigpLT5tb2RpZnkoU2VsZWN0aW9uQ29udHJvbGxlcjo6TU9WRSwgU2VsZWN0
aW9uQ29udHJvbGxlcjo6TEVGVCwgQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBWS19S
SUdIVDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24oKS5tb2RpZnkoU2Vs
ZWN0aW9uQ29udHJvbGxlcjo6TU9WRSwgU2VsZWN0aW9uQ29udHJvbGxlcjo6UklHSFQsIENoYXJh
Y3RlckdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25D
b250cm9sbGVyKCktPm1vZGlmeShTZWxlY3Rpb25Db250cm9sbGVyOjpNT1ZFLCBTZWxlY3Rpb25D
b250cm9sbGVyOjpSSUdIVCwgQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBWS19VUDoK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24oKS5tb2RpZnkoU2VsZWN0aW9u
Q29udHJvbGxlcjo6TU9WRSwgU2VsZWN0aW9uQ29udHJvbGxlcjo6QkFDS1dBUkQsIFBhcmFncmFw
aEdyYW51bGFyaXR5KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb25Db250
cm9sbGVyKCktPm1vZGlmeShTZWxlY3Rpb25Db250cm9sbGVyOjpNT1ZFLCBTZWxlY3Rpb25Db250
cm9sbGVyOjpCQUNLV0FSRCwgUGFyYWdyYXBoR3JhbnVsYXJpdHkpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBWS19ET1dO
OgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbigpLm1vZGlmeShTZWxlY3Rp
b25Db250cm9sbGVyOjpNT1ZFLCBTZWxlY3Rpb25Db250cm9sbGVyOjpGT1JXQVJELCBQYXJhZ3Jh
cGhHcmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uQ29u
dHJvbGxlcigpLT5tb2RpZnkoU2VsZWN0aW9uQ29udHJvbGxlcjo6TU9WRSwgU2VsZWN0aW9uQ29u
dHJvbGxlcjo6Rk9SV0FSRCwgUGFyYWdyYXBoR3JhbnVsYXJpdHkpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KGRvY3Vt
ZW50KCksIGtldmVudC50ZXh0KCksIGZhbHNlKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ2Rr
L0ZvbnREYXRhR2RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dkay9Gb250
RGF0YUdkay5jcHAJKHJldmlzaW9uIDE2MzY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9nZGsvRm9u
dERhdGFHZGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw4IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorI2RlZmluZSBVU0VfT0xEX0NBSVJPIDEKKwogdm9pZCBGb250RGF0YTo6
cGxhdGZvcm1Jbml0KCkKIHsKICAgICBjYWlyb19mb250X2V4dGVudHNfdCBmb250X2V4dGVudHM7
CkBAIC01MSwxMCArNTMsMTUgQEAKICAgICBtX2FzY2VudCA9IHN0YXRpY19jYXN0PGludD4oZm9u
dF9leHRlbnRzLmFzY2VudCk7CiAgICAgbV9kZXNjZW50ID0gc3RhdGljX2Nhc3Q8aW50Pihmb250
X2V4dGVudHMuZGVzY2VudCk7CiAgICAgbV9saW5lU3BhY2luZyA9IHN0YXRpY19jYXN0PGludD4o
Zm9udF9leHRlbnRzLmhlaWdodCk7CisjaWZkZWYgVVNFX09MRF9DQUlSTworICAgIG1feEhlaWdo
dCA9IDEzOworICAgIG1fc3BhY2VXaWR0aCA9IDEwOworI2Vsc2UKICAgICBjYWlyb19zY2FsZWRf
Zm9udF90ZXh0X2V4dGVudHMobV9mb250Lm1fc2NhbGVkRm9udCwgIngiLCAmdGV4dF9leHRlbnRz
KTsKICAgICBtX3hIZWlnaHQgPSB0ZXh0X2V4dGVudHMuaGVpZ2h0OwogICAgIGNhaXJvX3NjYWxl
ZF9mb250X3RleHRfZXh0ZW50cyhtX2ZvbnQubV9zY2FsZWRGb250LCAiICIsICZ0ZXh0X2V4dGVu
dHMpOwogICAgIG1fc3BhY2VXaWR0aCA9ICBzdGF0aWNfY2FzdDxpbnQ+KHRleHRfZXh0ZW50cy54
X2FkdmFuY2UpOworI2VuZGlmCiAgICAgYXNzZXJ0KG1fc3BhY2VXaWR0aCAhPSAwKTsKICAgICBt
X2xpbmVHYXAgPSBtX2xpbmVTcGFjaW5nIC0gbV9hc2NlbnQgLSBtX2Rlc2NlbnQ7CiB9CkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL2dkay9Gb250R2RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL2dkay9Gb250R2RrLmNwcAkocmV2aXNpb24gMTYzNjcpCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL2dkay9Gb250R2RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDgsNyArNDgsNyBAQAog
ICAgIC8vIFNlbGVjdCB0aGUgc2NhbGVkIGZvbnQuCiAgICAgZm9udC0+c2V0Rm9udChjb250ZXh0
KTsKIAotICAgIEdseXBoQnVmZmVyR2x5cGgqIGdseXBocyA9IGdseXBoQnVmZmVyLmdseXBocyhm
cm9tKTsKKyAgICBHbHlwaEJ1ZmZlckdseXBoKiBnbHlwaHMgPSAoR2x5cGhCdWZmZXJHbHlwaCop
IGdseXBoQnVmZmVyLmdseXBocyhmcm9tKTsKIAogICAgIGZsb2F0IG9mZnNldCA9IHBvaW50Lngo
KTsKIApJbmRleDogV2ViQ29yZS9Qcm9qZWN0cy9nZGsvd2ViY29yZS1nZGsuYmtsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvUHJvamVjdHMvZ2RrL3dlYmNvcmUtZ2RrLmJrbAkocmV2aXNpb24gMTYz
NjcpCisrKyBXZWJDb3JlL1Byb2plY3RzL2dkay93ZWJjb3JlLWdkay5ia2wJKHdvcmtpbmcgY29w
eSkKQEAgLTcyLDYgKzcyLDcgQEAKICAgICAgICAgICBwbGF0Zm9ybS9nZGsvRm9udFBsYXRmb3Jt
RGF0YUdkay5jcHAKICAgICAgICAgICBwbGF0Zm9ybS9nZGsvRnJhbWVHZGsuY3BwCiAgICAgICAg
ICAgcGxhdGZvcm0vZ2RrL0dseXBoTWFwR2RrLmNwcAorCSAgcGxhdGZvcm0vZ2RrL0ltYWdlR2Rr
LmNwcAogICAgICAgICAgIHBsYXRmb3JtL2dkay9LZXlFdmVudEdkay5jcHAKICAgICAgICAgICBw
bGF0Zm9ybS9nZGsvTW91c2VFdmVudEdkay5jcHAKICAgICAgICAgICBwbGF0Zm9ybS9nZGsvUGFn
ZUdkay5jcHAKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
Q2hhbmdlTG9nCShyZXZpc2lvbiAxNjM2NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsNzUgQEAKKzIwMDYtMDktMTQgIEtyenlzenRvZiBLb3dhbGN6eWss
LCwgIDxra293YWxjenlrQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXQVJOSU5HOiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5H
RUQKKworICAgICAgICAqIFByb2plY3RzL2dkay93ZWJjb3JlLWdkay5ia2w6CisgICAgICAgICog
V2ViQ29yZVNvdXJjZXMuYmtsOgorICAgICAgICAqIHBsYXRmb3JtL2dkay9Gb250Q2FjaGVHZGsu
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dkay9Gb250RGF0YUdkay5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGb250RGF0YTo6cGxhdGZvcm1Jbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9nZGsv
Rm9udEdkay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3R2x5cGhzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9nZGsvRnJhbWVHZGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVH
ZGs6OmhhbmRsZUdka0V2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9nZGsvRnJhbWVHZGsuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9nZGsvSW1hZ2VHZGsuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkltYWdlOjppbml0UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdl
OjppbnZhbGlkYXRlUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlOjpsb2Fk
UGxhdGZvcm1SZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6c3VwcG9ydHNUeXBl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9nZGsvUmVuZGVyUG9wdXBNZW51R2RrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclBvcHVwTWVudUdkazo6aGlkZVBvcHVwKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9nZGsvUmVuZGVyUG9wdXBNZW51R2RrLmg6CisgICAgICAgICogcGxhdGZvcm0vZ2Rr
L1NjcmVlbkdkay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3YWJsZUZvclBhZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6c2NyZWVuUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5EZXB0
aCk6CisgICAgICAgIChXZWJDb3JlOjp1c2FibGVTY3JlZW5SZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OnNjYWxlRmFjdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9nZGsvU3lzdGVtVGltZUxpbnV4
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmN1cnJlbnRUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9nZGsvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcDoKKyAgICAgICAgKEZyYW1lR2RrOjpiaW5kaW5n
Um9vdE9iamVjdCk6CisgICAgICAgIChGcmFtZUdkazo6bWFya01pc3NwZWxsaW5ncyk6CisgICAg
ICAgIChXZWJDb3JlOjpzY3JlZW5EZXB0aFBlckNvbXBvbmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpzY3JlZW5Jc01vbm9jaHJvbWUpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1dHRvbkNob29z
ZUZpbGVMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uTm9GaWxlU2VsZWN0ZWRM
YWJlbCk6CisgICAgICAgIChGcmFtZUdkazo6c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKToKKyAgICAg
ICAgKEZyYW1lR2RrOjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKToKKyAgICAgICAgKEZyYW1l
R2RrOjpyZXNwb25kVG9DaGFuZ2VkQ29udGVudHMpOgorICAgICAgICAoUGF0aDo6Y29udGFpbnMp
OgorICAgICAgICAoUGxhdGZvcm1TY3JvbGxCYXI6OlBsYXRmb3JtU2Nyb2xsQmFyKToKKyAgICAg
ICAgKFBsYXRmb3JtU2Nyb2xsQmFyOjp+UGxhdGZvcm1TY3JvbGxCYXIpOgorICAgICAgICAoUGxh
dGZvcm1TY3JvbGxCYXI6OndpZHRoKToKKyAgICAgICAgKFBsYXRmb3JtU2Nyb2xsQmFyOjpoZWln
aHQpOgorICAgICAgICAoUGxhdGZvcm1TY3JvbGxCYXI6OnNldEVuYWJsZWQpOgorICAgICAgICAo
UGxhdGZvcm1TY3JvbGxCYXI6OnBhaW50KToKKyAgICAgICAgKFBsYXRmb3JtU2Nyb2xsQmFyOjpz
ZXRTY3JvbGxCYXJWYWx1ZSk6CisgICAgICAgIChQbGF0Zm9ybVNjcm9sbEJhcjo6c2V0S25vYlBy
b3BvcnRpb24pOgorICAgICAgICAoUGxhdGZvcm1TY3JvbGxCYXI6OnNldFJlY3QpOgorICAgICAg
ICAoU2Nyb2xsQmFyOjpTY3JvbGxCYXIpOgorICAgICAgICAoRmlsZUNob29zZXI6OkZpbGVDaG9v
c2VyKToKKyAgICAgICAgKEZpbGVDaG9vc2VyOjp+RmlsZUNob29zZXIpOgorICAgICAgICAoRmls
ZUNob29zZXI6Om9wZW5GaWxlQ2hvb3Nlcik6CisgICAgICAgIChGaWxlQ2hvb3Nlcjo6YmFzZW5h
bWVGb3JXaWR0aCk6CisgICAgICAgIChGaWxlQ2hvb3Nlcjo6dXBsb2FkQ29udHJvbERldGFjaGlu
Zyk6CisgICAgICAgIChGaWxlQ2hvb3Nlcjo6Y2hvb3NlRmlsZSk6CisgICAgICAgIChJY29uOjpJ
Y29uKToKKyAgICAgICAgKEljb246On5JY29uKToKKyAgICAgICAgKEljb246Om5ld0ljb25Gb3JG
aWxlKToKKyAgICAgICAgKEljb246OnBhaW50KToKKyAgICAgICAgKEljb25Mb2FkZXI6OnN0b3BM
b2FkaW5nKToKKyAgICAgICAgKEljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZyk6CisgICAgICAgIChJ
Y29uTG9hZGVyOjpjcmVhdGVGb3JGcmFtZSk6CisgICAgICAgIChJY29uRGF0YWJhc2U6OmlzSWNv
bkV4cGlyZWRGb3JJY29uVVJMKToKKyAgICAgICAgKEljb25EYXRhYmFzZTo6aGFzRW50cnlGb3JJ
Y29uVVJMKToKKyAgICAgICAgKEljb25EYXRhYmFzZTo6c2hhcmVkSWNvbkRhdGFiYXNlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9nZGsvV2lkZ2V0R2RrLmNwcDoKKyAgICAgICAgKiB3ZWJjb3JlLWJh
c2UuYmtsOgorCiAyMDA2LTA5LTE0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWoncyBydWJiZXIgc3RhbXAKSW5kZXg6IFdlYkNv
cmUvV2ViQ29yZVNvdXJjZXMuYmtsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZVNvdXJj
ZXMuYmtsCShyZXZpc2lvbiAxNjM2NykKKysrIFdlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCSh3
b3JraW5nIGNvcHkpCkBAIC04NSw2ICs4NSw3IEBACiAJCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNOb3RhdGlvbi5jcHAKIAkJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Byb2Nlc3NpbmdJbnN0
cnVjdGlvbi5jcHAKIAkJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JhbmdlLmNwcAorCQlEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTUmFuZ2VFeGNlcHRpb24uY3BwCiAJCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNUZXh0LmNwcAogCQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVHJlZVdhbGtl
ci5jcHAKIAkJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU092ZXJmbG93RXZlbnQuY3BwCkBAIC0x
NDQsNiArMTQ1LDcgQEAKIAkJcGxhdGZvcm0vQXJyYXlJbXBsLmNwcAogCQlwbGF0Zm9ybS9BdG9t
aWNTdHJpbmcuY3BwCiAJCXBsYXRmb3JtL0NvbG9yLmNwcAorCQlwbGF0Zm9ybS9DU3RyaW5nLmNw
cAogCQlwbGF0Zm9ybS9EZXByZWNhdGVkQ1N0cmluZy5jcHAKIAkJcGxhdGZvcm0vRGVwcmVjYXRl
ZFB0ckxpc3RJbXBsLmNwcAogCQlwbGF0Zm9ybS9EZXByZWNhdGVkU3RyaW5nLmNwcApAQCAtMzc3
LDYgKzM3OSw3IEBACiAJPHNldCBhcHBlbmQ9IjEiIHZhcj0iV0VCQ09SRV9TT1VSQ0VTX0NTUyI+
CiAJCQogCQljc3MvQ1NTQm9yZGVySW1hZ2VWYWx1ZS5jcHAKKwkJY3NzL0NTU0NoYXJzZXRSdWxl
LmNwcAogCQljc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAogCQljc3MvQ1NTRm9u
dEZhY2VSdWxlLmNwcAogCQljc3MvY3NzaGVscGVyLmNwcApAQCAtNDMyLDcgKzQzNSw3IEBACiAJ
CXJlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCiAJCXJlbmRlcmluZy9SZW5kZXJDb250YWluZXIu
Y3BwCiAJCXJlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHAKLQkJcmVuZGVyaW5nL1JlbmRlckZp
bGVCdXR0b24uY3BwCisJCXJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5jcHAKIAkJ
cmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAogCQlyZW5kZXJpbmcvUmVuZGVyRmxvdy5j
cHAKIAkJcmVuZGVyaW5nL1JlbmRlckZvcm1FbGVtZW50LmNwcApAQCAtNTMzLDcgKzUzNiw3IEBA
CiAJCWRvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNwcAogCQlkb20vTm9kZUxpc3QuY3BwCiAJCWRv
bS9Ob3RhdGlvbi5jcHAKLSAgICAgICAgICBkb20vT3ZlcmZsb3dFdmVudC5jcHAKKwkgICAgICAg
IGRvbS9PdmVyZmxvd0V2ZW50LmNwcAogCQlkb20vUG9zaXRpb24uY3BwCiAJCWRvbS9Qcm9jZXNz
aW5nSW5zdHJ1Y3Rpb24uY3BwCiAJCWRvbS9RdWFsaWZpZWROYW1lLmNwcApAQCAtNTUxLDYgKzU1
NCw3IEBACiAKIAk8c2V0IGFwcGVuZD0iMSIgdmFyPSJXRUJDT1JFX1NPVVJDRVNfSUNPTiI+CiAJ
CWljb24vSWNvbkRhdGFiYXNlLmNwcAorCQlpY29uL0ljb25Mb2FkZXIuY3BwCiAJCWljb24vU1FM
RGF0YWJhc2UuY3BwCiAJCWljb24vU1FMU3RhdGVtZW50LmNwcAogCQlpY29uL1NpdGVJY29uLmNw
cApJbmRleDogV2ViQ29yZS93ZWJjb3JlLWJhc2UuYmtsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
d2ViY29yZS1iYXNlLmJrbAkocmV2aXNpb24gMTYzNjcpCisrKyBXZWJDb3JlL3dlYmNvcmUtYmFz
ZS5ia2wJKHdvcmtpbmcgY29weSkKQEAgLTg2LDYgKzg2LDcgQEAKICAgICAgICAgPGluY2x1ZGU+
JChTUkNESVIpL2NzczwvaW5jbHVkZT4KICAgICAgICAgPGluY2x1ZGU+JChTUkNESVIpL2RvbTwv
aW5jbHVkZT4KICAgICAgICAgPGluY2x1ZGU+JChTUkNESVIpL2xvYWRlcjwvaW5jbHVkZT4KKyAg
ICAgICAgPGluY2x1ZGU+JChTUkNESVIpL2xvYWRlci9pY29uPC9pbmNsdWRlPgogICAgICAgICA8
aW5jbHVkZT4kKFNSQ0RJUikvcGFnZTwvaW5jbHVkZT4KICAgICAgICAgPGluY2x1ZGU+JChTUkNE
SVIpL3BsYXRmb3JtPC9pbmNsdWRlPgogICAgICAgICA8aW5jbHVkZT4kKFNSQ0RJUikvcGxhdGZv
cm0vaW1hZ2UtZGVjb2RlcnM8L2luY2x1ZGU+CkBAIC0xMTEsNyArMTEyLDcgQEAKIDwhLS0gRU5E
IEhBQ0tTIC0tPgogCiAgICAgICAgIDxkZWZpbmU+QVBQTEVfQ0hBTkdFUz0xPC9kZWZpbmU+Ci0g
ICAgICAgIDxkZWZpbmU+S0hUTUxfWFNMVD0xPC9kZWZpbmU+CisgICAgICAgIDxkZWZpbmU+WFNM
VF9TVVBQT1JUPTE8L2RlZmluZT4KIAogICAgICAgICA8IS0tIFRPRE86IGlzIHRoZXJlIGEgTGlu
dXgtc3BlY2lmaWMgcGxhdGZvcm0gZGVmaW5lPyAtLT4KICAgICAgICAgPGlmIGNvbmQ9IlBMQVRG
T1JNX1VOSVg9PScxJyI+Cg==
</data>
<flag name="review"
          id="3426"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10572</attachid>
            <date>2006-09-15 01:28:09 -0700</date>
            <delta_ts>2006-09-15 11:28:33 -0700</delta_ts>
            <desc>fix the name in ChangeLog and remove tab</desc>
            <filename>linux_build_fixes.txt</filename>
            <type>text/plain</type>
            <size>29722</size>
            <attacher name="Krzysztof Kowalczyk">kkowalczyk</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MzY3KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTAgQEAKKzIwMDYtMDktMTQgIEtyenlzenRv
ZiBLb3dhbGN6eWsgIDxra293YWxjenlrQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlU291cmNlcy5ia2w6
CisgICAgICAgICoganNjb3JlLmJrbDoKKwogMjAwNi0wOS0xMiAgU3RldmUgRmFsa2VuYnVyZyAg
PHNmYWxrZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYS4KSW5kZXg6IEph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlU291cmNlcy5ia2wKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVTb3VyY2VzLmJrbAkocmV2aXNpb24gMTYzNjcpCisr
KyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZVNvdXJjZXMuYmtsCSh3b3JraW5nIGNvcHkp
CkBAIC03Myw0ICs3MywyMCBAQAogCQlwY3JlL3VjcF9maW5kY2hhci5jCiAKIAk8L3NldD4KKwk8
c2V0IGFwcGVuZD0iMSIgdmFyPSJKU0NPUkVfU09VUkNFU19CSU5ESU5HUyI+CisJCQorCQliaW5k
aW5ncy9jL2NfY2xhc3MuY3BwCisJCWJpbmRpbmdzL2MvY19pbnN0YW5jZS5jcHAKKwkJYmluZGlu
Z3MvYy9jX3J1bnRpbWUuY3BwCisJCWJpbmRpbmdzL2MvY191dGlsaXR5LmNwcAorCQliaW5kaW5n
cy9OUF9qc29iamVjdC5jcHAKKwkJYmluZGluZ3MvbnBydW50aW1lLmNwcAorCQliaW5kaW5ncy9y
dW50aW1lLmNwcAorCQliaW5kaW5ncy9ydW50aW1lX2FycmF5LmNwcAorCQliaW5kaW5ncy9ydW50
aW1lX21ldGhvZC5jcHAKKwkJYmluZGluZ3MvcnVudGltZV9vYmplY3QuY3BwCisJCWJpbmRpbmdz
L3J1bnRpbWVfcm9vdC5jcHAKKworCTwvc2V0PgorCiA8L21ha2VmaWxlPgpJbmRleDogSmF2YVNj
cmlwdENvcmUvanNjb3JlLmJrbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9qc2NvcmUu
YmtsCShyZXZpc2lvbiAxNjM2NykKKysrIEphdmFTY3JpcHRDb3JlL2pzY29yZS5ia2wJKHdvcmtp
bmcgY29weSkKQEAgLTQ4LDYgKzQ4LDcgQEAKICAgICAgICAgCiAgICAgICAgIDxpbmNsdWRlPiQo
U1JDRElSKTwvaW5jbHVkZT4KICAgICAgICAgPGluY2x1ZGU+JChTUkNESVIpL0ZvcndhcmRpbmdI
ZWFkZXJzPC9pbmNsdWRlPgorICAgICAgICA8aW5jbHVkZT4kKFNSQ0RJUikvd3RmPC9pbmNsdWRl
PgogICAgICAgICA8aW5jbHVkZT4kKFNSQ0RJUikva2pzPC9pbmNsdWRlPgogICAgICAgICA8aW5j
bHVkZT4kKFNSQ0RJUikvcGNyZTwvaW5jbHVkZT4KICAgICAgICAgPGluY2x1ZGU+JChTUkNESVIp
L2JpbmRpbmdzPC9pbmNsdWRlPgpAQCAtNjcsNyArNjgsNyBAQAogICAgICAgICAgICAgPGRlZmlu
ZT5VU0VfQ09OU0VSVkFUSVZFX0dDPTE8L2RlZmluZT4KICAgICAgICAgPC9pZj4gCiAKLSAgICAg
ICAgPGRlZmluZT5LSFRNTF9YU0xUPTE8L2RlZmluZT4KKyAgICAgICAgPGRlZmluZT5YU0xUX1NV
UFBPUlQ9MTwvZGVmaW5lPgogCiAgICAgICAgIDxpZiBjb25kPSJGT1JNQVQ9PSdnbnUnIj4KICAg
ICAgICAgICAgIDwhLS0gRklYTUU6IHdlIG5lZWQgcHJvcGVyIGNvbmZpZ3VyZSBjaGVja3MgLS0+
CkBAIC04Nyw2ICs4OCw3IEBACiAKICAgICA8ZXhlIGlkPSJkZnRhYmxlcyI+CiAgICAgICAgIDxk
aXJuYW1lPiQoU1JDRElSKTwvZGlybmFtZT4KKyAgICAgICAgPGluY2x1ZGU+JChTUkNESVIpL3d0
ZjwvaW5jbHVkZT4KICAgICAgICAgPHNvdXJjZXM+JChTUkNESVIpL3BjcmUvZGZ0YWJsZXMuYzwv
c291cmNlcz4KICAgICA8L2V4ZT4KIApAQCAtOTksMTQgKzEwMSwxNSBAQAogICAgICAgICA8b2Jq
ZWN0cy1kZXBlbmQ+ZGZ0YWJsZXM8L29iamVjdHMtZGVwZW5kPgogICAgICAgICA8cHJlLWJ1aWxk
LXRhcmdldD5EZXJpdmVkU291cmNlczwvcHJlLWJ1aWxkLXRhcmdldD4KICAgICAgICAgPHNvdXJj
ZXM+Ci0JCQkkKEpTQ09SRV9TT1VSQ0VTX1dURikKKyAgICAgICAgICAgICQoSlNDT1JFX1NPVVJD
RVNfV1RGKQogICAgICAgICAgICAgJChKU0NPUkVfU09VUkNFU19QQ1JFKQogICAgICAgICAgICAg
JChKU0NPUkVfU09VUkNFU19LSlMpCisgICAgICAgICAgICAkKEpTQ09SRV9TT1VSQ0VTX0JJTkRJ
TkdTKQogICAgICAgICA8L3NvdXJjZXM+CiAgICAgICAgIDxpZiBjb25kPSJQTEFURk9STV9XSU4z
Mj09JzEnIj4KICAgICAgICAgICAgICQoSlNDT1JFX1NPVVJDRVNfV0lOKQotCQk8L2lmPgotCQk8
aW5zdGFsbC10bz4kKEJVSUxERElSKTwvaW5zdGFsbC10bz4KKwk8L2lmPgorCTxpbnN0YWxsLXRv
PiQoQlVJTERESVIpPC9pbnN0YWxsLXRvPgogICAgIDwvbGliPgogCiA8L21ha2VmaWxlPgpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9nZGsvSW1hZ2VHZGsuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vZ2RrL0ltYWdlR2RrLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ2RrL0ltYWdlR2RrLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkltYWdlLmgi
CisKKyNpZiBQTEFURk9STShDQUlSTykKKyNpbmNsdWRlIDxjYWlyby5oPgorI2Vsc2UKKyNlcnJv
ciAiR0RLIHBvcnQgcmVxdWlyZXMgUExBVEZPUk0oQ0FJUk8pIgorI2VuZGlmCisKKy8vIFRoaXMg
ZnVuY3Rpb24gbG9hZHMgcmVzb3VyY2VzIGZyb20gV2ViS2l0CitWZWN0b3I8Y2hhcj4gbG9hZFJl
c291cmNlSW50b0FycmF5KGNvbnN0IGNoYXIqKTsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisg
ICAgdm9pZCBJbWFnZTo6aW5pdFBsYXRmb3JtRGF0YSgpCisgICAgeworICAgIH0KKworICAgIHZv
aWQgSW1hZ2U6OmludmFsaWRhdGVQbGF0Zm9ybURhdGEoKQorICAgIHsKKyAgICB9CisKKyAgICBJ
bWFnZSogSW1hZ2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKGNvbnN0IGNoYXIgKm5hbWUpCisgICAg
eworICAgICAgICBWZWN0b3I8Y2hhcj4gYXJyID0gbG9hZFJlc291cmNlSW50b0FycmF5KG5hbWUp
OworICAgICAgICBJbWFnZSogaW1nID0gbmV3IEltYWdlOworICAgICAgICBpbWctPnNldE5hdGl2
ZURhdGEoJmFyciwgdHJ1ZSk7CisgICAgICAgIHJldHVybiBpbWc7CisgICAgfQorCisgICAgYm9v
bCBJbWFnZTo6c3VwcG9ydHNUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKKyAgICB7CisgICAgICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKK30K
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ2RrL0ZvbnRDYWNoZUdkay5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9nZGsvRm9udENhY2hlR2RrLmNwcAkocmV2aXNpb24gMTYzNjcp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2dkay9Gb250Q2FjaGVHZGsuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCiAKICNpbmNsdWRlICJG
b250LmgiCi0jaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YS5oIgorI2luY2x1ZGUgIkZvbnREYXRh
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9nZGsv
VGVtcG9yYXJ5TGlua1N0dWJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dk
ay9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwCShyZXZpc2lvbiAxNjM2NykKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ2RrL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDEw
ICszMSwxMSBAQAogCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxzdGRsaWIuaD4KKyNp
bmNsdWRlICJDU3RyaW5nLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlRleHRGaWVs
ZC5oIgorI2luY2x1ZGUgIkZpbGVDaG9vc2VyLmgiCiAjaW5jbHVkZSAiRm9udC5oIgotI2luY2x1
ZGUgIkZpbGVCdXR0b24uaCIKICNpbmNsdWRlICJQb3BVcEJ1dHRvbi5oIgogI2luY2x1ZGUgIklu
dFBvaW50LmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCkBAIC00NCw2ICs0NSw3IEBACiAjaW5jbHVk
ZSAibG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiS1VSTC5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtU2Nyb2xsQmFyLmgiCiAjaW5jbHVkZSAiU2Nyb2xsQmFyLmgiCiAj
aW5jbHVkZSAiSmF2YUFwcGxldFdpZGdldC5oIgogI2luY2x1ZGUgIlBhdGguaCIKQEAgLTYxLDkg
KzYzLDExIEBACiAjaW5jbHVkZSAiUmVuZGVyVGhlbWVHZGsuaCIKICNpbmNsdWRlICJUZXh0Qm91
bmRhcmllcy5oIgogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKLSNpbmNsdWRlICJEZXByZWNh
dGVkU3RyaW5nLmgiCi0jaW5jbHVkZSAiRGVwcmVjYXRlZFN0cmluZ0xpc3QuaCIKLSNpbmNsdWRl
ICJTU0xLZXlHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJSZW5kZXJQb3B1cE1lbnVHZGsuaCIKKyNp
bmNsdWRlICJFZGl0Q29tbWFuZC5oIgorI2luY2x1ZGUgIkljb24uaCIKKyNpbmNsdWRlICJJY29u
TG9hZGVyLmgiCisjaW5jbHVkZSAiSWNvbkRhdGFiYXNlLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCkBAIC0xMTQsMTYgKzExOCw2IEBACiB2b2lkIExpc3RCb3g6OmNsZWFyKCkgeyBu
b3RJbXBsZW1lbnRlZCgpOyB9CiBib29sIExpc3RCb3g6OmNoZWNrc0Rlc2NlbmRhbnRzRm9yRm9j
dXMoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9CiAKLUZpbGVCdXR0b246
OkZpbGVCdXR0b24oRnJhbWUqKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KLXZvaWQgRmlsZUJ1dHRv
bjo6Y2xpY2soYm9vbCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci1JbnRTaXplIEZpbGVCdXR0b246
OnNpemVGb3JDaGFyYWN0ZXJXaWR0aChpbnQpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0
dXJuIEludFNpemUoKTsgfQotV2lkZ2V0OjpGb2N1c1BvbGljeSBGaWxlQnV0dG9uOjpmb2N1c1Bv
bGljeSgpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIE5vRm9jdXM7IH0KLVdlYkNv
cmU6OkludFJlY3QgRmlsZUJ1dHRvbjo6ZnJhbWVHZW9tZXRyeSgpIGNvbnN0IHsgbm90SW1wbGVt
ZW50ZWQoKTsgcmV0dXJuIEludFJlY3QoKTsgfQotdm9pZCBGaWxlQnV0dG9uOjpzZXRGaWxlbmFt
ZShEZXByZWNhdGVkU3RyaW5nIGNvbnN0JikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci1pbnQgRmls
ZUJ1dHRvbjo6YmFzZWxpbmVQb3NpdGlvbihpbnQpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQoKTsg
cmV0dXJuIDA7IH0KLXZvaWQgRmlsZUJ1dHRvbjo6c2V0RnJhbWVHZW9tZXRyeShXZWJDb3JlOjpJ
bnRSZWN0IGNvbnN0JikgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12b2lkIEZpbGVCdXR0b246OnNl
dERpc2FibGVkKGJvb2wpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQotCiBXaWRnZXQ6OkZvY3VzUG9s
aWN5IFNsaWRlcjo6Zm9jdXNQb2xpY3koKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVy
biBOb0ZvY3VzOyB9CiBXaWRnZXQ6OkZvY3VzUG9saWN5IExpc3RCb3g6OmZvY3VzUG9saWN5KCkg
Y29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gTm9Gb2N1czsgfQogV2lkZ2V0OjpGb2N1
c1BvbGljeSBUZXh0RmllbGQ6OmZvY3VzUG9saWN5KCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgp
OyByZXR1cm4gTm9Gb2N1czsgfQpAQCAtMTQ5LDYgKzE0Myw3IEBACiB2b2lkIEZyYW1lR2RrOjpp
c3N1ZVJlZG9Db21tYW5kKHZvaWQpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogS0pTOjpCaW5kaW5n
czo6SW5zdGFuY2UqIEZyYW1lR2RrOjpnZXRPYmplY3RJbnN0YW5jZUZvcldpZGdldChXaWRnZXQg
KikgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gMDsgfQogS0pTOjpCaW5kaW5nczo6SW5zdGFu
Y2UqIEZyYW1lR2RrOjpnZXRFbWJlZEluc3RhbmNlRm9yV2lkZ2V0KFdpZGdldCAqKSB7IG5vdElt
cGxlbWVudGVkKCk7IHJldHVybiAwOyB9CitLSlM6OkJpbmRpbmdzOjpSb290T2JqZWN0KiBGcmFt
ZUdkazo6YmluZGluZ1Jvb3RPYmplY3QoKSB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9
CiBib29sIEZyYW1lR2RrOjpjYW5SZWRvKCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1
cm4gMDsgfQogYm9vbCBGcmFtZUdkazo6Y2FuVW5kbygpIGNvbnN0IHsgbm90SW1wbGVtZW50ZWQo
KTsgcmV0dXJuIDA7IH0KIHZvaWQgRnJhbWVHZGs6OnJlZ2lzdGVyQ29tbWFuZEZvclJlZG8oUGFz
c1JlZlB0cjxXZWJDb3JlOjpFZGl0Q29tbWFuZD4pIHsgbm90SW1wbGVtZW50ZWQoKTsgfQpAQCAt
MTY0LDcgKzE1OSw3IEBACiBTdHJpbmcgRnJhbWVHZGs6Om1pbWVUeXBlRm9yRmlsZU5hbWUoU3Ry
aW5nIGNvbnN0JikgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gU3RyaW5nKCk7IH0K
IHZvaWQgRnJhbWVHZGs6Omlzc3VlUGFzdGVDb21tYW5kKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9
CiB2b2lkIEZyYW1lR2RrOjpzY2hlZHVsZUNsb3NlKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9Ci12
b2lkIEZyYW1lR2RrOjptYXJrTWlzc3BlbGxpbmdzKFdlYkNvcmU6OlNlbGVjdGlvbkNvbnRyb2xs
ZXIgY29uc3QmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KK3ZvaWQgRnJhbWVHZGs6Om1hcmtNaXNz
cGVsbGluZ3MoV2ViQ29yZTo6U2VsZWN0aW9uIGNvbnN0JikgeyBub3RJbXBsZW1lbnRlZCgpOyB9
CiBib29sIEZyYW1lR2RrOjptZW51YmFyVmlzaWJsZSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0
dXJuIDA7IH0KIGJvb2wgRnJhbWVHZGs6OnBlcnNvbmFsYmFyVmlzaWJsZSgpIHsgbm90SW1wbGVt
ZW50ZWQoKTsgcmV0dXJuIDA7IH0KIGJvb2wgRnJhbWVHZGs6OnN0YXR1c2JhclZpc2libGUoKSB7
IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiAwOyB9CkBAIC0xODQsOCArMTc5LDggQEAKIEtVUkwg
QnJvd3NlckV4dGVuc2lvbkdkazo6aGlzdG9yeVVSTChpbnQgZGlzdGFuY2UpIHsgbm90SW1wbGVt
ZW50ZWQoKTsgcmV0dXJuIEtVUkwoKTsgfQogdm9pZCBCcm93c2VyRXh0ZW5zaW9uR2RrOjpjcmVh
dGVOZXdXaW5kb3coc3RydWN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBjb25zdCYpIHsgbm90
SW1wbGVtZW50ZWQoKTsgfQogCi1pbnQgV2ViQ29yZTo6c2NyZWVuRGVwdGhQZXJDb21wb25lbnQo
V2lkZ2V0KikgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gMDsgfQotYm9vbCBXZWJDb3JlOjpz
Y3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0KikgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gZmFs
c2U7IH0KK2ludCBXZWJDb3JlOjpzY3JlZW5EZXB0aFBlckNvbXBvbmVudChjb25zdCBQYWdlKikg
eyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gMDsgfQorYm9vbCBXZWJDb3JlOjpzY3JlZW5Jc01v
bm9jaHJvbWUoY29uc3QgUGFnZSopIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0dXJuIGZhbHNlOyB9
CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKi8KIC8qIENvbXBsZXRlbHkgZW1wdHkgc3R1YnMgKG1vc3RseSB0byBhbGxvdyBEUlQgdG8g
cnVuKTogKi8KQEAgLTE5OSw2ICsxOTQsOSBAQAogU3RyaW5nIFdlYkNvcmU6OnN1Ym1pdEJ1dHRv
bkRlZmF1bHRMYWJlbCgpIHsgcmV0dXJuICJTdWJtaXQiOyB9CiBTdHJpbmcgV2ViQ29yZTo6aW5w
dXRFbGVtZW50QWx0VGV4dCgpIHsgcmV0dXJuIERlcHJlY2F0ZWRTdHJpbmcoKTsgfQogU3RyaW5n
IFdlYkNvcmU6OnJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKCkgeyByZXR1cm4gIlJlc2V0IjsgfQor
U3RyaW5nIFdlYkNvcmU6OmZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwoKSB7IHJldHVybiAiQnJv
d3NlLi4uIjsgfQorU3RyaW5nIFdlYkNvcmU6OmZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVs
KCkgeyByZXR1cm4gU3RyaW5nKCk7IH0KKwogU3RyaW5nIFdlYkNvcmU6OmRlZmF1bHRMYW5ndWFn
ZSgpIHsgcmV0dXJuICJlbiI7IH0KIAogdm9pZCBXZWJDb3JlOjpmaW5kV29yZEJvdW5kYXJ5KFVD
aGFyIGNvbnN0KiBzdHIsIGludCBsZW4sIGludCBwb3NpdGlvbiwgaW50KiBzdGFydCwgaW50KiBl
bmQpIHsqc3RhcnQgPSBwb3NpdGlvbjsgKmVuZCA9IHBvc2l0aW9uOyB9CkBAIC0yMTksOCArMjE3
LDkgQEAKIFJhbmdlKiBGcmFtZUdkazo6bWFya2VkVGV4dFJhbmdlKCkgY29uc3QgeyByZXR1cm4g
MDsgfQogYm9vbCBGcmFtZUdkazo6bGFzdEV2ZW50SXNNb3VzZVVwKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KIHZvaWQgRnJhbWVHZGs6OmFkZE1lc3NhZ2VUb0NvbnNvbGUoU3RyaW5nIGNvbnN0
JiwgdW5zaWduZWQgaW50LCBTdHJpbmcgY29uc3QmKSB7IH0KLWJvb2wgRnJhbWVHZGs6OnNob3Vs
ZENoYW5nZVNlbGVjdGlvbihTZWxlY3Rpb25Db250cm9sbGVyIGNvbnN0JiwgU2VsZWN0aW9uQ29u
dHJvbGxlciBjb25zdCYsIFdlYkNvcmU6OkVBZmZpbml0eSwgYm9vbCkgY29uc3QgeyByZXR1cm4g
dHJ1ZTsgfQotdm9pZCBGcmFtZUdkazo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihXZWJDb3Jl
OjpTZWxlY3Rpb25Db250cm9sbGVyIGNvbnN0JiwgYm9vbCkgeyB9Citib29sIEZyYW1lR2RrOjpz
aG91bGRDaGFuZ2VTZWxlY3Rpb24oY29uc3QgU2VsZWN0aW9uJiwgY29uc3QgU2VsZWN0aW9uJiwg
V2ViQ29yZTo6RUFmZmluaXR5LCBib29sKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Citib29sIEZy
YW1lR2RrOjpzaG91bGRDaGFuZ2VTZWxlY3Rpb24oY29uc3QgU2VsZWN0aW9uJikgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQordm9pZCBGcmFtZUdkazo6cmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihX
ZWJDb3JlOjpTZWxlY3Rpb24gY29uc3QmLCBib29sKSB7IH0KIEZyYW1lKiBGcmFtZUdkazo6Y3Jl
YXRlRnJhbWUoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIEVsZW1lbnQqIG93
bmVyRWxlbWVudCwgY29uc3QgU3RyaW5nJiByZWZlcnJlcikgeyByZXR1cm4gMDsgfQogCiB2b2lk
IEZyYW1lR2RrOjpzYXZlRG9jdW1lbnRTdGF0ZSgpIHsgfQpAQCAtMjI4LDcgKzIyNyw3IEBACiB2
b2lkIEZyYW1lR2RrOjpjbGVhclVuZG9SZWRvT3BlcmF0aW9ucyh2b2lkKSB7IH0KIFN0cmluZyBG
cmFtZUdkazo6aW5jb21pbmdSZWZlcnJlcigpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CiB2
b2lkIEZyYW1lR2RrOjptYXJrTWlzc3BlbGxpbmdzSW5BZGphY2VudFdvcmRzKFdlYkNvcmU6OlZp
c2libGVQb3NpdGlvbiBjb25zdCYpIHsgfQotdm9pZCBGcmFtZUdkazo6cmVzcG9uZFRvQ2hhbmdl
ZENvbnRlbnRzKCkgeyB9Cit2b2lkIEZyYW1lR2RrOjpyZXNwb25kVG9DaGFuZ2VkQ29udGVudHMo
Y29uc3QgU2VsZWN0aW9uJikgeyB9CiAKIEJyb3dzZXJFeHRlbnNpb25HZGs6OkJyb3dzZXJFeHRl
bnNpb25HZGsoV2ViQ29yZTo6RnJhbWUqKSB7IH0KIHZvaWQgQnJvd3NlckV4dGVuc2lvbkdkazo6
c2V0VHlwZWRJY29uVVJMKEtVUkwgY29uc3QmLCBjb25zdCBTdHJpbmcmKSB7IH0KQEAgLTI3Niw3
ICsyNzUsNyBAQAogUGF0aDo6UGF0aCgpeyB9CiBQYXRoOjp+UGF0aCgpeyB9CiBQYXRoOjpQYXRo
KGNvbnN0IFBhdGgmKXsgfQotYm9vbCBQYXRoOjpjb250YWlucyhjb25zdCBGbG9hdFBvaW50Jikg
Y29uc3R7IHJldHVybiBmYWxzZTsgfQorYm9vbCBQYXRoOjpjb250YWlucyhjb25zdCBGbG9hdFBv
aW50JiwgV2luZFJ1bGUgcnVsZSkgY29uc3R7IHJldHVybiBmYWxzZTsgfQogdm9pZCBQYXRoOjp0
cmFuc2xhdGUoY29uc3QgRmxvYXRTaXplJil7IH0KIEZsb2F0UmVjdCBQYXRoOjpib3VuZGluZ1Jl
Y3QoKSBjb25zdCB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQogUGF0aCYgUGF0aDo6b3BlcmF0b3I9
KGNvbnN0IFBhdGgmKXsgcmV0dXJuICogdGhpczsgfQpAQCAtMzIyLDYgKzMyMSwxNyBAQAogSW50
UmVjdCBQb3BVcEJ1dHRvbjo6ZnJhbWVHZW9tZXRyeSgpIGNvbnN0IHsgcmV0dXJuIEludFJlY3Qo
KTsgfQogdm9pZCBQb3BVcEJ1dHRvbjo6c2V0RnJhbWVHZW9tZXRyeShJbnRSZWN0IGNvbnN0Jikg
eyB9CiAKK1BsYXRmb3JtU2Nyb2xsQmFyOjpQbGF0Zm9ybVNjcm9sbEJhcihTY3JvbGxCYXJDbGll
bnQqIGNsaWVudCwgU2Nyb2xsQmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24pIDogU2Nyb2xsQmFy
KGNsaWVudCwgb3JpZW50YXRpb24pIHsgfQorUGxhdGZvcm1TY3JvbGxCYXI6On5QbGF0Zm9ybVNj
cm9sbEJhcigpIHsgfQoraW50IFBsYXRmb3JtU2Nyb2xsQmFyOjp3aWR0aCgpIGNvbnN0IHsgcmV0
dXJuIDA7IH0KK2ludCBQbGF0Zm9ybVNjcm9sbEJhcjo6aGVpZ2h0KCkgY29uc3QgeyByZXR1cm4g
MDsgfQordm9pZCBQbGF0Zm9ybVNjcm9sbEJhcjo6c2V0RW5hYmxlZChib29sKSB7IH0KK3ZvaWQg
UGxhdGZvcm1TY3JvbGxCYXI6OnBhaW50KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3Qm
IGRhbWFnZVJlY3QpIHsgfQordm9pZCBQbGF0Zm9ybVNjcm9sbEJhcjo6c2V0U2Nyb2xsQmFyVmFs
dWUoaW50IHYpIHsgfQordm9pZCBQbGF0Zm9ybVNjcm9sbEJhcjo6c2V0S25vYlByb3BvcnRpb24o
aW50IHZpc2libGVTaXplLCBpbnQgdG90YWxTaXplKSB7IH0KK3ZvaWQgUGxhdGZvcm1TY3JvbGxC
YXI6OnNldFJlY3QoY29uc3QgSW50UmVjdCYpIHsgfQorCitTY3JvbGxCYXI6OlNjcm9sbEJhcihT
Y3JvbGxCYXJDbGllbnQqLCBTY3JvbGxCYXJPcmllbnRhdGlvbikgeyB9CiB2b2lkIFNjcm9sbEJh
cjo6c2V0U3RlcHMoaW50LCBpbnQpIHsgfQogYm9vbCBTY3JvbGxCYXI6OnNjcm9sbChTY3JvbGxE
aXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCkgeyByZXR1cm4gMDsgfQogYm9vbCBT
Y3JvbGxCYXI6OnNldFZhbHVlKGludCkgeyByZXR1cm4gMDsgfQpAQCAtMzMyLDYgKzM0MiwxMyBA
QAogdm9pZCBMaXN0Qm94OjpzZXRTZWxlY3Rpb25Nb2RlKExpc3RCb3g6OlNlbGVjdGlvbk1vZGUp
IHsgfQogdm9pZCBMaXN0Qm94OjpzZXRGb250KFdlYkNvcmU6OkZvbnQgY29uc3QmKSB7IH0KIAor
RmlsZUNob29zZXI6OkZpbGVDaG9vc2VyKERvY3VtZW50KiwgUmVuZGVyRmlsZVVwbG9hZENvbnRy
b2wqKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KK0ZpbGVDaG9vc2VyOjp+RmlsZUNob29zZXIoKSB7
IG5vdEltcGxlbWVudGVkKCk7IH0KK3ZvaWQgRmlsZUNob29zZXI6Om9wZW5GaWxlQ2hvb3Nlcigp
IHsgbm90SW1wbGVtZW50ZWQoKTsgfQorU3RyaW5nIEZpbGVDaG9vc2VyOjpiYXNlbmFtZUZvcldp
ZHRoKGludCB3aWR0aCkgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gU3RyaW5nKCk7
IH0KK3ZvaWQgRmlsZUNob29zZXI6OnVwbG9hZENvbnRyb2xEZXRhY2hpbmcoKSB7IG5vdEltcGxl
bWVudGVkKCk7IH0KK3ZvaWQgRmlsZUNob29zZXI6OmNob29zZUZpbGUoY29uc3QgU3RyaW5nJiBm
aWxlbmFtZSkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CisKIENvbG9yIFdlYkNvcmU6OmZvY3VzUmlu
Z0NvbG9yKCkgeyByZXR1cm4gMHhGRjAwMDBGRjsgfQogdm9pZCBXZWJDb3JlOjpzZXRGb2N1c1Jp
bmdDb2xvckNoYW5nZUZ1bmN0aW9uKHZvaWQgKCopKCkpIHsgfQogCkBAIC0zNDUsNiArMzYyLDE5
IEBACiB2b2lkIFJlbmRlclRoZW1lR2RrOjphZGp1c3RUZXh0RmllbGRTdHlsZShDU1NTdHlsZVNl
bGVjdG9yKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KiBlKSBjb25zdCB7fQogYm9vbCBSZW5kZXJU
aGVtZUdkazo6cGFpbnRUZXh0RmllbGQoUmVuZGVyT2JqZWN0KiwgY29uc3QgUmVuZGVyT2JqZWN0
OjpQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gZmFsc2U7IH0KIAorSWNvbjo6
SWNvbigpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQorSWNvbjo6fkljb24oKSB7IG5vdEltcGxlbWVu
dGVkKCk7IH0KK1Bhc3NSZWZQdHI8SWNvbj4gSWNvbjo6bmV3SWNvbkZvckZpbGUoY29uc3QgU3Ry
aW5nJiBmaWxlbmFtZSkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gUGFzc1JlZlB0cjxJY29u
PihuZXcgSWNvbigpKTsgfQordm9pZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25z
dCBJbnRSZWN0JikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CisKK3ZvaWQgSWNvbkxvYWRlcjo6c3Rv
cExvYWRpbmcoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0gCit2b2lkIEljb25Mb2FkZXI6OnN0YXJ0
TG9hZGluZygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfSAKK0ljb25Mb2FkZXIqIEljb25Mb2FkZXI6
OmNyZWF0ZUZvckZyYW1lKEZyYW1lICpmcmFtZSkgeyByZXR1cm4gMDsgfSAKKworYm9vbCBJY29u
RGF0YWJhc2U6OmlzSWNvbkV4cGlyZWRGb3JJY29uVVJMKGNvbnN0IFN0cmluZyYgdXJsKSB7IHJl
dHVybiBmYWxzZTsgfQorYm9vbCBJY29uRGF0YWJhc2U6Omhhc0VudHJ5Rm9ySWNvblVSTChjb25z
dCBTdHJpbmcmIHVybCkgeyByZXR1cm4gZmFsc2U7IH0KK0ljb25EYXRhYmFzZSogSWNvbkRhdGFi
YXNlOjpzaGFyZWRJY29uRGF0YWJhc2UoKSB7IHJldHVybiAwOyB9CisKIEZsb2F0UmVjdCBGb250
OjpzZWxlY3Rpb25SZWN0Rm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYsIGNvbnN0IFRleHRT
dHlsZSYsIGNvbnN0IEludFBvaW50JiwgaW50KSBjb25zdCB7IHJldHVybiBGbG9hdFJlY3QoKTsg
fQogdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgVGV4
dFJ1biYsIGNvbnN0IFRleHRTdHlsZSYsIGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdCB7IG5vdElt
cGxlbWVudGVkKCk7IH0KIGZsb2F0IEZvbnQ6OmZsb2F0V2lkdGhGb3JDb21wbGV4VGV4dChjb25z
dCBUZXh0UnVuJiwgY29uc3QgVGV4dFN0eWxlJikgY29uc3QgeyBub3RJbXBsZW1lbnRlZCgpOyBy
ZXR1cm4gMDsgfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9nZGsvU3lzdGVtVGltZUxpbnV4LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dkay9TeXN0ZW1UaW1lTGludXguY3Bw
CShyZXZpc2lvbiAxNjM2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL1N5c3RlbVRpbWVMaW51
eC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDE1ICsyOCwxNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIKIAotI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNs
dWRlIDxzeXMvdGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGRvdWJsZSBjdXJyZW50
VGltZSgpCiB7Ci0gICAgdGltZV90IHR0aW1lOwotICAgIHRpbWUoJnR0aW1lKTsKLSAgICByZXR1
cm4gKGRvdWJsZSl0dGltZTsKKyAgc3RydWN0IHRpbWV2YWwgYVRpbWV2YWw7CisgIHN0cnVjdCB0
aW1lem9uZSBhVGltZXpvbmU7CisgCisgIGdldHRpbWVvZmRheSggJmFUaW1ldmFsLCAmYVRpbWV6
b25lICk7CisgIHJldHVybiAoZG91YmxlKWFUaW1ldmFsLnR2X3NlYyArIChkb3VibGUpKGFUaW1l
dmFsLnR2X3VzZWMgLyAxMDAwMDAwLjAgKTsKIH0KIAogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9nZGsvUmVuZGVyUG9wdXBNZW51R2RrLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9nZGsvUmVuZGVyUG9wdXBNZW51R2RrLmgJKHJldmlzaW9uIDE2MzY3KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9nZGsvUmVuZGVyUG9wdXBNZW51R2RrLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYg
KzM5LDcgQEAKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXIoKTsKICAgICB2aXJ0dWFsIHZvaWQgcG9w
dWxhdGUoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd1BvcHVwKGNvbnN0IEludFJlY3QmLCBGcmFt
ZVZpZXcqLCBpbnQgaW5kZXgpOworICAgIHZpcnR1YWwgdm9pZCBoaWRlUG9wdXAoKTsKICAgICAK
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgYWRkU2VwYXJhdG9yKCk7CkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dkay9GcmFtZUdkay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ2RrL0ZyYW1lR2RrLmgJKHJldmlzaW9uIDE2MzY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9n
ZGsvRnJhbWVHZGsuaAkod29ya2luZyBjb3B5KQpAQCAtODcsNyArODcsNyBAQAogICAgIHZpcnR1
YWwgU3RyaW5nIG1pbWVUeXBlRm9yRmlsZU5hbWUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgbWFya01pc3NwZWxsaW5nc0luQWRqYWNlbnRXb3Jkcyhjb25zdCBWaXNp
YmxlUG9zaXRpb24mKTsKLSAgICB2aXJ0dWFsIHZvaWQgbWFya01pc3NwZWxsaW5ncyhjb25zdCBT
ZWxlY3Rpb25Db250cm9sbGVyJik7CisgICAgdmlydHVhbCB2b2lkIG1hcmtNaXNzcGVsbGluZ3Mo
Y29uc3QgU2VsZWN0aW9uJik7CiAKICAgICB2aXJ0dWFsIGJvb2wgbGFzdEV2ZW50SXNNb3VzZVVw
KCkgY29uc3Q7CiAKQEAgLTk5LDYgKzk5LDcgQEAKICAgICB2aXJ0dWFsIEtKUzo6QmluZGluZ3M6
Okluc3RhbmNlKiBnZXRFbWJlZEluc3RhbmNlRm9yV2lkZ2V0KFdpZGdldCopOwogICAgIHZpcnR1
YWwgS0pTOjpCaW5kaW5nczo6SW5zdGFuY2UqIGdldE9iamVjdEluc3RhbmNlRm9yV2lkZ2V0KFdp
ZGdldCopOwogICAgIHZpcnR1YWwgS0pTOjpCaW5kaW5nczo6SW5zdGFuY2UqIGdldEFwcGxldElu
c3RhbmNlRm9yV2lkZ2V0KFdpZGdldCopOworICAgIHZpcnR1YWwgS0pTOjpCaW5kaW5nczo6Um9v
dE9iamVjdCogYmluZGluZ1Jvb3RPYmplY3QoKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWdpc3Rl
ckNvbW1hbmRGb3JVbmRvKFBhc3NSZWZQdHI8RWRpdENvbW1hbmQ+KTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVnaXN0ZXJDb21tYW5kRm9yUmVkbyhQYXNzUmVmUHRyPEVkaXRDb21tYW5kPik7CkBAIC0x
MTAsOSArMTExLDEwIEBACiAgICAgdmlydHVhbCB2b2lkIGlzc3VlUGFzdGVDb21tYW5kKCk7CiAg
ICAgdmlydHVhbCB2b2lkIGlzc3VlUGFzdGVBbmRNYXRjaFN0eWxlQ29tbWFuZCgpOwogICAgIHZp
cnR1YWwgdm9pZCBpc3N1ZVRyYW5zcG9zZUNvbW1hbmQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVz
cG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihjb25zdCBTZWxlY3Rpb25Db250cm9sbGVyJiBvbGRTZWxl
Y3Rpb24sIGJvb2wgY2xvc2VUeXBpbmcpOwotICAgIHZpcnR1YWwgdm9pZCByZXNwb25kVG9DaGFu
Z2VkQ29udGVudHMoKTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKGNv
bnN0IFNlbGVjdGlvbkNvbnRyb2xsZXImIG9sZFNlbGVjdGlvbiwgY29uc3QgU2VsZWN0aW9uQ29u
dHJvbGxlciYgbmV3U2VsZWN0aW9uLCBFQWZmaW5pdHkgYWZmaW5pdHksIGJvb2wgc3RpbGxTZWxl
Y3RpbmcpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCByZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9u
KGNvbnN0IFNlbGVjdGlvbiYgb2xkU2VsZWN0aW9uLCBib29sIGNsb3NlVHlwaW5nKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZENvbnRlbnRzKGNvbnN0IFNlbGVjdGlvbiYgZW5k
aW5nU2VsZWN0aW9uKTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0aW9uKGNv
bnN0IFNlbGVjdGlvbiYgb2xkU2VsZWN0aW9uLCBjb25zdCBTZWxlY3Rpb24mIG5ld1NlbGVjdGlv
biwgRUFmZmluaXR5IGFmZmluaXR5LCBib29sIHN0aWxsU2VsZWN0aW5nKSBjb25zdDsKKyAgICBi
b29sIHNob3VsZENoYW5nZVNlbGVjdGlvbihjb25zdCBTZWxlY3Rpb24mKSBjb25zdDsKICAgICB2
aXJ0dWFsIHZvaWQgcGFydENsZWFyZWRJbkJlZ2luKCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2Fu
R29CYWNrT3JGb3J3YXJkKGludCBkaXN0YW5jZSkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dkay9TY3JlZW5HZGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ2Rr
L1NjcmVlbkdkay5jcHAJKHJldmlzaW9uIDE2MzY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9nZGsv
U2NyZWVuR2RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsMzIgKzI4LDUyIEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU2NyZWVuLmgiCiAKKyNpbmNsdWRlICJQYWdlLmgiCisj
aW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRlICJGbG9hdFJl
Y3QuaCIKLSNpbmNsdWRlICJXaWRnZXQuaCIKKwogI2luY2x1ZGUgPGdkay9nZGsuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1GbG9hdFJlY3Qgc2NyZWVuUmVjdChXaWRnZXQqIHdpZGdldCkK
K3N0YXRpYyBHZGtEcmF3YWJsZSogZHJhd2FibGVGb3JQYWdlKGNvbnN0IFBhZ2UqIHBhZ2UpCiB7
Ci0gICAgR2RrRHJhd2FibGUqIGRyYXdhYmxlID0gd2lkZ2V0LT5kcmF3YWJsZSgpOworICAgIEZy
YW1lKiBmcmFtZSA9IChwYWdlID8gcGFnZS0+bWFpbkZyYW1lKCkgOiAwKTsKKyAgICBGcmFtZVZp
ZXcqIGZyYW1lVmlldyA9IChmcmFtZSA/IGZyYW1lLT52aWV3KCkgOiAwKTsKKyAgICAKKyAgICBp
ZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuIDA7CisgICAgCisgICAgcmV0dXJuIGZyYW1l
Vmlldy0+ZHJhd2FibGUoKTsKK30KKworRmxvYXRSZWN0IHNjcmVlblJlY3QoY29uc3QgUGFnZSog
cGFnZSkKK3sKKyAgICBHZGtEcmF3YWJsZSogZHJhd2FibGUgPSBkcmF3YWJsZUZvclBhZ2UocGFn
ZSk7CiAgICAgaWYgKCFkcmF3YWJsZSkKICAgICAgICAgcmV0dXJuIEZsb2F0UmVjdCgpOwogICAg
IEdka1NjcmVlbiogc2NyZWVuID0gZ2RrX2RyYXdhYmxlX2dldF9zY3JlZW4oZHJhd2FibGUpOwog
ICAgIHJldHVybiBGbG9hdFJlY3QoMCwgMCwgZ2RrX3NjcmVlbl9nZXRfd2lkdGgoc2NyZWVuKSwg
Z2RrX3NjcmVlbl9nZXRfaGVpZ2h0KHNjcmVlbikpOwogfQogCi1pbnQgc2NyZWVuRGVwdGgoV2lk
Z2V0KiB3aWRnZXQpCitpbnQgc2NyZWVuRGVwdGgoY29uc3QgUGFnZSogcGFnZSkKIHsKLSAgICBH
ZGtEcmF3YWJsZSogZHJhd2FibGUgPSB3aWRnZXQtPmRyYXdhYmxlKCk7CisgICAgR2RrRHJhd2Fi
bGUqIGRyYXdhYmxlID0gZHJhd2FibGVGb3JQYWdlKHBhZ2UpOwogICAgIGlmICghZHJhd2FibGUp
CiAgICAgICAgIHJldHVybiAzMjsKICAgICByZXR1cm4gZ2RrX2RyYXdhYmxlX2dldF9kZXB0aChk
cmF3YWJsZSk7CiB9CiAKLUZsb2F0UmVjdCB1c2FibGVTY3JlZW5SZWN0KFdpZGdldCogd2lkZ2V0
KQorRmxvYXRSZWN0IHVzYWJsZVNjcmVlblJlY3QoY29uc3QgUGFnZSogcGFnZSkKIHsKLSAgICBy
ZXR1cm4gc2NyZWVuUmVjdCh3aWRnZXQpOworICAgIHJldHVybiBzY3JlZW5SZWN0KHBhZ2UpOwog
fQogCitmbG9hdCBzY2FsZUZhY3Rvcihjb25zdCBQYWdlKikKK3sKKyAgICByZXR1cm4gMS4wZjsK
KwogfQorCit9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dkay9XaWRnZXRHZGsuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ2RrL1dpZGdldEdkay5jcHAJKHJldmlzaW9uIDE2
MzY3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9nZGsvV2lkZ2V0R2RrLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTY5LDEwICsxNjksNCBAQAogICAgIHJldHVybiBJbnRQb2ludChwLngoKSAtIHgsIHAu
eSgpIC0geSk7CiB9CiAKLWZsb2F0IFdpZGdldDo6c2NhbGVGYWN0b3IoKSBjb25zdAotewotICAg
IHJldHVybiAxLjBmOwotCiB9Ci0KLX0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ2RrL1JlbmRl
clBvcHVwTWVudUdkay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9nZGsvUmVu
ZGVyUG9wdXBNZW51R2RrLmNwcAkocmV2aXNpb24gMTYzNjcpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L2dkay9SZW5kZXJQb3B1cE1lbnVHZGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0Nywx
MCBAQAogewogfQogCit2b2lkIFJlbmRlclBvcHVwTWVudUdkazo6aGlkZVBvcHVwKCkKK3sKK30K
Kwogdm9pZCBSZW5kZXJQb3B1cE1lbnVHZGs6OmFkZFNlcGFyYXRvcigpCiB7CiB9CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dkay9GcmFtZUdkay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9nZGsvRnJhbWVHZGsuY3BwCShyZXZpc2lvbiAxNjM2NykKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ2RrL0ZyYW1lR2RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMzLDcgKzIzMyw3IEBA
CiAgICAgICAgICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQga2V2ZW50KGV2ZW50KTsKICAgICAg
ICAgICAgIGJvb2wgaGFuZGxlZCA9IGZhbHNlOwogICAgICAgICAgICAgaWYgKCFrZXZlbnQuaXNL
ZXlVcCgpKSB7Ci0gICAgICAgICAgICAgICAgTm9kZSogc3RhcnQgPSBzZWxlY3Rpb24oKS5zdGFy
dCgpLm5vZGUoKTsKKyAgICAgICAgICAgICAgICBOb2RlKiBzdGFydCA9IHNlbGVjdGlvbkNvbnRy
b2xsZXIoKS0+c3RhcnQoKS5ub2RlKCk7CiAgICAgICAgICAgICAgICAgaWYgKHN0YXJ0ICYmIHN0
YXJ0LT5pc0NvbnRlbnRFZGl0YWJsZSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIHN3aXRjaChr
ZXZlbnQuV2luZG93c0tleUNvZGUoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBW
S19CQUNLOgpAQCAtMjQzLDE2ICsyNDMsMTYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBUeXBpbmdDb21tYW5kOjpmb3J3YXJkRGVsZXRlS2V5UHJlc3NlZChkb2N1bWVudCgpKTsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAg
IGNhc2UgVktfTEVGVDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24oKS5t
b2RpZnkoU2VsZWN0aW9uQ29udHJvbGxlcjo6TU9WRSwgU2VsZWN0aW9uQ29udHJvbGxlcjo6TEVG
VCwgQ2hhcmFjdGVyR3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGVjdGlvbkNvbnRyb2xsZXIoKS0+bW9kaWZ5KFNlbGVjdGlvbkNvbnRyb2xsZXI6Ok1PVkUsIFNl
bGVjdGlvbkNvbnRyb2xsZXI6OkxFRlQsIENoYXJhY3RlckdyYW51bGFyaXR5KTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ug
VktfUklHSFQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uKCkubW9kaWZ5
KFNlbGVjdGlvbkNvbnRyb2xsZXI6Ok1PVkUsIFNlbGVjdGlvbkNvbnRyb2xsZXI6OlJJR0hULCBD
aGFyYWN0ZXJHcmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0
aW9uQ29udHJvbGxlcigpLT5tb2RpZnkoU2VsZWN0aW9uQ29udHJvbGxlcjo6TU9WRSwgU2VsZWN0
aW9uQ29udHJvbGxlcjo6UklHSFQsIENoYXJhY3RlckdyYW51bGFyaXR5KTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgVktf
VVA6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9uKCkubW9kaWZ5KFNlbGVj
dGlvbkNvbnRyb2xsZXI6Ok1PVkUsIFNlbGVjdGlvbkNvbnRyb2xsZXI6OkJBQ0tXQVJELCBQYXJh
Z3JhcGhHcmFudWxhcml0eSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0aW9u
Q29udHJvbGxlcigpLT5tb2RpZnkoU2VsZWN0aW9uQ29udHJvbGxlcjo6TU9WRSwgU2VsZWN0aW9u
Q29udHJvbGxlcjo6QkFDS1dBUkQsIFBhcmFncmFwaEdyYW51bGFyaXR5KTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgVktf
RE9XTjoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3Rpb24oKS5tb2RpZnkoU2Vs
ZWN0aW9uQ29udHJvbGxlcjo6TU9WRSwgU2VsZWN0aW9uQ29udHJvbGxlcjo6Rk9SV0FSRCwgUGFy
YWdyYXBoR3JhbnVsYXJpdHkpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGlv
bkNvbnRyb2xsZXIoKS0+bW9kaWZ5KFNlbGVjdGlvbkNvbnRyb2xsZXI6Ok1PVkUsIFNlbGVjdGlv
bkNvbnRyb2xsZXI6OkZPUldBUkQsIFBhcmFncmFwaEdyYW51bGFyaXR5KTsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dChk
b2N1bWVudCgpLCBrZXZlbnQudGV4dCgpLCBmYWxzZSk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2dkay9Gb250RGF0YUdkay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9nZGsv
Rm9udERhdGFHZGsuY3BwCShyZXZpc2lvbiAxNjM2NykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ2Rr
L0ZvbnREYXRhR2RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsOCBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKKyNkZWZpbmUgVVNFX09MRF9DQUlSTyAxCisKIHZvaWQgRm9udERh
dGE6OnBsYXRmb3JtSW5pdCgpCiB7CiAgICAgY2Fpcm9fZm9udF9leHRlbnRzX3QgZm9udF9leHRl
bnRzOwpAQCAtNTEsMTAgKzUzLDE1IEBACiAgICAgbV9hc2NlbnQgPSBzdGF0aWNfY2FzdDxpbnQ+
KGZvbnRfZXh0ZW50cy5hc2NlbnQpOwogICAgIG1fZGVzY2VudCA9IHN0YXRpY19jYXN0PGludD4o
Zm9udF9leHRlbnRzLmRlc2NlbnQpOwogICAgIG1fbGluZVNwYWNpbmcgPSBzdGF0aWNfY2FzdDxp
bnQ+KGZvbnRfZXh0ZW50cy5oZWlnaHQpOworI2lmZGVmIFVTRV9PTERfQ0FJUk8KKyAgICBtX3hI
ZWlnaHQgPSAxMzsKKyAgICBtX3NwYWNlV2lkdGggPSAxMDsKKyNlbHNlCiAgICAgY2Fpcm9fc2Nh
bGVkX2ZvbnRfdGV4dF9leHRlbnRzKG1fZm9udC5tX3NjYWxlZEZvbnQsICJ4IiwgJnRleHRfZXh0
ZW50cyk7CiAgICAgbV94SGVpZ2h0ID0gdGV4dF9leHRlbnRzLmhlaWdodDsKICAgICBjYWlyb19z
Y2FsZWRfZm9udF90ZXh0X2V4dGVudHMobV9mb250Lm1fc2NhbGVkRm9udCwgIiAiLCAmdGV4dF9l
eHRlbnRzKTsKICAgICBtX3NwYWNlV2lkdGggPSAgc3RhdGljX2Nhc3Q8aW50Pih0ZXh0X2V4dGVu
dHMueF9hZHZhbmNlKTsKKyNlbmRpZgogICAgIGFzc2VydChtX3NwYWNlV2lkdGggIT0gMCk7CiAg
ICAgbV9saW5lR2FwID0gbV9saW5lU3BhY2luZyAtIG1fYXNjZW50IC0gbV9kZXNjZW50OwogfQpJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9nZGsvRm9udEdkay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9nZGsvRm9udEdkay5jcHAJKHJldmlzaW9uIDE2MzY3KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9nZGsvRm9udEdkay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcg
QEAKICAgICAvLyBTZWxlY3QgdGhlIHNjYWxlZCBmb250LgogICAgIGZvbnQtPnNldEZvbnQoY29u
dGV4dCk7CiAKLSAgICBHbHlwaEJ1ZmZlckdseXBoKiBnbHlwaHMgPSBnbHlwaEJ1ZmZlci5nbHlw
aHMoZnJvbSk7CisgICAgR2x5cGhCdWZmZXJHbHlwaCogZ2x5cGhzID0gKEdseXBoQnVmZmVyR2x5
cGgqKSBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSk7CiAKICAgICBmbG9hdCBvZmZzZXQgPSBwb2lu
dC54KCk7CiAKSW5kZXg6IFdlYkNvcmUvUHJvamVjdHMvZ2RrL3dlYmNvcmUtZ2RrLmJrbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL1Byb2plY3RzL2dkay93ZWJjb3JlLWdkay5ia2wJKHJldmlzaW9u
IDE2MzY3KQorKysgV2ViQ29yZS9Qcm9qZWN0cy9nZGsvd2ViY29yZS1nZGsuYmtsCSh3b3JraW5n
IGNvcHkpCkBAIC03Miw2ICs3Miw3IEBACiAgICAgICAgICAgcGxhdGZvcm0vZ2RrL0ZvbnRQbGF0
Zm9ybURhdGFHZGsuY3BwCiAgICAgICAgICAgcGxhdGZvcm0vZ2RrL0ZyYW1lR2RrLmNwcAogICAg
ICAgICAgIHBsYXRmb3JtL2dkay9HbHlwaE1hcEdkay5jcHAKKyAgICAgICAgICAgcGxhdGZvcm0v
Z2RrL0ltYWdlR2RrLmNwcAogICAgICAgICAgIHBsYXRmb3JtL2dkay9LZXlFdmVudEdkay5jcHAK
ICAgICAgICAgICBwbGF0Zm9ybS9nZGsvTW91c2VFdmVudEdkay5jcHAKICAgICAgICAgICBwbGF0
Zm9ybS9nZGsvUGFnZUdkay5jcHAKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjM2NykKKysrIFdlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNzUgQEAKKzIwMDYtMDktMTQgIEtyenlzenRv
ZiBLb3dhbGN6eWsgIDxra293YWxjenlrQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXQVJOSU5HOiBOTyBURVNUIENBU0VTIEFEREVE
IE9SIENIQU5HRUQKKworICAgICAgICAqIFByb2plY3RzL2dkay93ZWJjb3JlLWdkay5ia2w6Cisg
ICAgICAgICogV2ViQ29yZVNvdXJjZXMuYmtsOgorICAgICAgICAqIHBsYXRmb3JtL2dkay9Gb250
Q2FjaGVHZGsuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dkay9Gb250RGF0YUdkay5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGb250RGF0YTo6cGxhdGZvcm1Jbml0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9nZGsvRm9udEdkay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250OjpkcmF3R2x5cGhz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9nZGsvRnJhbWVHZGsuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVHZGs6OmhhbmRsZUdka0V2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9nZGsvRnJh
bWVHZGsuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9nZGsvSW1hZ2VHZGsuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkltYWdlOjppbml0UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlOjppbnZhbGlkYXRlUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6c3Vw
cG9ydHNUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9nZGsvUmVuZGVyUG9wdXBNZW51R2RrLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclBvcHVwTWVudUdkazo6aGlkZVBvcHVwKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9nZGsvUmVuZGVyUG9wdXBNZW51R2RrLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ2RrL1NjcmVlbkdkay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkcmF3YWJsZUZvclBh
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpz
Y3JlZW5EZXB0aCk6CisgICAgICAgIChXZWJDb3JlOjp1c2FibGVTY3JlZW5SZWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnNjYWxlRmFjdG9yKToKKyAgICAgICAgKiBwbGF0Zm9ybS9nZGsvU3lzdGVt
VGltZUxpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmN1cnJlbnRUaW1lKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9nZGsvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcDoKKyAgICAgICAgKEZyYW1lR2Rr
OjpiaW5kaW5nUm9vdE9iamVjdCk6CisgICAgICAgIChGcmFtZUdkazo6bWFya01pc3NwZWxsaW5n
cyk6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5EZXB0aFBlckNvbXBvbmVudCk6CisgICAgICAg
IChXZWJDb3JlOjpzY3JlZW5Jc01vbm9jaHJvbWUpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUJ1
dHRvbkNob29zZUZpbGVMYWJlbCk6CisgICAgICAgIChXZWJDb3JlOjpmaWxlQnV0dG9uTm9GaWxl
U2VsZWN0ZWRMYWJlbCk6CisgICAgICAgIChGcmFtZUdkazo6c2hvdWxkQ2hhbmdlU2VsZWN0aW9u
KToKKyAgICAgICAgKEZyYW1lR2RrOjpyZXNwb25kVG9DaGFuZ2VkU2VsZWN0aW9uKToKKyAgICAg
ICAgKEZyYW1lR2RrOjpyZXNwb25kVG9DaGFuZ2VkQ29udGVudHMpOgorICAgICAgICAoUGF0aDo6
Y29udGFpbnMpOgorICAgICAgICAoUGxhdGZvcm1TY3JvbGxCYXI6OlBsYXRmb3JtU2Nyb2xsQmFy
KToKKyAgICAgICAgKFBsYXRmb3JtU2Nyb2xsQmFyOjp+UGxhdGZvcm1TY3JvbGxCYXIpOgorICAg
ICAgICAoUGxhdGZvcm1TY3JvbGxCYXI6OndpZHRoKToKKyAgICAgICAgKFBsYXRmb3JtU2Nyb2xs
QmFyOjpoZWlnaHQpOgorICAgICAgICAoUGxhdGZvcm1TY3JvbGxCYXI6OnNldEVuYWJsZWQpOgor
ICAgICAgICAoUGxhdGZvcm1TY3JvbGxCYXI6OnBhaW50KToKKyAgICAgICAgKFBsYXRmb3JtU2Ny
b2xsQmFyOjpzZXRTY3JvbGxCYXJWYWx1ZSk6CisgICAgICAgIChQbGF0Zm9ybVNjcm9sbEJhcjo6
c2V0S25vYlByb3BvcnRpb24pOgorICAgICAgICAoUGxhdGZvcm1TY3JvbGxCYXI6OnNldFJlY3Qp
OgorICAgICAgICAoU2Nyb2xsQmFyOjpTY3JvbGxCYXIpOgorICAgICAgICAoRmlsZUNob29zZXI6
OkZpbGVDaG9vc2VyKToKKyAgICAgICAgKEZpbGVDaG9vc2VyOjp+RmlsZUNob29zZXIpOgorICAg
ICAgICAoRmlsZUNob29zZXI6Om9wZW5GaWxlQ2hvb3Nlcik6CisgICAgICAgIChGaWxlQ2hvb3Nl
cjo6YmFzZW5hbWVGb3JXaWR0aCk6CisgICAgICAgIChGaWxlQ2hvb3Nlcjo6dXBsb2FkQ29udHJv
bERldGFjaGluZyk6CisgICAgICAgIChGaWxlQ2hvb3Nlcjo6Y2hvb3NlRmlsZSk6CisgICAgICAg
IChJY29uOjpJY29uKToKKyAgICAgICAgKEljb246On5JY29uKToKKyAgICAgICAgKEljb246Om5l
d0ljb25Gb3JGaWxlKToKKyAgICAgICAgKEljb246OnBhaW50KToKKyAgICAgICAgKEljb25Mb2Fk
ZXI6OnN0b3BMb2FkaW5nKToKKyAgICAgICAgKEljb25Mb2FkZXI6OnN0YXJ0TG9hZGluZyk6Cisg
ICAgICAgIChJY29uTG9hZGVyOjpjcmVhdGVGb3JGcmFtZSk6CisgICAgICAgIChJY29uRGF0YWJh
c2U6OmlzSWNvbkV4cGlyZWRGb3JJY29uVVJMKToKKyAgICAgICAgKEljb25EYXRhYmFzZTo6aGFz
RW50cnlGb3JJY29uVVJMKToKKyAgICAgICAgKEljb25EYXRhYmFzZTo6c2hhcmVkSWNvbkRhdGFi
YXNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9nZGsvV2lkZ2V0R2RrLmNwcDoKKyAgICAgICAgKiB3
ZWJjb3JlLWJhc2UuYmtsOgorCiAyMDA2LTA5LTE0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNpZWoncyBydWJiZXIgc3RhbXAKSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZVNvdXJjZXMuYmtsCShyZXZpc2lvbiAxNjM2NykKKysrIFdlYkNvcmUvV2ViQ29yZVNvdXJj
ZXMuYmtsCSh3b3JraW5nIGNvcHkpCkBAIC04NSw2ICs4NSw3IEBACiAJCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNOb3RhdGlvbi5jcHAKIAkJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Byb2Nl
c3NpbmdJbnN0cnVjdGlvbi5jcHAKIAkJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1JhbmdlLmNw
cAorCQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUmFuZ2VFeGNlcHRpb24uY3BwCiAJCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNUZXh0LmNwcAogCQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
VHJlZVdhbGtlci5jcHAKIAkJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU092ZXJmbG93RXZlbnQu
Y3BwCkBAIC0xNDQsNiArMTQ1LDcgQEAKIAkJcGxhdGZvcm0vQXJyYXlJbXBsLmNwcAogCQlwbGF0
Zm9ybS9BdG9taWNTdHJpbmcuY3BwCiAJCXBsYXRmb3JtL0NvbG9yLmNwcAorCQlwbGF0Zm9ybS9D
U3RyaW5nLmNwcAogCQlwbGF0Zm9ybS9EZXByZWNhdGVkQ1N0cmluZy5jcHAKIAkJcGxhdGZvcm0v
RGVwcmVjYXRlZFB0ckxpc3RJbXBsLmNwcAogCQlwbGF0Zm9ybS9EZXByZWNhdGVkU3RyaW5nLmNw
cApAQCAtMzc3LDYgKzM3OSw3IEBACiAJPHNldCBhcHBlbmQ9IjEiIHZhcj0iV0VCQ09SRV9TT1VS
Q0VTX0NTUyI+CiAJCQogCQljc3MvQ1NTQm9yZGVySW1hZ2VWYWx1ZS5jcHAKKwkJY3NzL0NTU0No
YXJzZXRSdWxlLmNwcAogCQljc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAogCQlj
c3MvQ1NTRm9udEZhY2VSdWxlLmNwcAogCQljc3MvY3NzaGVscGVyLmNwcApAQCAtNDMyLDcgKzQz
NSw3IEBACiAJCXJlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCiAJCXJlbmRlcmluZy9SZW5kZXJD
b250YWluZXIuY3BwCiAJCXJlbmRlcmluZy9SZW5kZXJGaWVsZHNldC5jcHAKLQkJcmVuZGVyaW5n
L1JlbmRlckZpbGVCdXR0b24uY3BwCisJCXJlbmRlcmluZy9SZW5kZXJGaWxlVXBsb2FkQ29udHJv
bC5jcHAKIAkJcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAogCQlyZW5kZXJpbmcvUmVu
ZGVyRmxvdy5jcHAKIAkJcmVuZGVyaW5nL1JlbmRlckZvcm1FbGVtZW50LmNwcApAQCAtNTMzLDcg
KzUzNiw3IEBACiAJCWRvbS9Ob2RlRmlsdGVyQ29uZGl0aW9uLmNwcAogCQlkb20vTm9kZUxpc3Qu
Y3BwCiAJCWRvbS9Ob3RhdGlvbi5jcHAKLSAgICAgICAgICBkb20vT3ZlcmZsb3dFdmVudC5jcHAK
KwkgICAgICAgIGRvbS9PdmVyZmxvd0V2ZW50LmNwcAogCQlkb20vUG9zaXRpb24uY3BwCiAJCWRv
bS9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwCiAJCWRvbS9RdWFsaWZpZWROYW1lLmNwcApAQCAt
NTUxLDYgKzU1NCw3IEBACiAKIAk8c2V0IGFwcGVuZD0iMSIgdmFyPSJXRUJDT1JFX1NPVVJDRVNf
SUNPTiI+CiAJCWljb24vSWNvbkRhdGFiYXNlLmNwcAorCQlpY29uL0ljb25Mb2FkZXIuY3BwCiAJ
CWljb24vU1FMRGF0YWJhc2UuY3BwCiAJCWljb24vU1FMU3RhdGVtZW50LmNwcAogCQlpY29uL1Np
dGVJY29uLmNwcApJbmRleDogV2ViQ29yZS93ZWJjb3JlLWJhc2UuYmtsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvd2ViY29yZS1iYXNlLmJrbAkocmV2aXNpb24gMTYzNjcpCisrKyBXZWJDb3JlL3dl
YmNvcmUtYmFzZS5ia2wJKHdvcmtpbmcgY29weSkKQEAgLTg2LDYgKzg2LDcgQEAKICAgICAgICAg
PGluY2x1ZGU+JChTUkNESVIpL2NzczwvaW5jbHVkZT4KICAgICAgICAgPGluY2x1ZGU+JChTUkNE
SVIpL2RvbTwvaW5jbHVkZT4KICAgICAgICAgPGluY2x1ZGU+JChTUkNESVIpL2xvYWRlcjwvaW5j
bHVkZT4KKyAgICAgICAgPGluY2x1ZGU+JChTUkNESVIpL2xvYWRlci9pY29uPC9pbmNsdWRlPgog
ICAgICAgICA8aW5jbHVkZT4kKFNSQ0RJUikvcGFnZTwvaW5jbHVkZT4KICAgICAgICAgPGluY2x1
ZGU+JChTUkNESVIpL3BsYXRmb3JtPC9pbmNsdWRlPgogICAgICAgICA8aW5jbHVkZT4kKFNSQ0RJ
UikvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnM8L2luY2x1ZGU+CkBAIC0xMTEsNyArMTEyLDcgQEAK
IDwhLS0gRU5EIEhBQ0tTIC0tPgogCiAgICAgICAgIDxkZWZpbmU+QVBQTEVfQ0hBTkdFUz0xPC9k
ZWZpbmU+Ci0gICAgICAgIDxkZWZpbmU+S0hUTUxfWFNMVD0xPC9kZWZpbmU+CisgICAgICAgIDxk
ZWZpbmU+WFNMVF9TVVBQT1JUPTE8L2RlZmluZT4KIAogICAgICAgICA8IS0tIFRPRE86IGlzIHRo
ZXJlIGEgTGludXgtc3BlY2lmaWMgcGxhdGZvcm0gZGVmaW5lPyAtLT4KICAgICAgICAgPGlmIGNv
bmQ9IlBMQVRGT1JNX1VOSVg9PScxJyI+Cg==
</data>
<flag name="review"
          id="3432"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>