<?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>41199</bug_id>
          
          <creation_ts>2010-06-25 01:17:02 -0700</creation_ts>
          <short_desc>[Qt] QtScript API should be exceptions aware.</short_desc>
          <delta_ts>2010-07-02 03:39:01 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>31863</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jędrzej Nowacki">jedrzej.nowacki</reporter>
          <assigned_to name="Jędrzej Nowacki">jedrzej.nowacki</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hausmann</cc>
    
    <cc>kent.hansen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>242885</commentid>
    <comment_count>0</comment_count>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-06-25 01:17:02 -0700</bug_when>
    <thetext>The QtScript API should be enriched by these functions:

http://doc.qt.nokia.com/4.6/qscriptengine.html#clearExceptions
http://doc.qt.nokia.com/4.6/qscriptengine.html#hasUncaughtException
http://doc.qt.nokia.com/4.6/qscriptengine.html#uncaughtException</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243667</commentid>
    <comment_count>1</comment_count>
      <attachid>59895</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-06-28 05:52:14 -0700</bug_when>
    <thetext>Created attachment 59895
Fix v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>243689</commentid>
    <comment_count>2</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-06-28 07:36:38 -0700</bug_when>
    <thetext>LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244156</commentid>
    <comment_count>3</comment_count>
      <attachid>59895</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-06-29 01:37:45 -0700</bug_when>
    <thetext>Comment on attachment 59895
Fix v1

Patch need to be rebased.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>244725</commentid>
    <comment_count>4</comment_count>
      <attachid>60108</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-06-30 04:21:50 -0700</bug_when>
    <thetext>Created attachment 60108
Fix v1.01

Rebased against trunk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245816</commentid>
    <comment_count>5</comment_count>
      <attachid>60108</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-07-02 01:25:54 -0700</bug_when>
    <thetext>Comment on attachment 60108
Fix v1.01

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245824</commentid>
    <comment_count>6</comment_count>
      <attachid>60108</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-02 01:43:49 -0700</bug_when>
    <thetext>Comment on attachment 60108
Fix v1.01

Rejecting patch 60108 from commit-queue.

Unexpected failure when processing patch!  Please file a bug against webkit-patch.
Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-commit-queue.appspot.com&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--build&apos;, &apos;--non-interactive&apos;, &apos;--ignore-builders&apos;, &apos;--build-style=both&apos;, &apos;--quiet&apos;, 60108, &apos;--test&apos;, &apos;--parent-command=commit-queue&apos;, &apos;--no-update&apos;]&quot; exit_code: 1
Last 500 characters of output:
webkitpy/tool/commands/stepsequence.py&quot;, line 60, in _run
    step(tool, options).run(state)
  File &quot;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/webkitpy/tool/steps/validatereviewer.py&quot;, line 68, in run
    if self._has_valid_reviewer(changelog_entry):
  File &quot;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/webkitpy/tool/steps/validatereviewer.py&quot;, line 50, in _has_valid_reviewer
    if changelog_entry.reviewer():
AttributeError: &apos;NoneType&apos; object has no attribute &apos;reviewer&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245866</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-07-02 03:39:01 -0700</bug_when>
    <thetext>Committed r62377: &lt;http://trac.webkit.org/changeset/62377&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59895</attachid>
            <date>2010-06-28 05:52:14 -0700</date>
            <delta_ts>2010-06-30 04:21:50 -0700</delta_ts>
            <desc>Fix v1</desc>
            <filename>exc.diff</filename>
            <type>text/plain</type>
            <size>19001</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3Jl
L3F0L0NoYW5nZUxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjcxOWNh
Ci0tLSAvZGV2L251bGwKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvQ2hhbmdlTG9nCkBAIC0wLDAg
KzEsNDMgQEAKKzIwMTAtMDYtMjggIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93YWNraUBu
b2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IGV4Y2VwdGlvbiByZXBvcnRpbmcgaW4gdGhlIFF0U2NyaXB0IEFQSS4KKwor
ICAgICAgICBUaGUgZXhjZXB0aW9uIHNob3VsZCBiZSBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlIEFQ
SSBieSB0aGUgdW5jYXVnaHRFeGNlcHRpb24KKyAgICAgICAgZnVuY3Rpb24uIEZ1bmN0aW9uczsg
aGFzVW5jYXVnaHRFeGNlcHRpb24sIGNsZWFyRXhjZXB0aW9ucywgdW5jYXVnaHRFeGNlcHRpb25M
aW5lTnVtYmVyLAorICAgICAgICB1bmNhdWdodEV4Y2VwdGlvbkJhY2t0cmFjZSB3ZXJlIGFkZGVk
IHRvIGZhY2lsaXRhdGUgZXJyb3IgY2hlY2tpbmcgYW5kIGRlYnVnZ2luZy4KKworICAgICAgICBb
UXRdIFF0U2NyaXB0IEFQSSBzaG91bGQgYmUgZXhjZXB0aW9ucyBhd2FyZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMTk5CisKKyAgICAgICAgKiBh
cGkvcXNjcmlwdGVuZ2luZS5jcHA6CisgICAgICAgIChRU2NyaXB0RW5naW5lOjpoYXNVbmNhdWdo
dEV4Y2VwdGlvbik6CisgICAgICAgIChRU2NyaXB0RW5naW5lOjp1bmNhdWdodEV4Y2VwdGlvbik6
CisgICAgICAgIChRU2NyaXB0RW5naW5lOjpjbGVhckV4Y2VwdGlvbnMpOgorICAgICAgICAoUVNj
cmlwdEVuZ2luZTo6dW5jYXVnaHRFeGNlcHRpb25MaW5lTnVtYmVyKToKKyAgICAgICAgKFFTY3Jp
cHRFbmdpbmU6OnVuY2F1Z2h0RXhjZXB0aW9uQmFja3RyYWNlKToKKyAgICAgICAgKiBhcGkvcXNj
cmlwdGVuZ2luZS5oOgorICAgICAgICAqIGFwaS9xc2NyaXB0ZW5naW5lX3AuY3BwOgorICAgICAg
ICAoUVNjcmlwdEVuZ2luZVByaXZhdGU6OlFTY3JpcHRFbmdpbmVQcml2YXRlKToKKyAgICAgICAg
KFFTY3JpcHRFbmdpbmVQcml2YXRlOjp+UVNjcmlwdEVuZ2luZVByaXZhdGUpOgorICAgICAgICAo
UVNjcmlwdEVuZ2luZVByaXZhdGU6OnVuY2F1Z2h0RXhjZXB0aW9uKToKKyAgICAgICAgKiBhcGkv
cXNjcmlwdGVuZ2luZV9wLmg6CisgICAgICAgIChRU2NyaXB0RW5naW5lUHJpdmF0ZTo6KToKKyAg
ICAgICAgKFFTY3JpcHRFbmdpbmVQcml2YXRlOjpldmFsdWF0ZSk6CisgICAgICAgIChRU2NyaXB0
RW5naW5lUHJpdmF0ZTo6aGFzVW5jYXVnaHRFeGNlcHRpb24pOgorICAgICAgICAoUVNjcmlwdEVu
Z2luZVByaXZhdGU6OmNsZWFyRXhjZXB0aW9ucyk6CisgICAgICAgIChRU2NyaXB0RW5naW5lUHJp
dmF0ZTo6c2V0RXhjZXB0aW9uKToKKyAgICAgICAgKFFTY3JpcHRFbmdpbmVQcml2YXRlOjp1bmNh
dWdodEV4Y2VwdGlvbkxpbmVOdW1iZXIpOgorICAgICAgICAoUVNjcmlwdEVuZ2luZVByaXZhdGU6
OnVuY2F1Z2h0RXhjZXB0aW9uQmFja3RyYWNlKToKKyAgICAgICAgKiBhcGkvcXNjcmlwdHZhbHVl
X3AuaDoKKyAgICAgICAgKFFTY3JpcHRWYWx1ZVByaXZhdGU6OnRvU3RyaW5nKToKKyAgICAgICAg
KFFTY3JpcHRWYWx1ZVByaXZhdGU6OnRvTnVtYmVyKToKKyAgICAgICAgKFFTY3JpcHRWYWx1ZVBy
aXZhdGU6OnRvT2JqZWN0KToKKyAgICAgICAgKFFTY3JpcHRWYWx1ZVByaXZhdGU6OmVxdWFscyk6
CisgICAgICAgIChRU2NyaXB0VmFsdWVQcml2YXRlOjppbnN0YW5jZU9mKToKKyAgICAgICAgKFFT
Y3JpcHRWYWx1ZVByaXZhdGU6OmNhbGwpOgorICAgICAgICAoUVNjcmlwdFZhbHVlUHJpdmF0ZTo6
aW5oZXJpdHMpOgorICAgICAgICAqIHRlc3RzL3FzY3JpcHRlbmdpbmUvdHN0X3FzY3JpcHRlbmdp
bmUuY3BwOgorICAgICAgICAodHN0X1FTY3JpcHRFbmdpbmU6OnVuY2F1Z2h0RXhjZXB0aW9uKToK
KwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuY3BwIGIv
SmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuY3BwCmluZGV4IGUxYmRmNzcuLjEy
N2IwNDggMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lLmNw
cAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZS5jcHAKQEAgLTk2LDYg
Kzk2LDcxIEBAIFFTY3JpcHRWYWx1ZSBRU2NyaXB0RW5naW5lOjpldmFsdWF0ZShjb25zdCBRU2Ny
aXB0UHJvZ3JhbSYgcHJvZ3JhbSkKIH0KIAogLyohCisgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBs
YXN0IHNjcmlwdCBldmFsdWF0aW9uIHJlc3VsdGVkIGluIGFuIHVuY2F1Z2h0CisgICAgZXhjZXB0
aW9uOyBvdGhlcndpc2UgcmV0dXJucyBmYWxzZS4KKworICAgIFRoZSBleGNlcHRpb24gc3RhdGUg
aXMgY2xlYXJlZCB3aGVuIGV2YWx1YXRlKCkgaXMgY2FsbGVkLgorCisgICAgXHNhIHVuY2F1Z2h0
RXhjZXB0aW9uKCksIHVuY2F1Z2h0RXhjZXB0aW9uTGluZU51bWJlcigpLAorICAgICAgdW5jYXVn
aHRFeGNlcHRpb25CYWNrdHJhY2UoKQorKi8KK2Jvb2wgUVNjcmlwdEVuZ2luZTo6aGFzVW5jYXVn
aHRFeGNlcHRpb24oKSBjb25zdAoreworICAgIHJldHVybiBkX3B0ci0+aGFzVW5jYXVnaHRFeGNl
cHRpb24oKTsKK30KKworLyohCisgICAgUmV0dXJucyB0aGUgY3VycmVudCB1bmNhdWdodCBleGNl
cHRpb24sIG9yIGFuIGludmFsaWQgUVNjcmlwdFZhbHVlCisgICAgaWYgdGhlcmUgaXMgbm8gdW5j
YXVnaHQgZXhjZXB0aW9uLgorCisgICAgVGhlIGV4Y2VwdGlvbiB2YWx1ZSBpcyB0eXBpY2FsbHkg
YW4gXGN7RXJyb3J9IG9iamVjdDsgaW4gdGhhdCBjYXNlLAorICAgIHlvdSBjYW4gY2FsbCB0b1N0
cmluZygpIG9uIHRoZSByZXR1cm4gdmFsdWUgdG8gb2J0YWluIGFuIGVycm9yCisgICAgbWVzc2Fn
ZS4KKworICAgIFxzYSBoYXNVbmNhdWdodEV4Y2VwdGlvbigpLCB1bmNhdWdodEV4Y2VwdGlvbkxp
bmVOdW1iZXIoKSwKKyAgICAgIHVuY2F1Z2h0RXhjZXB0aW9uQmFja3RyYWNlKCkKKyovCitRU2Ny
aXB0VmFsdWUgUVNjcmlwdEVuZ2luZTo6dW5jYXVnaHRFeGNlcHRpb24oKSBjb25zdAoreworICAg
IHJldHVybiBRU2NyaXB0VmFsdWVQcml2YXRlOjpnZXQoZF9wdHItPnVuY2F1Z2h0RXhjZXB0aW9u
KCkpOworfQorCisvKiEKKyAgICBDbGVhcnMgYW55IHVuY2F1Z2h0IGV4Y2VwdGlvbnMgaW4gdGhp
cyBlbmdpbmUuCisKKyAgICBcc2EgaGFzVW5jYXVnaHRFeGNlcHRpb24oKQorKi8KK3ZvaWQgUVNj
cmlwdEVuZ2luZTo6Y2xlYXJFeGNlcHRpb25zKCkKK3sKKyAgICBkX3B0ci0+Y2xlYXJFeGNlcHRp
b25zKCk7Cit9CisKKy8qIQorICAgIFJldHVybnMgdGhlIGxpbmUgbnVtYmVyIHdoZXJlIHRoZSBs
YXN0IHVuY2F1Z2h0IGV4Y2VwdGlvbiBvY2N1cnJlZC4KKworICAgIExpbmUgbnVtYmVycyBhcmUg
MS1iYXNlZCwgdW5sZXNzIGEgZGlmZmVyZW50IGJhc2Ugd2FzIHNwZWNpZmllZCBhcworICAgIHRo
ZSBzZWNvbmQgYXJndW1lbnQgdG8gZXZhbHVhdGUoKS4KKworICAgIFxzYSBoYXNVbmNhdWdodEV4
Y2VwdGlvbigpLCB1bmNhdWdodEV4Y2VwdGlvbkJhY2t0cmFjZSgpCisqLworaW50IFFTY3JpcHRF
bmdpbmU6OnVuY2F1Z2h0RXhjZXB0aW9uTGluZU51bWJlcigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGRfcHRyLT51bmNhdWdodEV4Y2VwdGlvbkxpbmVOdW1iZXIoKTsKK30KKworLyohCisgICAgUmV0
dXJucyBhIGh1bWFuLXJlYWRhYmxlIGJhY2t0cmFjZSBvZiB0aGUgbGFzdCB1bmNhdWdodCBleGNl
cHRpb24uCisKKyAgICBFYWNoIGxpbmUgaXMgb2YgdGhlIGZvcm0gXGN7PGZ1bmN0aW9uLW5hbWU+
KDxhcmd1bWVudHM+KUA8ZmlsZS1uYW1lPjo8bGluZS1udW1iZXI+fS4KKworICAgIFxzYSB1bmNh
dWdodEV4Y2VwdGlvbigpCisqLworUVN0cmluZ0xpc3QgUVNjcmlwdEVuZ2luZTo6dW5jYXVnaHRF
eGNlcHRpb25CYWNrdHJhY2UoKSBjb25zdAoreworICAgIHJldHVybiBkX3B0ci0+dW5jYXVnaHRF
eGNlcHRpb25CYWNrdHJhY2UoKTsKK30KKworLyohCiAgICAgUnVucyB0aGUgZ2FyYmFnZSBjb2xs
ZWN0b3IuCiAKICAgICBUaGUgZ2FyYmFnZSBjb2xsZWN0b3Igd2lsbCBhdHRlbXB0IHRvIHJlY2xh
aW0gbWVtb3J5IGJ5IGxvY2F0aW5nIGFuZCBkaXNwb3Npbmcgb2Ygb2JqZWN0cyB0aGF0IGFyZQpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuaCBiL0phdmFT
Y3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lLmgKaW5kZXggNjUzZGZmZS4uMjU4YmZkYyAx
MDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuaAorKysgYi9K
YXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZS5oCkBAIC00Miw2ICs0MiwxMiBAQCBw
dWJsaWM6CiAgICAgUVNjcmlwdFZhbHVlIGV2YWx1YXRlKGNvbnN0IFFTdHJpbmcmIHByb2dyYW0s
IGNvbnN0IFFTdHJpbmcmIGZpbGVOYW1lID0gUVN0cmluZygpLCBpbnQgbGluZU51bWJlciA9IDEp
OwogICAgIFFTY3JpcHRWYWx1ZSBldmFsdWF0ZShjb25zdCBRU2NyaXB0UHJvZ3JhbSYgcHJvZ3Jh
bSk7CiAKKyAgICBib29sIGhhc1VuY2F1Z2h0RXhjZXB0aW9uKCkgY29uc3Q7CisgICAgUVNjcmlw
dFZhbHVlIHVuY2F1Z2h0RXhjZXB0aW9uKCkgY29uc3Q7CisgICAgdm9pZCBjbGVhckV4Y2VwdGlv
bnMoKTsKKyAgICBpbnQgdW5jYXVnaHRFeGNlcHRpb25MaW5lTnVtYmVyKCkgY29uc3Q7CisgICAg
UVN0cmluZ0xpc3QgdW5jYXVnaHRFeGNlcHRpb25CYWNrdHJhY2UoKSBjb25zdDsKKwogICAgIHZv
aWQgY29sbGVjdEdhcmJhZ2UoKTsKICAgICB2b2lkIHJlcG9ydEFkZGl0aW9uYWxNZW1vcnlDb3N0
KGludCBjb3N0KTsKIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRl
bmdpbmVfcC5jcHAgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZV9wLmNwcApp
bmRleCBmZDc5NzhiLi4yNzE3ZTYyIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkv
cXNjcmlwdGVuZ2luZV9wLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVu
Z2luZV9wLmNwcApAQCAtMzEsMTEgKzMxLDE0IEBACiBRU2NyaXB0RW5naW5lUHJpdmF0ZTo6UVNj
cmlwdEVuZ2luZVByaXZhdGUoY29uc3QgUVNjcmlwdEVuZ2luZSogZW5naW5lKQogICAgIDogcV9w
dHIoY29uc3RfY2FzdDxRU2NyaXB0RW5naW5lKj4oZW5naW5lKSkKICAgICAsIG1fY29udGV4dChK
U0dsb2JhbENvbnRleHRDcmVhdGUoMCkpCisgICAgLCBtX2V4Y2VwdGlvbigwKQogewogfQogCiBR
U2NyaXB0RW5naW5lUHJpdmF0ZTo6flFTY3JpcHRFbmdpbmVQcml2YXRlKCkKIHsKKyAgICBpZiAo
bV9leGNlcHRpb24pCisgICAgICAgIEpTVmFsdWVVbnByb3RlY3QobV9jb250ZXh0LCBtX2V4Y2Vw
dGlvbik7CiAgICAgSlNHbG9iYWxDb250ZXh0UmVsZWFzZShtX2NvbnRleHQpOwogfQogCkBAIC03
Nyw2ICs4MCwxMSBAQCBRU2NyaXB0VmFsdWVQcml2YXRlKiBRU2NyaXB0RW5naW5lUHJpdmF0ZTo6
ZXZhbHVhdGUoY29uc3QgUVNjcmlwdFByb2dyYW1Qcml2YXRlKgogICAgIHJldHVybiBuZXcgUVNj
cmlwdFZhbHVlUHJpdmF0ZSh0aGlzLCBldmFsdWF0ZSgqcHJvZ3JhbSwgcHJvZ3JhbS0+ZmlsZSgp
LCBwcm9ncmFtLT5saW5lKCkpKTsKIH0KIAorUVNjcmlwdFZhbHVlUHJpdmF0ZSogUVNjcmlwdEVu
Z2luZVByaXZhdGU6OnVuY2F1Z2h0RXhjZXB0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9l
eGNlcHRpb24gPyBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZSh0aGlzLCBtX2V4Y2VwdGlvbikgOiBu
ZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZSgpOworfQorCiBRU2NyaXB0VmFsdWVQcml2YXRlKiBRU2Ny
aXB0RW5naW5lUHJpdmF0ZTo6bmV3T2JqZWN0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbmV3IFFT
Y3JpcHRWYWx1ZVByaXZhdGUodGhpcywgSlNPYmplY3RNYWtlKG1fY29udGV4dCwgLyoganNDbGFz
cyAqLyAwLCAvKiB1c2VyRGF0YSAqLyAwKSk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9x
dC9hcGkvcXNjcmlwdGVuZ2luZV9wLmggYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVu
Z2luZV9wLmgKaW5kZXggOTA4M2Y3ZC4uODA4YWYwMyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENv
cmUvcXQvYXBpL3FzY3JpcHRlbmdpbmVfcC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9x
c2NyaXB0ZW5naW5lX3AuaApAQCAtMjYsOSArMjYsMTEgQEAKICNpbmNsdWRlICJxc2NyaXB0c3lu
dGF4Y2hlY2tyZXN1bHRfcC5oIgogI2luY2x1ZGUgInFzY3JpcHR2YWx1ZS5oIgogI2luY2x1ZGUg
PEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHQuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U1JldGFpblB0ci5oPgogI2luY2x1ZGUgPEpTQmFzZVByaXZhdGUuaD4KICNpbmNsdWRlIDxRdENv
cmUvcXNoYXJlZGRhdGEuaD4KICNpbmNsdWRlIDxRdENvcmUvcXN0cmluZy5oPgorI2luY2x1ZGUg
PFF0Q29yZS9xc3RyaW5nbGlzdC5oPgogCiBjbGFzcyBRU2NyaXB0RW5naW5lOwogY2xhc3MgUVNj
cmlwdFN5bnRheENoZWNrUmVzdWx0UHJpdmF0ZTsKQEAgLTQxLDExICs0MywyMyBAQCBwdWJsaWM6
CiAgICAgUVNjcmlwdEVuZ2luZVByaXZhdGUoY29uc3QgUVNjcmlwdEVuZ2luZSopOwogICAgIH5R
U2NyaXB0RW5naW5lUHJpdmF0ZSgpOwogCisgICAgZW51bSBTZXRFeGNlcHRpb25GbGFnIHsKKyAg
ICAgICAgSWdub3JlTnVsbEV4Y2VwdGlvbiA9IDB4MDEsCisgICAgICAgIE5vdE51bGxFeGNlcHRp
b24gPSAweDAyLAorICAgIH07CisKICAgICBRU2NyaXB0U3ludGF4Q2hlY2tSZXN1bHRQcml2YXRl
KiBjaGVja1N5bnRheChjb25zdCBRU3RyaW5nJiBwcm9ncmFtKTsKICAgICBRU2NyaXB0VmFsdWVQ
cml2YXRlKiBldmFsdWF0ZShjb25zdCBRU3RyaW5nJiBwcm9ncmFtLCBjb25zdCBRU3RyaW5nJiBm
aWxlTmFtZSwgaW50IGxpbmVOdW1iZXIpOwogICAgIFFTY3JpcHRWYWx1ZVByaXZhdGUqIGV2YWx1
YXRlKGNvbnN0IFFTY3JpcHRQcm9ncmFtUHJpdmF0ZSogcHJvZ3JhbSk7CiAgICAgaW5saW5lIEpT
VmFsdWVSZWYgZXZhbHVhdGUoSlNTdHJpbmdSZWYgcHJvZ3JhbSwgSlNTdHJpbmdSZWYgZmlsZU5h
bWUsIGludCBsaW5lTnVtYmVyKTsKIAorICAgIGlubGluZSBib29sIGhhc1VuY2F1Z2h0RXhjZXB0
aW9uKCkgY29uc3Q7CisgICAgUVNjcmlwdFZhbHVlUHJpdmF0ZSogdW5jYXVnaHRFeGNlcHRpb24o
KSBjb25zdDsKKyAgICBpbmxpbmUgdm9pZCBjbGVhckV4Y2VwdGlvbnMoKTsKKyAgICBpbmxpbmUg
dm9pZCBzZXRFeGNlcHRpb24oSlNWYWx1ZVJlZiBleGNlcHRpb24sIGNvbnN0IC8qIFNldEV4Y2Vw
dGlvbkZsYWdzICovIHVuc2lnbmVkIGZsYWdzID0gSWdub3JlTnVsbEV4Y2VwdGlvbik7CisgICAg
aW5saW5lIGludCB1bmNhdWdodEV4Y2VwdGlvbkxpbmVOdW1iZXIoKSBjb25zdDsKKyAgICBpbmxp
bmUgUVN0cmluZ0xpc3QgdW5jYXVnaHRFeGNlcHRpb25CYWNrdHJhY2UoKSBjb25zdDsKKwogICAg
IGlubGluZSB2b2lkIGNvbGxlY3RHYXJiYWdlKCk7CiAgICAgaW5saW5lIHZvaWQgcmVwb3J0QWRk
aXRpb25hbE1lbW9yeUNvc3QoaW50IGNvc3QpOwogCkBAIC02NSw2ICs3OSw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgUVNjcmlwdEVuZ2luZSogcV9wdHI7CiAgICAgSlNHbG9iYWxDb250ZXh0
UmVmIG1fY29udGV4dDsKKyAgICBKU1ZhbHVlUmVmIG1fZXhjZXB0aW9uOwogfTsKIAogCkBAIC03
NywxMSArOTIsNjcgQEAgSlNWYWx1ZVJlZiBRU2NyaXB0RW5naW5lUHJpdmF0ZTo6ZXZhbHVhdGUo
SlNTdHJpbmdSZWYgcHJvZ3JhbSwgSlNTdHJpbmdSZWYgZmlsZU4KIHsKICAgICBKU1ZhbHVlUmVm
IGV4Y2VwdGlvbjsKICAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTRXZhbHVhdGVTY3JpcHQobV9j
b250ZXh0LCBwcm9ncmFtLCAvKiBHbG9iYWwgT2JqZWN0ICovIDAsIGZpbGVOYW1lLCBsaW5lTnVt
YmVyLCAmZXhjZXB0aW9uKTsKLSAgICBpZiAoIXJlc3VsdCkKKyAgICBpZiAoIXJlc3VsdCkgewor
ICAgICAgICBzZXRFeGNlcHRpb24oZXhjZXB0aW9uLCBOb3ROdWxsRXhjZXB0aW9uKTsKICAgICAg
ICAgcmV0dXJuIGV4Y2VwdGlvbjsgLy8gcmV0dXJucyBhbiBleGNlcHRpb24KKyAgICB9CisgICAg
Y2xlYXJFeGNlcHRpb25zKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorYm9vbCBRU2NyaXB0
RW5naW5lUHJpdmF0ZTo6aGFzVW5jYXVnaHRFeGNlcHRpb24oKSBjb25zdAoreworICAgIHJldHVy
biBtX2V4Y2VwdGlvbjsKK30KKwordm9pZCBRU2NyaXB0RW5naW5lUHJpdmF0ZTo6Y2xlYXJFeGNl
cHRpb25zKCkKK3sKKyAgICBpZiAobV9leGNlcHRpb24pCisgICAgICAgIEpTVmFsdWVVbnByb3Rl
Y3QobV9jb250ZXh0LCBtX2V4Y2VwdGlvbik7CisgICAgbV9leGNlcHRpb24gPSAwOworfQorCit2
b2lkIFFTY3JpcHRFbmdpbmVQcml2YXRlOjpzZXRFeGNlcHRpb24oSlNWYWx1ZVJlZiBleGNlcHRp
b24sIGNvbnN0IC8qIFNldEV4Y2VwdGlvbkZsYWdzICovIHVuc2lnbmVkIGZsYWdzKQoreworICAg
IGlmICghKChmbGFncyAmIE5vdE51bGxFeGNlcHRpb24pIHx8IGV4Y2VwdGlvbikpCisgICAgICAg
IHJldHVybjsKKyAgICBRX0FTU0VSVChleGNlcHRpb24pOworCisgICAgaWYgKG1fZXhjZXB0aW9u
KQorICAgICAgICBKU1ZhbHVlVW5wcm90ZWN0KG1fY29udGV4dCwgbV9leGNlcHRpb24pOworICAg
IEpTVmFsdWVQcm90ZWN0KG1fY29udGV4dCwgZXhjZXB0aW9uKTsKKyAgICBtX2V4Y2VwdGlvbiA9
IGV4Y2VwdGlvbjsKK30KKworaW50IFFTY3JpcHRFbmdpbmVQcml2YXRlOjp1bmNhdWdodEV4Y2Vw
dGlvbkxpbmVOdW1iZXIoKSBjb25zdAoreworICAgIGlmICghaGFzVW5jYXVnaHRFeGNlcHRpb24o
KSB8fCAhSlNWYWx1ZUlzT2JqZWN0KG1fY29udGV4dCwgbV9leGNlcHRpb24pKQorICAgICAgICBy
ZXR1cm4gLTE7CisKKyAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CisgICAgSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IGxpbmVOdW1iZXJQcm9wZXJ0eU5hbWUoQWRvcHQsIFFTY3JpcHRDb252
ZXJ0ZXI6OnRvU3RyaW5nKCJsaW5lIikpOworICAgIEpTVmFsdWVSZWYgbGluZU51bWJlciA9IEpT
T2JqZWN0R2V0UHJvcGVydHkobV9jb250ZXh0LCBjb25zdF9jYXN0PEpTT2JqZWN0UmVmPihtX2V4
Y2VwdGlvbiksIGxpbmVOdW1iZXJQcm9wZXJ0eU5hbWUuZ2V0KCksICZleGNlcHRpb24pOworICAg
IGludCByZXN1bHQgPSBKU1ZhbHVlVG9OdW1iZXIobV9jb250ZXh0LCBsaW5lTnVtYmVyLCAmZXhj
ZXB0aW9uKTsKKyAgICByZXR1cm4gZXhjZXB0aW9uID8gLTEgOiByZXN1bHQ7Cit9CisKK1FTdHJp
bmdMaXN0IFFTY3JpcHRFbmdpbmVQcml2YXRlOjp1bmNhdWdodEV4Y2VwdGlvbkJhY2t0cmFjZSgp
IGNvbnN0Cit7CisgICAgaWYgKCFoYXNVbmNhdWdodEV4Y2VwdGlvbigpIHx8ICFKU1ZhbHVlSXNP
YmplY3QobV9jb250ZXh0LCBtX2V4Y2VwdGlvbikpCisgICAgICAgIHJldHVybiBRU3RyaW5nTGlz
dCgpOworCisgICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOworICAgIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBmaWxlTmFtZVByb3BlcnR5TmFtZShBZG9wdCwgUVNjcmlwdENvbnZlcnRlcjo6
dG9TdHJpbmcoInNvdXJjZVVSTCIpKTsKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gbGlu
ZU51bWJlclByb3BlcnR5TmFtZShBZG9wdCwgUVNjcmlwdENvbnZlcnRlcjo6dG9TdHJpbmcoImxp
bmUiKSk7CisgICAgSlNWYWx1ZVJlZiBqc0ZpbGVOYW1lID0gSlNPYmplY3RHZXRQcm9wZXJ0eSht
X2NvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fZXhjZXB0aW9uKSwgZmlsZU5hbWVQ
cm9wZXJ0eU5hbWUuZ2V0KCksICZleGNlcHRpb24pOworICAgIEpTVmFsdWVSZWYganNMaW5lTnVt
YmVyID0gSlNPYmplY3RHZXRQcm9wZXJ0eShtX2NvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RS
ZWY+KG1fZXhjZXB0aW9uKSwgbGluZU51bWJlclByb3BlcnR5TmFtZS5nZXQoKSwgJmV4Y2VwdGlv
bik7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGZpbGVOYW1lKEFkb3B0LCBKU1ZhbHVl
VG9TdHJpbmdDb3B5KG1fY29udGV4dCwganNGaWxlTmFtZSwgJmV4Y2VwdGlvbikpOworICAgIGlu
dCBsaW5lTnVtYmVyID0gSlNWYWx1ZVRvTnVtYmVyKG1fY29udGV4dCwganNMaW5lTnVtYmVyLCAm
ZXhjZXB0aW9uKTsKKyAgICByZXR1cm4gUVN0cmluZ0xpc3QoUVN0cmluZzo6ZnJvbUxhdGluMSgi
PGFub255bW91cz4oKUAlMDolMSIpCisgICAgICAgICAgICAuYXJnKFFTY3JpcHRDb252ZXJ0ZXI6
OnRvU3RyaW5nKGZpbGVOYW1lLmdldCgpKSkKKyAgICAgICAgICAgIC5hcmcoUVNjcmlwdENvbnZl
cnRlcjo6dG9TdHJpbmcoZXhjZXB0aW9uID8gLTEgOiBsaW5lTnVtYmVyKSkpOworfQorCiB2b2lk
IFFTY3JpcHRFbmdpbmVQcml2YXRlOjpjb2xsZWN0R2FyYmFnZSgpCiB7CiAgICAgSlNHYXJiYWdl
Q29sbGVjdChtX2NvbnRleHQpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3Fz
Y3JpcHR2YWx1ZV9wLmggYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3AuaApp
bmRleCAzM2NlZmNmLi5lYTZhZjUxIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkv
cXNjcmlwdHZhbHVlX3AuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVl
X3AuaApAQCAtNDM4LDcgKzQzOCw5IEBAIFFTdHJpbmcgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6dG9T
dHJpbmcoKSBjb25zdAogICAgIGNhc2UgSlNWYWx1ZToKICAgICBjYXNlIEpTUHJpbWl0aXZlOgog
ICAgIGNhc2UgSlNPYmplY3Q6Ci0gICAgICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwdHIo
QWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoKm1fZW5naW5lLCAqdGhpcywgLyogZXhjZXB0aW9u
ICovIDApKTsKKyAgICAgICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOworICAgICAgICBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gcHRyKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KCptX2Vu
Z2luZSwgKnRoaXMsICZleGNlcHRpb24pKTsKKyAgICAgICAgbV9lbmdpbmUtPnNldEV4Y2VwdGlv
bihleGNlcHRpb24pOwogICAgICAgICByZXR1cm4gUVNjcmlwdENvbnZlcnRlcjo6dG9TdHJpbmco
cHRyLmdldCgpKTsKICAgICB9CiAKQEAgLTQ1Miw3ICs0NTQsMTIgQEAgcXNyZWFsIFFTY3JpcHRW
YWx1ZVByaXZhdGU6OnRvTnVtYmVyKCkgY29uc3QKICAgICBjYXNlIEpTVmFsdWU6CiAgICAgY2Fz
ZSBKU1ByaW1pdGl2ZToKICAgICBjYXNlIEpTT2JqZWN0OgotICAgICAgICByZXR1cm4gSlNWYWx1
ZVRvTnVtYmVyKCptX2VuZ2luZSwgKnRoaXMsIC8qIGV4Y2VwdGlvbiAqLyAwKTsKKyAgICAgICAg
eworICAgICAgICAgICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOworICAgICAgICAgICAgcXNy
ZWFsIHJlc3VsdCA9IEpTVmFsdWVUb051bWJlcigqbV9lbmdpbmUsICp0aGlzLCAmZXhjZXB0aW9u
KTsKKyAgICAgICAgICAgIG1fZW5naW5lLT5zZXRFeGNlcHRpb24oZXhjZXB0aW9uKTsKKyAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KICAgICBjYXNlIENOdW1iZXI6CiAgICAg
ICAgIHJldHVybiB1Lm1fbnVtYmVyOwogICAgIGNhc2UgQ0Jvb2w6CkBAIC01ODEsOSArNTg4LDEz
IEBAIFFTY3JpcHRWYWx1ZVByaXZhdGUqIFFTY3JpcHRWYWx1ZVByaXZhdGU6OnRvT2JqZWN0KFFT
Y3JpcHRFbmdpbmVQcml2YXRlKiBlbmdpbmUpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChl
bmdpbmUgIT0gdGhpcy0+ZW5naW5lKCkpCiAgICAgICAgICAgICAgICAgcVdhcm5pbmcoIlFTY3Jp
cHRFbmdpbmU6OnRvT2JqZWN0OiBjYW5ub3QgY29udmVydCB2YWx1ZSBjcmVhdGVkIGluIGEgZGlm
ZmVyZW50IGVuZ2luZSIpOwotICAgICAgICAgICAgSlNPYmplY3RSZWYgb2JqZWN0ID0gSlNWYWx1
ZVRvT2JqZWN0KCptX2VuZ2luZSwgKnRoaXMsIC8qIGV4Y2VwdGlvbiAqLyAwKTsKKyAgICAgICAg
ICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKKyAgICAgICAgICAgIEpTT2JqZWN0UmVmIG9i
amVjdCA9IEpTVmFsdWVUb09iamVjdCgqbV9lbmdpbmUsICp0aGlzLCAmZXhjZXB0aW9uKTsKICAg
ICAgICAgICAgIGlmIChvYmplY3QpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBRU2NyaXB0
VmFsdWVQcml2YXRlKG1fZW5naW5lLmNvbnN0RGF0YSgpLCBvYmplY3QpOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIG1fZW5naW5lLT5zZXRFeGNlcHRpb24oZXhjZXB0aW9uLCBR
U2NyaXB0RW5naW5lUHJpdmF0ZTo6Tm90TnVsbCk7CisKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gbmV3IFFTY3JpcHRWYWx1ZVByaXZhdGU7CiAgICAgY2FzZSBKU09iamVjdDoKQEAgLTYzOSw3
ICs2NTAsMTAgQEAgYm9vbCBRU2NyaXB0VmFsdWVQcml2YXRlOjplcXVhbHMoUVNjcmlwdFZhbHVl
UHJpdmF0ZSogb3RoZXIpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gSlNWYWx1ZUlz
RXF1YWwoKm1fZW5naW5lLCAqdGhpcywgKm90aGVyLCAvKiBleGNlcHRpb24gKi8gMCk7CisgICAg
SlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOworICAgIGJvb2wgcmVzdWx0ID0gSlNWYWx1ZUlzRXF1
YWwoKm1fZW5naW5lLCAqdGhpcywgKm90aGVyLCAmZXhjZXB0aW9uKTsKKyAgICBtX2VuZ2luZS0+
c2V0RXhjZXB0aW9uKGV4Y2VwdGlvbik7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBR
U2NyaXB0VmFsdWVQcml2YXRlOjpzdHJpY3RseUVxdWFscyhRU2NyaXB0VmFsdWVQcml2YXRlKiBv
dGhlcikKQEAgLTY4Myw3ICs2OTcsMTAgQEAgaW5saW5lIGJvb2wgUVNjcmlwdFZhbHVlUHJpdmF0
ZTo6aW5zdGFuY2VPZihRU2NyaXB0VmFsdWVQcml2YXRlKiBvdGhlcikKIHsKICAgICBpZiAoIWlz
SlNCYXNlZCgpIHx8ICFvdGhlci0+aXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIHJldHVybiBKU1ZhbHVlSXNJbnN0YW5jZU9mQ29uc3RydWN0b3IoKm1fZW5naW5lLCAqdGhp
cywgKm90aGVyLCAvKiBleGNlcHRpb24gKi8gMCk7CisgICAgSlNWYWx1ZVJlZiBleGNlcHRpb24g
PSAwOworICAgIGJvb2wgcmVzdWx0ID0gSlNWYWx1ZUlzSW5zdGFuY2VPZkNvbnN0cnVjdG9yKCpt
X2VuZ2luZSwgKnRoaXMsICpvdGhlciwgJmV4Y2VwdGlvbik7CisgICAgbV9lbmdpbmUtPnNldEV4
Y2VwdGlvbihleGNlcHRpb24pOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIC8qIQpAQCAtNzQ4
LDggKzc2NSwxMCBAQCBRU2NyaXB0VmFsdWVQcml2YXRlKiBRU2NyaXB0VmFsdWVQcml2YXRlOjpj
YWxsKGNvbnN0IFFTY3JpcHRWYWx1ZVByaXZhdGUqLCBjb25zdAogICAgICAgICAgICAgLy8gTWFr
ZSB0aGUgY2FsbAogICAgICAgICAgICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOwogICAgICAg
ICAgICAgSlNWYWx1ZVJlZiByZXN1bHQgPSBKU09iamVjdENhbGxBc0Z1bmN0aW9uKCptX2VuZ2lu
ZSwgKnRoaXMsIC8qIHRoaXNPYmplY3QgKi8gMCwgYXJnYywgYXJndi5jb25zdERhdGEoKSwgJmV4
Y2VwdGlvbik7Ci0gICAgICAgICAgICBpZiAoIXJlc3VsdCAmJiBleGNlcHRpb24pCisgICAgICAg
ICAgICBpZiAoIXJlc3VsdCAmJiBleGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgICBtX2VuZ2lu
ZS0+c2V0RXhjZXB0aW9uKGV4Y2VwdGlvbik7CiAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBR
U2NyaXB0VmFsdWVQcml2YXRlKGVuZ2luZSgpLCBleGNlcHRpb24pOworICAgICAgICAgICAgfQog
ICAgICAgICAgICAgaWYgKHJlc3VsdCAmJiAhZXhjZXB0aW9uKQogICAgICAgICAgICAgICAgIHJl
dHVybiBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZShlbmdpbmUoKSwgcmVzdWx0KTsKICAgICAgICAg
fQpAQCAtNzkwLDkgKzgwOSwxMiBAQCBib29sIFFTY3JpcHRWYWx1ZVByaXZhdGU6OmluaGVyaXRz
KGNvbnN0IGNoYXIqIG5hbWUpCiAgICAgUV9BU1NFUlQoaXNKU0Jhc2VkKCkpOwogICAgIEpTT2Jq
ZWN0UmVmIGdsb2JhbE9iamVjdCA9IEpTQ29udGV4dEdldEdsb2JhbE9iamVjdCgqbV9lbmdpbmUp
OwogICAgIEpTU3RyaW5nUmVmIGVycm9yQXR0ck5hbWUgPSBRU2NyaXB0Q29udmVydGVyOjp0b1N0
cmluZyhuYW1lKTsKLSAgICBKU1ZhbHVlUmVmIGVycm9yID0gSlNPYmplY3RHZXRQcm9wZXJ0eSgq
bV9lbmdpbmUsIGdsb2JhbE9iamVjdCwgZXJyb3JBdHRyTmFtZSwgLyogZXhjZXB0aW9uICovIDAp
OworICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKKyAgICBKU1ZhbHVlUmVmIGVycm9yID0g
SlNPYmplY3RHZXRQcm9wZXJ0eSgqbV9lbmdpbmUsIGdsb2JhbE9iamVjdCwgZXJyb3JBdHRyTmFt
ZSwgJmV4Y2VwdGlvbik7CiAgICAgSlNTdHJpbmdSZWxlYXNlKGVycm9yQXR0ck5hbWUpOwotICAg
IHJldHVybiBKU1ZhbHVlSXNJbnN0YW5jZU9mQ29uc3RydWN0b3IoKm1fZW5naW5lLCAqdGhpcywg
SlNWYWx1ZVRvT2JqZWN0KCptX2VuZ2luZSwgZXJyb3IsIC8qIGV4Y2VwdGlvbiAqLyAwKSwgLyog
ZXhjZXB0aW9uICovIDApOworICAgIGJvb2wgcmVzdWx0ID0gSlNWYWx1ZUlzSW5zdGFuY2VPZkNv
bnN0cnVjdG9yKCptX2VuZ2luZSwgKnRoaXMsIEpTVmFsdWVUb09iamVjdCgqbV9lbmdpbmUsIGVy
cm9yLCAmZXhjZXB0aW9uKSwgJmV4Y2VwdGlvbik7CisgICAgbV9lbmdpbmUtPnNldEV4Y2VwdGlv
bihleGNlcHRpb24pOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIC8qIQpkaWZmIC0tZ2l0IGEv
SmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdGVuZ2luZS90c3RfcXNjcmlwdGVuZ2luZS5j
cHAgYi9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0ZW5naW5lL3RzdF9xc2NyaXB0ZW5n
aW5lLmNwcAppbmRleCBkNTQ1ZjM3Li5mZTBjZGYyIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9xdC90ZXN0cy9xc2NyaXB0ZW5naW5lL3RzdF9xc2NyaXB0ZW5naW5lLmNwcAorKysgYi9KYXZh
U2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0ZW5naW5lL3RzdF9xc2NyaXB0ZW5naW5lLmNwcApA
QCAtNDcsNiArNDcsNyBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQgY2hlY2tTeW50YXgoKTsK
ICAgICB2b2lkIHRvT2JqZWN0KCk7CiAgICAgdm9pZCB0b09iamVjdFR3b0VuZ2luZXMoKTsKKyAg
ICB2b2lkIHVuY2F1Z2h0RXhjZXB0aW9uKCk7CiB9OwogCiAvKiBFdmFsdWF0aW5nIGEgc2NyaXB0
IHRoYXQgdGhyb3cgYW4gdW5oYW5kbGVkIGV4Y2VwdGlvbiBzaG91bGQgcmV0dXJuIGFuIGludmFs
aWQgdmFsdWUuICovCkBAIC00MDksNSArNDEwLDg1IEBAIHZvaWQgdHN0X1FTY3JpcHRFbmdpbmU6
OnRvT2JqZWN0VHdvRW5naW5lcygpCiAgICAgfQogfQogCit2b2lkIHRzdF9RU2NyaXB0RW5naW5l
Ojp1bmNhdWdodEV4Y2VwdGlvbigpCit7CisgICAgUVNjcmlwdEVuZ2luZSBlbmc7CisgICAgUVNj
cmlwdFZhbHVlIGZ1biA9IGVuZy5ldmFsdWF0ZSgiKGZ1bmN0aW9uIGZvbyAoKSB7IHJldHVybiBu
dWxsOyB9KTsiKTsKKyAgICBRVkVSSUZZKCFlbmcudW5jYXVnaHRFeGNlcHRpb24oKS5pc1ZhbGlk
KCkpOworICAgIFFWRVJJRlkoZnVuLmlzRnVuY3Rpb24oKSk7CisgICAgUVNjcmlwdFZhbHVlIHRo
cm93RnVuID0gZW5nLmV2YWx1YXRlKCIoIGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3IoJ1Bv
bmcnKTsgfSk7Iik7CisgICAgUVZFUklGWSh0aHJvd0Z1bi5pc0Z1bmN0aW9uKCkpOworICAgIHsK
KyAgICAgICAgZW5nLmV2YWx1YXRlKCJhID0gMTAiKTsKKyAgICAgICAgUVZFUklGWSghZW5nLmhh
c1VuY2F1Z2h0RXhjZXB0aW9uKCkpOworICAgICAgICBRVkVSSUZZKCFlbmcudW5jYXVnaHRFeGNl
cHRpb24oKS5pc1ZhbGlkKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIGVuZy5ldmFsdWF0ZSgi
MSA9IDIiKTsKKyAgICAgICAgUVZFUklGWShlbmcuaGFzVW5jYXVnaHRFeGNlcHRpb24oKSk7Cisg
ICAgICAgIGVuZy5jbGVhckV4Y2VwdGlvbnMoKTsKKyAgICAgICAgUVZFUklGWSghZW5nLmhhc1Vu
Y2F1Z2h0RXhjZXB0aW9uKCkpOworICAgIH0KKyAgICB7CisgICAgICAgIC8vIENoZWNrIGlmIHRo
ZSBjYWxsIG9yIHRvU3RyaW5nIGZ1bmN0aW9ucyBjYW4gcmVtb3ZlIHRoZSBsYXN0IGV4Y2VwdGlv
bi4KKyAgICAgICAgUVZFUklGWSh0aHJvd0Z1bi5jYWxsKCkuaXNFcnJvcigpKTsKKyAgICAgICAg
UVZFUklGWShlbmcuaGFzVW5jYXVnaHRFeGNlcHRpb24oKSk7CisgICAgICAgIFFTY3JpcHRWYWx1
ZSBleGNlcHRpb24gPSBlbmcudW5jYXVnaHRFeGNlcHRpb24oKTsKKyAgICAgICAgZnVuLmNhbGwo
KTsKKyAgICAgICAgZXhjZXB0aW9uLnRvU3RyaW5nKCk7CisgICAgICAgIFFWRVJJRlkoZW5nLmhh
c1VuY2F1Z2h0RXhjZXB0aW9uKCkpOworICAgICAgICBRVkVSSUZZKGVuZy51bmNhdWdodEV4Y2Vw
dGlvbigpLnN0cmljdGx5RXF1YWxzKGV4Y2VwdGlvbikpOworICAgIH0KKyAgICBlbmcuY2xlYXJF
eGNlcHRpb25zKCk7CisgICAgeworICAgICAgICAvLyBDaGVjayBpZiBpbiB0aGUgY2FsbCBmdW5j
dGlvbiBhIG5ldyBleGNlcHRpb24gY2FuIG92ZXJyaWRlIGFuIGV4aXN0aW5nIG9uZS4KKyAgICAg
ICAgdGhyb3dGdW4uY2FsbCgpOworICAgICAgICBRVkVSSUZZKGVuZy5oYXNVbmNhdWdodEV4Y2Vw
dGlvbigpKTsKKyAgICAgICAgUVNjcmlwdFZhbHVlIGV4Y2VwdGlvbiA9IGVuZy51bmNhdWdodEV4
Y2VwdGlvbigpOworICAgICAgICB0aHJvd0Z1bi5jYWxsKCk7CisgICAgICAgIFFWRVJJRlkoZW5n
Lmhhc1VuY2F1Z2h0RXhjZXB0aW9uKCkpOworICAgICAgICBRVkVSSUZZKCFleGNlcHRpb24uc3Ry
aWN0bHlFcXVhbHMoZW5nLnVuY2F1Z2h0RXhjZXB0aW9uKCkpKTsKKyAgICB9CisgICAgeworICAg
ICAgICBlbmcuZXZhbHVhdGUoInRocm93RnVuID0gKGZ1bmN0aW9uIGZvbyAoKSB7IHRocm93IG5l
dyBFcnJvcignYmxhJykgfSk7Iik7CisgICAgICAgIGVuZy5ldmFsdWF0ZSgiMTtcbnRocm93RnVu
KCk7Iik7CisgICAgICAgIFFWRVJJRlkoZW5nLmhhc1VuY2F1Z2h0RXhjZXB0aW9uKCkpOworICAg
ICAgICBRQ09NUEFSRShlbmcudW5jYXVnaHRFeGNlcHRpb25MaW5lTnVtYmVyKCksIDEpOworICAg
ICAgICBlbmcuY2xlYXJFeGNlcHRpb25zKCk7CisgICAgICAgIFFWRVJJRlkoIWVuZy5oYXNVbmNh
dWdodEV4Y2VwdGlvbigpKTsKKyAgICB9CisgICAgZm9yIChpbnQgeCA9IDE7IHggPCA0OyArK3gp
IHsKKyAgICAgICAgUVNjcmlwdFZhbHVlIHJldCA9IGVuZy5ldmFsdWF0ZSgiYSA9IDEwO1xuYiA9
IDIwO1xuMCA9IDA7XG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFFTdHJpbmc6OmZyb21MYXRpbjEoIkZvb1NjcmlwdCIpICsgUVN0cmluZzo6bnVtYmVyKHgpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGxpbmVOdW1iZXIgKi8g
eCk7CisgICAgICAgIFFWRVJJRlkoZW5nLmhhc1VuY2F1Z2h0RXhjZXB0aW9uKCkpOworICAgICAg
ICBRQ09NUEFSRShlbmcudW5jYXVnaHRFeGNlcHRpb25MaW5lTnVtYmVyKCksIHggKyAyKTsKKyAg
ICAgICAgUVZFUklGWShlbmcudW5jYXVnaHRFeGNlcHRpb24oKS5zdHJpY3RseUVxdWFscyhyZXQp
KTsKKyAgICAgICAgUVZFUklGWShlbmcuaGFzVW5jYXVnaHRFeGNlcHRpb24oKSk7CisgICAgICAg
IFFWRVJJRlkoZW5nLnVuY2F1Z2h0RXhjZXB0aW9uKCkuc3RyaWN0bHlFcXVhbHMocmV0KSk7Cisg
ICAgICAgIFFTdHJpbmcgYmFja3RyYWNlID0gUVN0cmluZzo6ZnJvbUxhdGluMSgiPGFub255bW91
cz4oKUBGb29TY3JpcHQiKSArIFFTdHJpbmc6Om51bWJlcih4KSArICI6IiArIFFTdHJpbmc6Om51
bWJlcih4ICsgMik7CisgICAgICAgIFFDT01QQVJFKGVuZy51bmNhdWdodEV4Y2VwdGlvbkJhY2t0
cmFjZSgpLmpvaW4oIiIpLCBiYWNrdHJhY2UpOworICAgICAgICBRVkVSSUZZKGZ1bi5jYWxsKCku
aXNOdWxsKCkpOworICAgICAgICBRVkVSSUZZKGVuZy5oYXNVbmNhdWdodEV4Y2VwdGlvbigpKTsK
KyAgICAgICAgUUNPTVBBUkUoZW5nLnVuY2F1Z2h0RXhjZXB0aW9uTGluZU51bWJlcigpLCB4ICsg
Mik7CisgICAgICAgIFFWRVJJRlkoZW5nLnVuY2F1Z2h0RXhjZXB0aW9uKCkuc3RyaWN0bHlFcXVh
bHMocmV0KSk7CisgICAgICAgIGVuZy5jbGVhckV4Y2VwdGlvbnMoKTsKKyAgICAgICAgUVZFUklG
WSghZW5nLmhhc1VuY2F1Z2h0RXhjZXB0aW9uKCkpOworICAgICAgICBRQ09NUEFSRShlbmcudW5j
YXVnaHRFeGNlcHRpb25MaW5lTnVtYmVyKCksIC0xKTsKKyAgICAgICAgUVZFUklGWSghZW5nLnVu
Y2F1Z2h0RXhjZXB0aW9uKCkuaXNWYWxpZCgpKTsKKyAgICAgICAgZW5nLmV2YWx1YXRlKCIyID0g
MyIpOworICAgICAgICBRVkVSSUZZKGVuZy5oYXNVbmNhdWdodEV4Y2VwdGlvbigpKTsKKyAgICAg
ICAgUVNjcmlwdFZhbHVlIHJldDIgPSB0aHJvd0Z1bi5jYWxsKCk7CisgICAgICAgIFFWRVJJRlko
cmV0Mi5pc0Vycm9yKCkpOworICAgICAgICBRVkVSSUZZKGVuZy5oYXNVbmNhdWdodEV4Y2VwdGlv
bigpKTsKKyAgICAgICAgUVZFUklGWShlbmcudW5jYXVnaHRFeGNlcHRpb24oKS5zdHJpY3RseUVx
dWFscyhyZXQyKSk7CisgICAgICAgIFFDT01QQVJFKGVuZy51bmNhdWdodEV4Y2VwdGlvbkxpbmVO
dW1iZXIoKSwgMSk7CisgICAgICAgIGVuZy5jbGVhckV4Y2VwdGlvbnMoKTsKKyAgICAgICAgUVZF
UklGWSghZW5nLmhhc1VuY2F1Z2h0RXhjZXB0aW9uKCkpOworICAgICAgICBlbmcuZXZhbHVhdGUo
IjEgKyAyIik7CisgICAgICAgIFFWRVJJRlkoIWVuZy5oYXNVbmNhdWdodEV4Y2VwdGlvbigpKTsK
KyAgICB9Cit9CisKIFFURVNUX01BSU4odHN0X1FTY3JpcHRFbmdpbmUpCiAjaW5jbHVkZSAidHN0
X3FzY3JpcHRlbmdpbmUubW9jIgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>60108</attachid>
            <date>2010-06-30 04:21:50 -0700</date>
            <delta_ts>2010-07-02 01:43:49 -0700</delta_ts>
            <desc>Fix v1.01</desc>
            <filename>exc.diff</filename>
            <type>text/plain</type>
            <size>20297</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3Jl
L3F0L0NoYW5nZUxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44NjcxOWNh
Ci0tLSAvZGV2L251bGwKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvQ2hhbmdlTG9nCkBAIC0wLDAg
KzEsNDMgQEAKKzIwMTAtMDYtMjggIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93YWNraUBu
b2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IGV4Y2VwdGlvbiByZXBvcnRpbmcgaW4gdGhlIFF0U2NyaXB0IEFQSS4KKwor
ICAgICAgICBUaGUgZXhjZXB0aW9uIHNob3VsZCBiZSBhY2Nlc3NpYmxlIHRocm91Z2ggdGhlIEFQ
SSBieSB0aGUgdW5jYXVnaHRFeGNlcHRpb24KKyAgICAgICAgZnVuY3Rpb24uIEZ1bmN0aW9uczsg
aGFzVW5jYXVnaHRFeGNlcHRpb24sIGNsZWFyRXhjZXB0aW9ucywgdW5jYXVnaHRFeGNlcHRpb25M
aW5lTnVtYmVyLAorICAgICAgICB1bmNhdWdodEV4Y2VwdGlvbkJhY2t0cmFjZSB3ZXJlIGFkZGVk
IHRvIGZhY2lsaXRhdGUgZXJyb3IgY2hlY2tpbmcgYW5kIGRlYnVnZ2luZy4KKworICAgICAgICBb
UXRdIFF0U2NyaXB0IEFQSSBzaG91bGQgYmUgZXhjZXB0aW9ucyBhd2FyZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxMTk5CisKKyAgICAgICAgKiBh
cGkvcXNjcmlwdGVuZ2luZS5jcHA6CisgICAgICAgIChRU2NyaXB0RW5naW5lOjpoYXNVbmNhdWdo
dEV4Y2VwdGlvbik6CisgICAgICAgIChRU2NyaXB0RW5naW5lOjp1bmNhdWdodEV4Y2VwdGlvbik6
CisgICAgICAgIChRU2NyaXB0RW5naW5lOjpjbGVhckV4Y2VwdGlvbnMpOgorICAgICAgICAoUVNj
cmlwdEVuZ2luZTo6dW5jYXVnaHRFeGNlcHRpb25MaW5lTnVtYmVyKToKKyAgICAgICAgKFFTY3Jp
cHRFbmdpbmU6OnVuY2F1Z2h0RXhjZXB0aW9uQmFja3RyYWNlKToKKyAgICAgICAgKiBhcGkvcXNj
cmlwdGVuZ2luZS5oOgorICAgICAgICAqIGFwaS9xc2NyaXB0ZW5naW5lX3AuY3BwOgorICAgICAg
ICAoUVNjcmlwdEVuZ2luZVByaXZhdGU6OlFTY3JpcHRFbmdpbmVQcml2YXRlKToKKyAgICAgICAg
KFFTY3JpcHRFbmdpbmVQcml2YXRlOjp+UVNjcmlwdEVuZ2luZVByaXZhdGUpOgorICAgICAgICAo
UVNjcmlwdEVuZ2luZVByaXZhdGU6OnVuY2F1Z2h0RXhjZXB0aW9uKToKKyAgICAgICAgKiBhcGkv
cXNjcmlwdGVuZ2luZV9wLmg6CisgICAgICAgIChRU2NyaXB0RW5naW5lUHJpdmF0ZTo6KToKKyAg
ICAgICAgKFFTY3JpcHRFbmdpbmVQcml2YXRlOjpldmFsdWF0ZSk6CisgICAgICAgIChRU2NyaXB0
RW5naW5lUHJpdmF0ZTo6aGFzVW5jYXVnaHRFeGNlcHRpb24pOgorICAgICAgICAoUVNjcmlwdEVu
Z2luZVByaXZhdGU6OmNsZWFyRXhjZXB0aW9ucyk6CisgICAgICAgIChRU2NyaXB0RW5naW5lUHJp
dmF0ZTo6c2V0RXhjZXB0aW9uKToKKyAgICAgICAgKFFTY3JpcHRFbmdpbmVQcml2YXRlOjp1bmNh
dWdodEV4Y2VwdGlvbkxpbmVOdW1iZXIpOgorICAgICAgICAoUVNjcmlwdEVuZ2luZVByaXZhdGU6
OnVuY2F1Z2h0RXhjZXB0aW9uQmFja3RyYWNlKToKKyAgICAgICAgKiBhcGkvcXNjcmlwdHZhbHVl
X3AuaDoKKyAgICAgICAgKFFTY3JpcHRWYWx1ZVByaXZhdGU6OnRvU3RyaW5nKToKKyAgICAgICAg
KFFTY3JpcHRWYWx1ZVByaXZhdGU6OnRvTnVtYmVyKToKKyAgICAgICAgKFFTY3JpcHRWYWx1ZVBy
aXZhdGU6OnRvT2JqZWN0KToKKyAgICAgICAgKFFTY3JpcHRWYWx1ZVByaXZhdGU6OmVxdWFscyk6
CisgICAgICAgIChRU2NyaXB0VmFsdWVQcml2YXRlOjppbnN0YW5jZU9mKToKKyAgICAgICAgKFFT
Y3JpcHRWYWx1ZVByaXZhdGU6OmNhbGwpOgorICAgICAgICAoUVNjcmlwdFZhbHVlUHJpdmF0ZTo6
aW5oZXJpdHMpOgorICAgICAgICAqIHRlc3RzL3FzY3JpcHRlbmdpbmUvdHN0X3FzY3JpcHRlbmdp
bmUuY3BwOgorICAgICAgICAodHN0X1FTY3JpcHRFbmdpbmU6OnVuY2F1Z2h0RXhjZXB0aW9uKToK
KwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuY3BwIGIv
SmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuY3BwCmluZGV4IGNkNDgxMTYuLjRi
MjMxOWIgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lLmNw
cAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZS5jcHAKQEAgLTk2LDYg
Kzk2LDcxIEBAIFFTY3JpcHRWYWx1ZSBRU2NyaXB0RW5naW5lOjpldmFsdWF0ZShjb25zdCBRU2Ny
aXB0UHJvZ3JhbSYgcHJvZ3JhbSkKIH0KIAogLyohCisgICAgUmV0dXJucyB0cnVlIGlmIHRoZSBs
YXN0IHNjcmlwdCBldmFsdWF0aW9uIHJlc3VsdGVkIGluIGFuIHVuY2F1Z2h0CisgICAgZXhjZXB0
aW9uOyBvdGhlcndpc2UgcmV0dXJucyBmYWxzZS4KKworICAgIFRoZSBleGNlcHRpb24gc3RhdGUg
aXMgY2xlYXJlZCB3aGVuIGV2YWx1YXRlKCkgaXMgY2FsbGVkLgorCisgICAgXHNhIHVuY2F1Z2h0
RXhjZXB0aW9uKCksIHVuY2F1Z2h0RXhjZXB0aW9uTGluZU51bWJlcigpLAorICAgICAgdW5jYXVn
aHRFeGNlcHRpb25CYWNrdHJhY2UoKQorKi8KK2Jvb2wgUVNjcmlwdEVuZ2luZTo6aGFzVW5jYXVn
aHRFeGNlcHRpb24oKSBjb25zdAoreworICAgIHJldHVybiBkX3B0ci0+aGFzVW5jYXVnaHRFeGNl
cHRpb24oKTsKK30KKworLyohCisgICAgUmV0dXJucyB0aGUgY3VycmVudCB1bmNhdWdodCBleGNl
cHRpb24sIG9yIGFuIGludmFsaWQgUVNjcmlwdFZhbHVlCisgICAgaWYgdGhlcmUgaXMgbm8gdW5j
YXVnaHQgZXhjZXB0aW9uLgorCisgICAgVGhlIGV4Y2VwdGlvbiB2YWx1ZSBpcyB0eXBpY2FsbHkg
YW4gXGN7RXJyb3J9IG9iamVjdDsgaW4gdGhhdCBjYXNlLAorICAgIHlvdSBjYW4gY2FsbCB0b1N0
cmluZygpIG9uIHRoZSByZXR1cm4gdmFsdWUgdG8gb2J0YWluIGFuIGVycm9yCisgICAgbWVzc2Fn
ZS4KKworICAgIFxzYSBoYXNVbmNhdWdodEV4Y2VwdGlvbigpLCB1bmNhdWdodEV4Y2VwdGlvbkxp
bmVOdW1iZXIoKSwKKyAgICAgIHVuY2F1Z2h0RXhjZXB0aW9uQmFja3RyYWNlKCkKKyovCitRU2Ny
aXB0VmFsdWUgUVNjcmlwdEVuZ2luZTo6dW5jYXVnaHRFeGNlcHRpb24oKSBjb25zdAoreworICAg
IHJldHVybiBRU2NyaXB0VmFsdWVQcml2YXRlOjpnZXQoZF9wdHItPnVuY2F1Z2h0RXhjZXB0aW9u
KCkpOworfQorCisvKiEKKyAgICBDbGVhcnMgYW55IHVuY2F1Z2h0IGV4Y2VwdGlvbnMgaW4gdGhp
cyBlbmdpbmUuCisKKyAgICBcc2EgaGFzVW5jYXVnaHRFeGNlcHRpb24oKQorKi8KK3ZvaWQgUVNj
cmlwdEVuZ2luZTo6Y2xlYXJFeGNlcHRpb25zKCkKK3sKKyAgICBkX3B0ci0+Y2xlYXJFeGNlcHRp
b25zKCk7Cit9CisKKy8qIQorICAgIFJldHVybnMgdGhlIGxpbmUgbnVtYmVyIHdoZXJlIHRoZSBs
YXN0IHVuY2F1Z2h0IGV4Y2VwdGlvbiBvY2N1cnJlZC4KKworICAgIExpbmUgbnVtYmVycyBhcmUg
MS1iYXNlZCwgdW5sZXNzIGEgZGlmZmVyZW50IGJhc2Ugd2FzIHNwZWNpZmllZCBhcworICAgIHRo
ZSBzZWNvbmQgYXJndW1lbnQgdG8gZXZhbHVhdGUoKS4KKworICAgIFxzYSBoYXNVbmNhdWdodEV4
Y2VwdGlvbigpLCB1bmNhdWdodEV4Y2VwdGlvbkJhY2t0cmFjZSgpCisqLworaW50IFFTY3JpcHRF
bmdpbmU6OnVuY2F1Z2h0RXhjZXB0aW9uTGluZU51bWJlcigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IGRfcHRyLT51bmNhdWdodEV4Y2VwdGlvbkxpbmVOdW1iZXIoKTsKK30KKworLyohCisgICAgUmV0
dXJucyBhIGh1bWFuLXJlYWRhYmxlIGJhY2t0cmFjZSBvZiB0aGUgbGFzdCB1bmNhdWdodCBleGNl
cHRpb24uCisKKyAgICBFYWNoIGxpbmUgaXMgb2YgdGhlIGZvcm0gXGN7PGZ1bmN0aW9uLW5hbWU+
KDxhcmd1bWVudHM+KUA8ZmlsZS1uYW1lPjo8bGluZS1udW1iZXI+fS4KKworICAgIFxzYSB1bmNh
dWdodEV4Y2VwdGlvbigpCisqLworUVN0cmluZ0xpc3QgUVNjcmlwdEVuZ2luZTo6dW5jYXVnaHRF
eGNlcHRpb25CYWNrdHJhY2UoKSBjb25zdAoreworICAgIHJldHVybiBkX3B0ci0+dW5jYXVnaHRF
eGNlcHRpb25CYWNrdHJhY2UoKTsKK30KKworLyohCiAgICAgUnVucyB0aGUgZ2FyYmFnZSBjb2xs
ZWN0b3IuCiAKICAgICBUaGUgZ2FyYmFnZSBjb2xsZWN0b3Igd2lsbCBhdHRlbXB0IHRvIHJlY2xh
aW0gbWVtb3J5IGJ5IGxvY2F0aW5nIGFuZCBkaXNwb3Npbmcgb2Ygb2JqZWN0cyB0aGF0IGFyZQpk
aWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuaCBiL0phdmFT
Y3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lLmgKaW5kZXggYzAwODEwOS4uMWE4N2EzNyAx
MDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdpbmUuaAorKysgYi9K
YXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZS5oCkBAIC00Miw2ICs0MiwxMiBAQCBw
dWJsaWM6CiAgICAgUVNjcmlwdFZhbHVlIGV2YWx1YXRlKGNvbnN0IFFTdHJpbmcmIHByb2dyYW0s
IGNvbnN0IFFTdHJpbmcmIGZpbGVOYW1lID0gUVN0cmluZygpLCBpbnQgbGluZU51bWJlciA9IDEp
OwogICAgIFFTY3JpcHRWYWx1ZSBldmFsdWF0ZShjb25zdCBRU2NyaXB0UHJvZ3JhbSYgcHJvZ3Jh
bSk7CiAKKyAgICBib29sIGhhc1VuY2F1Z2h0RXhjZXB0aW9uKCkgY29uc3Q7CisgICAgUVNjcmlw
dFZhbHVlIHVuY2F1Z2h0RXhjZXB0aW9uKCkgY29uc3Q7CisgICAgdm9pZCBjbGVhckV4Y2VwdGlv
bnMoKTsKKyAgICBpbnQgdW5jYXVnaHRFeGNlcHRpb25MaW5lTnVtYmVyKCkgY29uc3Q7CisgICAg
UVN0cmluZ0xpc3QgdW5jYXVnaHRFeGNlcHRpb25CYWNrdHJhY2UoKSBjb25zdDsKKwogICAgIHZv
aWQgY29sbGVjdEdhcmJhZ2UoKTsKICAgICB2b2lkIHJlcG9ydEFkZGl0aW9uYWxNZW1vcnlDb3N0
KGludCBjb3N0KTsKIApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRl
bmdpbmVfcC5jcHAgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVuZ2luZV9wLmNwcApp
bmRleCA4NDk1Y2Y3Li5mMWRiOTllIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkv
cXNjcmlwdGVuZ2luZV9wLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGVu
Z2luZV9wLmNwcApAQCAtMzEsMTEgKzMxLDE0IEBACiBRU2NyaXB0RW5naW5lUHJpdmF0ZTo6UVNj
cmlwdEVuZ2luZVByaXZhdGUoY29uc3QgUVNjcmlwdEVuZ2luZSogZW5naW5lKQogICAgIDogcV9w
dHIoY29uc3RfY2FzdDxRU2NyaXB0RW5naW5lKj4oZW5naW5lKSkKICAgICAsIG1fY29udGV4dChK
U0dsb2JhbENvbnRleHRDcmVhdGUoMCkpCisgICAgLCBtX2V4Y2VwdGlvbigwKQogewogfQogCiBR
U2NyaXB0RW5naW5lUHJpdmF0ZTo6flFTY3JpcHRFbmdpbmVQcml2YXRlKCkKIHsKKyAgICBpZiAo
bV9leGNlcHRpb24pCisgICAgICAgIEpTVmFsdWVVbnByb3RlY3QobV9jb250ZXh0LCBtX2V4Y2Vw
dGlvbik7CiAgICAgSlNHbG9iYWxDb250ZXh0UmVsZWFzZShtX2NvbnRleHQpOwogfQogCkBAIC03
Nyw2ICs4MCwxMSBAQCBRU2NyaXB0VmFsdWVQcml2YXRlKiBRU2NyaXB0RW5naW5lUHJpdmF0ZTo6
ZXZhbHVhdGUoY29uc3QgUVNjcmlwdFByb2dyYW1Qcml2YXRlKgogICAgIHJldHVybiBuZXcgUVNj
cmlwdFZhbHVlUHJpdmF0ZSh0aGlzLCBldmFsdWF0ZSgqcHJvZ3JhbSwgcHJvZ3JhbS0+ZmlsZSgp
LCBwcm9ncmFtLT5saW5lKCkpKTsKIH0KIAorUVNjcmlwdFZhbHVlUHJpdmF0ZSogUVNjcmlwdEVu
Z2luZVByaXZhdGU6OnVuY2F1Z2h0RXhjZXB0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9l
eGNlcHRpb24gPyBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZSh0aGlzLCBtX2V4Y2VwdGlvbikgOiBu
ZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZSgpOworfQorCiBRU2NyaXB0VmFsdWVQcml2YXRlKiBRU2Ny
aXB0RW5naW5lUHJpdmF0ZTo6bmV3T2JqZWN0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbmV3IFFT
Y3JpcHRWYWx1ZVByaXZhdGUodGhpcywgSlNPYmplY3RNYWtlKG1fY29udGV4dCwgLyoganNDbGFz
cyAqLyAwLCAvKiB1c2VyRGF0YSAqLyAwKSk7CkBAIC04NCwxMSArOTIsMTggQEAgUVNjcmlwdFZh
bHVlUHJpdmF0ZSogUVNjcmlwdEVuZ2luZVByaXZhdGU6Om5ld09iamVjdCgpIGNvbnN0CiAKIFFT
Y3JpcHRWYWx1ZVByaXZhdGUqIFFTY3JpcHRFbmdpbmVQcml2YXRlOjpuZXdBcnJheSh1aW50IGxl
bmd0aCkgY29uc3QKIHsKLSAgICBKU09iamVjdFJlZiBhcnJheSA9IEpTT2JqZWN0TWFrZUFycmF5
KG1fY29udGV4dCwgLyogYXJndW1lbnRDb3VudCAqLyAwLCAvKiBhcmd1bWVudHMgKi8gMCwgLyog
ZXhjZXB0aW9uICovIDApOwotCi0gICAgaWYgKGxlbmd0aCA+IDApIHsKLSAgICAgICAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IGxlbmd0aFJlZihBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoImxlbmd0aCIpKTsKLSAgICAgICAgSlNPYmplY3RTZXRQcm9wZXJ0eShtX2NvbnRl
eHQsIGFycmF5LCBsZW5ndGhSZWYuZ2V0KCksIEpTVmFsdWVNYWtlTnVtYmVyKG1fY29udGV4dCwg
bGVuZ3RoKSwga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25lLCAvKiBleGNlcHRpb24gKi8gMCk7Cisg
ICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOworICAgIEpTT2JqZWN0UmVmIGFycmF5ID0gSlNP
YmplY3RNYWtlQXJyYXkobV9jb250ZXh0LCAvKiBhcmd1bWVudENvdW50ICovIDAsIC8qIGFyZ3Vt
ZW50cyAqLyAwLCAmZXhjZXB0aW9uKTsKKworICAgIGlmICghZXhjZXB0aW9uKSB7CisgICAgICAg
IGlmIChsZW5ndGggPiAwKSB7CisgICAgICAgICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
bGVuZ3RoUmVmKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygibGVuZ3RoIikp
OworICAgICAgICAgICAgLy8gYXJyYXkgaXMgYW4gQXJyYXkgaW5zdGFuY2UsIHNvIGFuIGV4Y2Vw
dGlvbiBzaG91bGQgbm90IG9jY3VyZSBoZXJlLgorICAgICAgICAgICAgSlNPYmplY3RTZXRQcm9w
ZXJ0eShtX2NvbnRleHQsIGFycmF5LCBsZW5ndGhSZWYuZ2V0KCksIEpTVmFsdWVNYWtlTnVtYmVy
KG1fY29udGV4dCwgbGVuZ3RoKSwga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25lLCAvKiBleGNlcHRp
b24gKi8gMCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICBzZXRFeGNlcHRpb24o
ZXhjZXB0aW9uLCBOb3ROdWxsRXhjZXB0aW9uKTsKKyAgICAgICAgcmV0dXJuIG5ldyBRU2NyaXB0
VmFsdWVQcml2YXRlKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIG5ldyBRU2NyaXB0VmFsdWVQcml2
YXRlKHRoaXMsIGFycmF5KTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2Ny
aXB0ZW5naW5lX3AuaCBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0ZW5naW5lX3AuaApp
bmRleCA0MGFlYzE0Li5jNTIwMjMwIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkv
cXNjcmlwdGVuZ2luZV9wLmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRlbmdp
bmVfcC5oCkBAIC0yNiw5ICsyNiwxMSBAQAogI2luY2x1ZGUgInFzY3JpcHRzeW50YXhjaGVja3Jl
c3VsdF9wLmgiCiAjaW5jbHVkZSAicXNjcmlwdHZhbHVlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdC5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUmV0YWluUHRy
Lmg+CiAjaW5jbHVkZSA8SlNCYXNlUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFF0Q29yZS9xc2hhcmVk
ZGF0YS5oPgogI2luY2x1ZGUgPFF0Q29yZS9xc3RyaW5nLmg+CisjaW5jbHVkZSA8UXRDb3JlL3Fz
dHJpbmdsaXN0Lmg+CiAKIGNsYXNzIFFTY3JpcHRFbmdpbmU7CiBjbGFzcyBRU2NyaXB0U3ludGF4
Q2hlY2tSZXN1bHRQcml2YXRlOwpAQCAtNDEsMTEgKzQzLDIzIEBAIHB1YmxpYzoKICAgICBRU2Ny
aXB0RW5naW5lUHJpdmF0ZShjb25zdCBRU2NyaXB0RW5naW5lKik7CiAgICAgflFTY3JpcHRFbmdp
bmVQcml2YXRlKCk7CiAKKyAgICBlbnVtIFNldEV4Y2VwdGlvbkZsYWcgeworICAgICAgICBJZ25v
cmVOdWxsRXhjZXB0aW9uID0gMHgwMSwKKyAgICAgICAgTm90TnVsbEV4Y2VwdGlvbiA9IDB4MDIs
CisgICAgfTsKKwogICAgIFFTY3JpcHRTeW50YXhDaGVja1Jlc3VsdFByaXZhdGUqIGNoZWNrU3lu
dGF4KGNvbnN0IFFTdHJpbmcmIHByb2dyYW0pOwogICAgIFFTY3JpcHRWYWx1ZVByaXZhdGUqIGV2
YWx1YXRlKGNvbnN0IFFTdHJpbmcmIHByb2dyYW0sIGNvbnN0IFFTdHJpbmcmIGZpbGVOYW1lLCBp
bnQgbGluZU51bWJlcik7CiAgICAgUVNjcmlwdFZhbHVlUHJpdmF0ZSogZXZhbHVhdGUoY29uc3Qg
UVNjcmlwdFByb2dyYW1Qcml2YXRlKiBwcm9ncmFtKTsKICAgICBpbmxpbmUgSlNWYWx1ZVJlZiBl
dmFsdWF0ZShKU1N0cmluZ1JlZiBwcm9ncmFtLCBKU1N0cmluZ1JlZiBmaWxlTmFtZSwgaW50IGxp
bmVOdW1iZXIpOwogCisgICAgaW5saW5lIGJvb2wgaGFzVW5jYXVnaHRFeGNlcHRpb24oKSBjb25z
dDsKKyAgICBRU2NyaXB0VmFsdWVQcml2YXRlKiB1bmNhdWdodEV4Y2VwdGlvbigpIGNvbnN0Owor
ICAgIGlubGluZSB2b2lkIGNsZWFyRXhjZXB0aW9ucygpOworICAgIGlubGluZSB2b2lkIHNldEV4
Y2VwdGlvbihKU1ZhbHVlUmVmIGV4Y2VwdGlvbiwgY29uc3QgLyogU2V0RXhjZXB0aW9uRmxhZ3Mg
Ki8gdW5zaWduZWQgZmxhZ3MgPSBJZ25vcmVOdWxsRXhjZXB0aW9uKTsKKyAgICBpbmxpbmUgaW50
IHVuY2F1Z2h0RXhjZXB0aW9uTGluZU51bWJlcigpIGNvbnN0OworICAgIGlubGluZSBRU3RyaW5n
TGlzdCB1bmNhdWdodEV4Y2VwdGlvbkJhY2t0cmFjZSgpIGNvbnN0OworCiAgICAgaW5saW5lIHZv
aWQgY29sbGVjdEdhcmJhZ2UoKTsKICAgICBpbmxpbmUgdm9pZCByZXBvcnRBZGRpdGlvbmFsTWVt
b3J5Q29zdChpbnQgY29zdCk7CiAKQEAgLTY2LDYgKzgwLDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBRU2NyaXB0RW5naW5lKiBxX3B0cjsKICAgICBKU0dsb2JhbENvbnRleHRSZWYgbV9jb250
ZXh0OworICAgIEpTVmFsdWVSZWYgbV9leGNlcHRpb247CiB9OwogCiAKQEAgLTc4LDExICs5Myw2
NyBAQCBKU1ZhbHVlUmVmIFFTY3JpcHRFbmdpbmVQcml2YXRlOjpldmFsdWF0ZShKU1N0cmluZ1Jl
ZiBwcm9ncmFtLCBKU1N0cmluZ1JlZiBmaWxlTgogewogICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9u
OwogICAgIEpTVmFsdWVSZWYgcmVzdWx0ID0gSlNFdmFsdWF0ZVNjcmlwdChtX2NvbnRleHQsIHBy
b2dyYW0sIC8qIEdsb2JhbCBPYmplY3QgKi8gMCwgZmlsZU5hbWUsIGxpbmVOdW1iZXIsICZleGNl
cHRpb24pOwotICAgIGlmICghcmVzdWx0KQorICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIHNl
dEV4Y2VwdGlvbihleGNlcHRpb24sIE5vdE51bGxFeGNlcHRpb24pOwogICAgICAgICByZXR1cm4g
ZXhjZXB0aW9uOyAvLyByZXR1cm5zIGFuIGV4Y2VwdGlvbgorICAgIH0KKyAgICBjbGVhckV4Y2Vw
dGlvbnMoKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitib29sIFFTY3JpcHRFbmdpbmVQcml2
YXRlOjpoYXNVbmNhdWdodEV4Y2VwdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZXhjZXB0
aW9uOworfQorCit2b2lkIFFTY3JpcHRFbmdpbmVQcml2YXRlOjpjbGVhckV4Y2VwdGlvbnMoKQor
eworICAgIGlmIChtX2V4Y2VwdGlvbikKKyAgICAgICAgSlNWYWx1ZVVucHJvdGVjdChtX2NvbnRl
eHQsIG1fZXhjZXB0aW9uKTsKKyAgICBtX2V4Y2VwdGlvbiA9IDA7Cit9CisKK3ZvaWQgUVNjcmlw
dEVuZ2luZVByaXZhdGU6OnNldEV4Y2VwdGlvbihKU1ZhbHVlUmVmIGV4Y2VwdGlvbiwgY29uc3Qg
LyogU2V0RXhjZXB0aW9uRmxhZ3MgKi8gdW5zaWduZWQgZmxhZ3MpCit7CisgICAgaWYgKCEoKGZs
YWdzICYgTm90TnVsbEV4Y2VwdGlvbikgfHwgZXhjZXB0aW9uKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIFFfQVNTRVJUKGV4Y2VwdGlvbik7CisKKyAgICBpZiAobV9leGNlcHRpb24pCisgICAgICAg
IEpTVmFsdWVVbnByb3RlY3QobV9jb250ZXh0LCBtX2V4Y2VwdGlvbik7CisgICAgSlNWYWx1ZVBy
b3RlY3QobV9jb250ZXh0LCBleGNlcHRpb24pOworICAgIG1fZXhjZXB0aW9uID0gZXhjZXB0aW9u
OworfQorCitpbnQgUVNjcmlwdEVuZ2luZVByaXZhdGU6OnVuY2F1Z2h0RXhjZXB0aW9uTGluZU51
bWJlcigpIGNvbnN0Cit7CisgICAgaWYgKCFoYXNVbmNhdWdodEV4Y2VwdGlvbigpIHx8ICFKU1Zh
bHVlSXNPYmplY3QobV9jb250ZXh0LCBtX2V4Y2VwdGlvbikpCisgICAgICAgIHJldHVybiAtMTsK
KworICAgIEpTVmFsdWVSZWYgZXhjZXB0aW9uID0gMDsKKyAgICBKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gbGluZU51bWJlclByb3BlcnR5TmFtZShBZG9wdCwgUVNjcmlwdENvbnZlcnRlcjo6dG9T
dHJpbmcoImxpbmUiKSk7CisgICAgSlNWYWx1ZVJlZiBsaW5lTnVtYmVyID0gSlNPYmplY3RHZXRQ
cm9wZXJ0eShtX2NvbnRleHQsIGNvbnN0X2Nhc3Q8SlNPYmplY3RSZWY+KG1fZXhjZXB0aW9uKSwg
bGluZU51bWJlclByb3BlcnR5TmFtZS5nZXQoKSwgJmV4Y2VwdGlvbik7CisgICAgaW50IHJlc3Vs
dCA9IEpTVmFsdWVUb051bWJlcihtX2NvbnRleHQsIGxpbmVOdW1iZXIsICZleGNlcHRpb24pOwor
ICAgIHJldHVybiBleGNlcHRpb24gPyAtMSA6IHJlc3VsdDsKK30KKworUVN0cmluZ0xpc3QgUVNj
cmlwdEVuZ2luZVByaXZhdGU6OnVuY2F1Z2h0RXhjZXB0aW9uQmFja3RyYWNlKCkgY29uc3QKK3sK
KyAgICBpZiAoIWhhc1VuY2F1Z2h0RXhjZXB0aW9uKCkgfHwgIUpTVmFsdWVJc09iamVjdChtX2Nv
bnRleHQsIG1fZXhjZXB0aW9uKSkKKyAgICAgICAgcmV0dXJuIFFTdHJpbmdMaXN0KCk7CisKKyAg
ICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IGZpbGVOYW1lUHJvcGVydHlOYW1lKEFkb3B0LCBRU2NyaXB0Q29udmVydGVyOjp0b1N0cmluZygi
c291cmNlVVJMIikpOworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBsaW5lTnVtYmVyUHJv
cGVydHlOYW1lKEFkb3B0LCBRU2NyaXB0Q29udmVydGVyOjp0b1N0cmluZygibGluZSIpKTsKKyAg
ICBKU1ZhbHVlUmVmIGpzRmlsZU5hbWUgPSBKU09iamVjdEdldFByb3BlcnR5KG1fY29udGV4dCwg
Y29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9leGNlcHRpb24pLCBmaWxlTmFtZVByb3BlcnR5TmFt
ZS5nZXQoKSwgJmV4Y2VwdGlvbik7CisgICAgSlNWYWx1ZVJlZiBqc0xpbmVOdW1iZXIgPSBKU09i
amVjdEdldFByb3BlcnR5KG1fY29udGV4dCwgY29uc3RfY2FzdDxKU09iamVjdFJlZj4obV9leGNl
cHRpb24pLCBsaW5lTnVtYmVyUHJvcGVydHlOYW1lLmdldCgpLCAmZXhjZXB0aW9uKTsKKyAgICBK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gZmlsZU5hbWUoQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0Nv
cHkobV9jb250ZXh0LCBqc0ZpbGVOYW1lLCAmZXhjZXB0aW9uKSk7CisgICAgaW50IGxpbmVOdW1i
ZXIgPSBKU1ZhbHVlVG9OdW1iZXIobV9jb250ZXh0LCBqc0xpbmVOdW1iZXIsICZleGNlcHRpb24p
OworICAgIHJldHVybiBRU3RyaW5nTGlzdChRU3RyaW5nOjpmcm9tTGF0aW4xKCI8YW5vbnltb3Vz
PigpQCUwOiUxIikKKyAgICAgICAgICAgIC5hcmcoUVNjcmlwdENvbnZlcnRlcjo6dG9TdHJpbmco
ZmlsZU5hbWUuZ2V0KCkpKQorICAgICAgICAgICAgLmFyZyhRU2NyaXB0Q29udmVydGVyOjp0b1N0
cmluZyhleGNlcHRpb24gPyAtMSA6IGxpbmVOdW1iZXIpKSk7Cit9CisKIHZvaWQgUVNjcmlwdEVu
Z2luZVByaXZhdGU6OmNvbGxlY3RHYXJiYWdlKCkKIHsKICAgICBKU0dhcmJhZ2VDb2xsZWN0KG1f
Y29udGV4dCk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVl
X3AuaCBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWVfcC5oCmluZGV4IDNkMjdj
YzIuLjQ5YmVjOTcgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFs
dWVfcC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWVfcC5oCkBAIC00
NDUsNyArNDQ1LDkgQEAgUVN0cmluZyBRU2NyaXB0VmFsdWVQcml2YXRlOjp0b1N0cmluZygpIGNv
bnN0CiAgICAgY2FzZSBKU1ZhbHVlOgogICAgIGNhc2UgSlNQcmltaXRpdmU6CiAgICAgY2FzZSBK
U09iamVjdDoKLSAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHB0cihBZG9wdCwgSlNW
YWx1ZVRvU3RyaW5nQ29weSgqbV9lbmdpbmUsICp0aGlzLCAvKiBleGNlcHRpb24gKi8gMCkpOwor
ICAgICAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CisgICAgICAgIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBwdHIoQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoKm1fZW5naW5lLCAqdGhp
cywgJmV4Y2VwdGlvbikpOworICAgICAgICBtX2VuZ2luZS0+c2V0RXhjZXB0aW9uKGV4Y2VwdGlv
bik7CiAgICAgICAgIHJldHVybiBRU2NyaXB0Q29udmVydGVyOjp0b1N0cmluZyhwdHIuZ2V0KCkp
OwogICAgIH0KIApAQCAtNDU5LDcgKzQ2MSwxMiBAQCBxc3JlYWwgUVNjcmlwdFZhbHVlUHJpdmF0
ZTo6dG9OdW1iZXIoKSBjb25zdAogICAgIGNhc2UgSlNWYWx1ZToKICAgICBjYXNlIEpTUHJpbWl0
aXZlOgogICAgIGNhc2UgSlNPYmplY3Q6Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlVG9OdW1iZXIo
Km1fZW5naW5lLCAqdGhpcywgLyogZXhjZXB0aW9uICovIDApOworICAgICAgICB7CisgICAgICAg
ICAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CisgICAgICAgICAgICBxc3JlYWwgcmVzdWx0
ID0gSlNWYWx1ZVRvTnVtYmVyKCptX2VuZ2luZSwgKnRoaXMsICZleGNlcHRpb24pOworICAgICAg
ICAgICAgbV9lbmdpbmUtPnNldEV4Y2VwdGlvbihleGNlcHRpb24pOworICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKKyAgICAgICAgfQogICAgIGNhc2UgQ051bWJlcjoKICAgICAgICAgcmV0dXJu
IHUubV9udW1iZXI7CiAgICAgY2FzZSBDQm9vbDoKQEAgLTU4OCw5ICs1OTUsMTMgQEAgUVNjcmlw
dFZhbHVlUHJpdmF0ZSogUVNjcmlwdFZhbHVlUHJpdmF0ZTo6dG9PYmplY3QoUVNjcmlwdEVuZ2lu
ZVByaXZhdGUqIGVuZ2luZSkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKGVuZ2luZSAhPSB0
aGlzLT5lbmdpbmUoKSkKICAgICAgICAgICAgICAgICBxV2FybmluZygiUVNjcmlwdEVuZ2luZTo6
dG9PYmplY3Q6IGNhbm5vdCBjb252ZXJ0IHZhbHVlIGNyZWF0ZWQgaW4gYSBkaWZmZXJlbnQgZW5n
aW5lIik7Ci0gICAgICAgICAgICBKU09iamVjdFJlZiBvYmplY3QgPSBKU1ZhbHVlVG9PYmplY3Qo
Km1fZW5naW5lLCAqdGhpcywgLyogZXhjZXB0aW9uICovIDApOworICAgICAgICAgICAgSlNWYWx1
ZVJlZiBleGNlcHRpb24gPSAwOworICAgICAgICAgICAgSlNPYmplY3RSZWYgb2JqZWN0ID0gSlNW
YWx1ZVRvT2JqZWN0KCptX2VuZ2luZSwgKnRoaXMsICZleGNlcHRpb24pOwogICAgICAgICAgICAg
aWYgKG9iamVjdCkKICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFFTY3JpcHRWYWx1ZVByaXZh
dGUobV9lbmdpbmUuY29uc3REYXRhKCksIG9iamVjdCk7CisgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgbV9lbmdpbmUtPnNldEV4Y2VwdGlvbihleGNlcHRpb24sIFFTY3JpcHRFbmdp
bmVQcml2YXRlOjpOb3ROdWxsRXhjZXB0aW9uKTsKKwogICAgICAgICB9CiAgICAgICAgIHJldHVy
biBuZXcgUVNjcmlwdFZhbHVlUHJpdmF0ZTsKICAgICBjYXNlIEpTT2JqZWN0OgpAQCAtNjc1LDcg
KzY4NiwxMCBAQCBib29sIFFTY3JpcHRWYWx1ZVByaXZhdGU6OmVxdWFscyhRU2NyaXB0VmFsdWVQ
cml2YXRlKiBvdGhlcikKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBKU1ZhbHVlSXNF
cXVhbCgqbV9lbmdpbmUsICp0aGlzLCAqb3RoZXIsIC8qIGV4Y2VwdGlvbiAqLyAwKTsKKyAgICBK
U1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CisgICAgYm9vbCByZXN1bHQgPSBKU1ZhbHVlSXNFcXVh
bCgqbV9lbmdpbmUsICp0aGlzLCAqb3RoZXIsICZleGNlcHRpb24pOworICAgIG1fZW5naW5lLT5z
ZXRFeGNlcHRpb24oZXhjZXB0aW9uKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBib29sIFFT
Y3JpcHRWYWx1ZVByaXZhdGU6OnN0cmljdGx5RXF1YWxzKFFTY3JpcHRWYWx1ZVByaXZhdGUqIG90
aGVyKQpAQCAtNzE5LDcgKzczMywxMCBAQCBpbmxpbmUgYm9vbCBRU2NyaXB0VmFsdWVQcml2YXRl
OjppbnN0YW5jZU9mKFFTY3JpcHRWYWx1ZVByaXZhdGUqIG90aGVyKQogewogICAgIGlmICghaXNK
U0Jhc2VkKCkgfHwgIW90aGVyLT5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgcmV0dXJuIEpTVmFsdWVJc0luc3RhbmNlT2ZDb25zdHJ1Y3RvcigqbV9lbmdpbmUsICp0aGlz
LCAqb3RoZXIsIC8qIGV4Y2VwdGlvbiAqLyAwKTsKKyAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9
IDA7CisgICAgYm9vbCByZXN1bHQgPSBKU1ZhbHVlSXNJbnN0YW5jZU9mQ29uc3RydWN0b3IoKm1f
ZW5naW5lLCAqdGhpcywgKm90aGVyLCAmZXhjZXB0aW9uKTsKKyAgICBtX2VuZ2luZS0+c2V0RXhj
ZXB0aW9uKGV4Y2VwdGlvbik7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogLyohCkBAIC04MTMs
OCArODMwLDEwIEBAIFFTY3JpcHRWYWx1ZVByaXZhdGUqIFFTY3JpcHRWYWx1ZVByaXZhdGU6OmNh
bGwoY29uc3QgUVNjcmlwdFZhbHVlUHJpdmF0ZSosIGNvbnN0CiAgICAgICAgICAgICAvLyBNYWtl
IHRoZSBjYWxsCiAgICAgICAgICAgICBKU1ZhbHVlUmVmIGV4Y2VwdGlvbiA9IDA7CiAgICAgICAg
ICAgICBKU1ZhbHVlUmVmIHJlc3VsdCA9IEpTT2JqZWN0Q2FsbEFzRnVuY3Rpb24oKm1fZW5naW5l
LCAqdGhpcywgLyogdGhpc09iamVjdCAqLyAwLCBhcmdjLCBhcmd2LmNvbnN0RGF0YSgpLCAmZXhj
ZXB0aW9uKTsKLSAgICAgICAgICAgIGlmICghcmVzdWx0ICYmIGV4Y2VwdGlvbikKKyAgICAgICAg
ICAgIGlmICghcmVzdWx0ICYmIGV4Y2VwdGlvbikgeworICAgICAgICAgICAgICAgIG1fZW5naW5l
LT5zZXRFeGNlcHRpb24oZXhjZXB0aW9uKTsKICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFFT
Y3JpcHRWYWx1ZVByaXZhdGUoZW5naW5lKCksIGV4Y2VwdGlvbik7CisgICAgICAgICAgICB9CiAg
ICAgICAgICAgICBpZiAocmVzdWx0ICYmICFleGNlcHRpb24pCiAgICAgICAgICAgICAgICAgcmV0
dXJuIG5ldyBRU2NyaXB0VmFsdWVQcml2YXRlKGVuZ2luZSgpLCByZXN1bHQpOwogICAgICAgICB9
CkBAIC04NTUsOSArODc0LDEyIEBAIGJvb2wgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6aW5oZXJpdHMo
Y29uc3QgY2hhciogbmFtZSkKICAgICBRX0FTU0VSVChpc0pTQmFzZWQoKSk7CiAgICAgSlNPYmpl
Y3RSZWYgZ2xvYmFsT2JqZWN0ID0gSlNDb250ZXh0R2V0R2xvYmFsT2JqZWN0KCptX2VuZ2luZSk7
CiAgICAgSlNTdHJpbmdSZWYgZXJyb3JBdHRyTmFtZSA9IFFTY3JpcHRDb252ZXJ0ZXI6OnRvU3Ry
aW5nKG5hbWUpOwotICAgIEpTVmFsdWVSZWYgZXJyb3IgPSBKU09iamVjdEdldFByb3BlcnR5KCpt
X2VuZ2luZSwgZ2xvYmFsT2JqZWN0LCBlcnJvckF0dHJOYW1lLCAvKiBleGNlcHRpb24gKi8gMCk7
CisgICAgSlNWYWx1ZVJlZiBleGNlcHRpb24gPSAwOworICAgIEpTVmFsdWVSZWYgZXJyb3IgPSBK
U09iamVjdEdldFByb3BlcnR5KCptX2VuZ2luZSwgZ2xvYmFsT2JqZWN0LCBlcnJvckF0dHJOYW1l
LCAmZXhjZXB0aW9uKTsKICAgICBKU1N0cmluZ1JlbGVhc2UoZXJyb3JBdHRyTmFtZSk7Ci0gICAg
cmV0dXJuIEpTVmFsdWVJc0luc3RhbmNlT2ZDb25zdHJ1Y3RvcigqbV9lbmdpbmUsICp0aGlzLCBK
U1ZhbHVlVG9PYmplY3QoKm1fZW5naW5lLCBlcnJvciwgLyogZXhjZXB0aW9uICovIDApLCAvKiBl
eGNlcHRpb24gKi8gMCk7CisgICAgYm9vbCByZXN1bHQgPSBKU1ZhbHVlSXNJbnN0YW5jZU9mQ29u
c3RydWN0b3IoKm1fZW5naW5lLCAqdGhpcywgSlNWYWx1ZVRvT2JqZWN0KCptX2VuZ2luZSwgZXJy
b3IsICZleGNlcHRpb24pLCAmZXhjZXB0aW9uKTsKKyAgICBtX2VuZ2luZS0+c2V0RXhjZXB0aW9u
KGV4Y2VwdGlvbik7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogLyohCmRpZmYgLS1naXQgYS9K
YXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0ZW5naW5lL3RzdF9xc2NyaXB0ZW5naW5lLmNw
cCBiL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHRlbmdpbmUvdHN0X3FzY3JpcHRlbmdp
bmUuY3BwCmluZGV4IDE2NGI2NzguLjc1M2ZjZDAgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3Jl
L3F0L3Rlc3RzL3FzY3JpcHRlbmdpbmUvdHN0X3FzY3JpcHRlbmdpbmUuY3BwCisrKyBiL0phdmFT
Y3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHRlbmdpbmUvdHN0X3FzY3JpcHRlbmdpbmUuY3BwCkBA
IC00OCw2ICs0OCw3IEBAIHByaXZhdGUgc2xvdHM6CiAgICAgdm9pZCB0b09iamVjdCgpOwogICAg
IHZvaWQgdG9PYmplY3RUd29FbmdpbmVzKCk7CiAgICAgdm9pZCBuZXdBcnJheSgpOworICAgIHZv
aWQgdW5jYXVnaHRFeGNlcHRpb24oKTsKIH07CiAKIC8qIEV2YWx1YXRpbmcgYSBzY3JpcHQgdGhh
dCB0aHJvdyBhbiB1bmhhbmRsZWQgZXhjZXB0aW9uIHNob3VsZCByZXR1cm4gYW4gaW52YWxpZCB2
YWx1ZS4gKi8KQEAgLTQzMiw1ICs0MzMsODUgQEAgdm9pZCB0c3RfUVNjcmlwdEVuZ2luZTo6bmV3
QXJyYXkoKQogICAgIFFDT01QQVJFKGFycmF5V2l0aFNpemUucHJvcGVydHkoImxlbmd0aCIpLnRv
SW50MzIoKSwgNDIpOwogfQogCit2b2lkIHRzdF9RU2NyaXB0RW5naW5lOjp1bmNhdWdodEV4Y2Vw
dGlvbigpCit7CisgICAgUVNjcmlwdEVuZ2luZSBlbmc7CisgICAgUVNjcmlwdFZhbHVlIGZ1biA9
IGVuZy5ldmFsdWF0ZSgiKGZ1bmN0aW9uIGZvbyAoKSB7IHJldHVybiBudWxsOyB9KTsiKTsKKyAg
ICBRVkVSSUZZKCFlbmcudW5jYXVnaHRFeGNlcHRpb24oKS5pc1ZhbGlkKCkpOworICAgIFFWRVJJ
RlkoZnVuLmlzRnVuY3Rpb24oKSk7CisgICAgUVNjcmlwdFZhbHVlIHRocm93RnVuID0gZW5nLmV2
YWx1YXRlKCIoIGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3IoJ1BvbmcnKTsgfSk7Iik7Cisg
ICAgUVZFUklGWSh0aHJvd0Z1bi5pc0Z1bmN0aW9uKCkpOworICAgIHsKKyAgICAgICAgZW5nLmV2
YWx1YXRlKCJhID0gMTAiKTsKKyAgICAgICAgUVZFUklGWSghZW5nLmhhc1VuY2F1Z2h0RXhjZXB0
aW9uKCkpOworICAgICAgICBRVkVSSUZZKCFlbmcudW5jYXVnaHRFeGNlcHRpb24oKS5pc1ZhbGlk
KCkpOworICAgIH0KKyAgICB7CisgICAgICAgIGVuZy5ldmFsdWF0ZSgiMSA9IDIiKTsKKyAgICAg
ICAgUVZFUklGWShlbmcuaGFzVW5jYXVnaHRFeGNlcHRpb24oKSk7CisgICAgICAgIGVuZy5jbGVh
ckV4Y2VwdGlvbnMoKTsKKyAgICAgICAgUVZFUklGWSghZW5nLmhhc1VuY2F1Z2h0RXhjZXB0aW9u
KCkpOworICAgIH0KKyAgICB7CisgICAgICAgIC8vIENoZWNrIGlmIHRoZSBjYWxsIG9yIHRvU3Ry
aW5nIGZ1bmN0aW9ucyBjYW4gcmVtb3ZlIHRoZSBsYXN0IGV4Y2VwdGlvbi4KKyAgICAgICAgUVZF
UklGWSh0aHJvd0Z1bi5jYWxsKCkuaXNFcnJvcigpKTsKKyAgICAgICAgUVZFUklGWShlbmcuaGFz
VW5jYXVnaHRFeGNlcHRpb24oKSk7CisgICAgICAgIFFTY3JpcHRWYWx1ZSBleGNlcHRpb24gPSBl
bmcudW5jYXVnaHRFeGNlcHRpb24oKTsKKyAgICAgICAgZnVuLmNhbGwoKTsKKyAgICAgICAgZXhj
ZXB0aW9uLnRvU3RyaW5nKCk7CisgICAgICAgIFFWRVJJRlkoZW5nLmhhc1VuY2F1Z2h0RXhjZXB0
aW9uKCkpOworICAgICAgICBRVkVSSUZZKGVuZy51bmNhdWdodEV4Y2VwdGlvbigpLnN0cmljdGx5
RXF1YWxzKGV4Y2VwdGlvbikpOworICAgIH0KKyAgICBlbmcuY2xlYXJFeGNlcHRpb25zKCk7Cisg
ICAgeworICAgICAgICAvLyBDaGVjayBpZiBpbiB0aGUgY2FsbCBmdW5jdGlvbiBhIG5ldyBleGNl
cHRpb24gY2FuIG92ZXJyaWRlIGFuIGV4aXN0aW5nIG9uZS4KKyAgICAgICAgdGhyb3dGdW4uY2Fs
bCgpOworICAgICAgICBRVkVSSUZZKGVuZy5oYXNVbmNhdWdodEV4Y2VwdGlvbigpKTsKKyAgICAg
ICAgUVNjcmlwdFZhbHVlIGV4Y2VwdGlvbiA9IGVuZy51bmNhdWdodEV4Y2VwdGlvbigpOworICAg
ICAgICB0aHJvd0Z1bi5jYWxsKCk7CisgICAgICAgIFFWRVJJRlkoZW5nLmhhc1VuY2F1Z2h0RXhj
ZXB0aW9uKCkpOworICAgICAgICBRVkVSSUZZKCFleGNlcHRpb24uc3RyaWN0bHlFcXVhbHMoZW5n
LnVuY2F1Z2h0RXhjZXB0aW9uKCkpKTsKKyAgICB9CisgICAgeworICAgICAgICBlbmcuZXZhbHVh
dGUoInRocm93RnVuID0gKGZ1bmN0aW9uIGZvbyAoKSB7IHRocm93IG5ldyBFcnJvcignYmxhJykg
fSk7Iik7CisgICAgICAgIGVuZy5ldmFsdWF0ZSgiMTtcbnRocm93RnVuKCk7Iik7CisgICAgICAg
IFFWRVJJRlkoZW5nLmhhc1VuY2F1Z2h0RXhjZXB0aW9uKCkpOworICAgICAgICBRQ09NUEFSRShl
bmcudW5jYXVnaHRFeGNlcHRpb25MaW5lTnVtYmVyKCksIDEpOworICAgICAgICBlbmcuY2xlYXJF
eGNlcHRpb25zKCk7CisgICAgICAgIFFWRVJJRlkoIWVuZy5oYXNVbmNhdWdodEV4Y2VwdGlvbigp
KTsKKyAgICB9CisgICAgZm9yIChpbnQgeCA9IDE7IHggPCA0OyArK3gpIHsKKyAgICAgICAgUVNj
cmlwdFZhbHVlIHJldCA9IGVuZy5ldmFsdWF0ZSgiYSA9IDEwO1xuYiA9IDIwO1xuMCA9IDA7XG4i
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFTdHJpbmc6OmZyb21M
YXRpbjEoIkZvb1NjcmlwdCIpICsgUVN0cmluZzo6bnVtYmVyKHgpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGxpbmVOdW1iZXIgKi8geCk7CisgICAgICAgIFFW
RVJJRlkoZW5nLmhhc1VuY2F1Z2h0RXhjZXB0aW9uKCkpOworICAgICAgICBRQ09NUEFSRShlbmcu
dW5jYXVnaHRFeGNlcHRpb25MaW5lTnVtYmVyKCksIHggKyAyKTsKKyAgICAgICAgUVZFUklGWShl
bmcudW5jYXVnaHRFeGNlcHRpb24oKS5zdHJpY3RseUVxdWFscyhyZXQpKTsKKyAgICAgICAgUVZF
UklGWShlbmcuaGFzVW5jYXVnaHRFeGNlcHRpb24oKSk7CisgICAgICAgIFFWRVJJRlkoZW5nLnVu
Y2F1Z2h0RXhjZXB0aW9uKCkuc3RyaWN0bHlFcXVhbHMocmV0KSk7CisgICAgICAgIFFTdHJpbmcg
YmFja3RyYWNlID0gUVN0cmluZzo6ZnJvbUxhdGluMSgiPGFub255bW91cz4oKUBGb29TY3JpcHQi
KSArIFFTdHJpbmc6Om51bWJlcih4KSArICI6IiArIFFTdHJpbmc6Om51bWJlcih4ICsgMik7Cisg
ICAgICAgIFFDT01QQVJFKGVuZy51bmNhdWdodEV4Y2VwdGlvbkJhY2t0cmFjZSgpLmpvaW4oIiIp
LCBiYWNrdHJhY2UpOworICAgICAgICBRVkVSSUZZKGZ1bi5jYWxsKCkuaXNOdWxsKCkpOworICAg
ICAgICBRVkVSSUZZKGVuZy5oYXNVbmNhdWdodEV4Y2VwdGlvbigpKTsKKyAgICAgICAgUUNPTVBB
UkUoZW5nLnVuY2F1Z2h0RXhjZXB0aW9uTGluZU51bWJlcigpLCB4ICsgMik7CisgICAgICAgIFFW
RVJJRlkoZW5nLnVuY2F1Z2h0RXhjZXB0aW9uKCkuc3RyaWN0bHlFcXVhbHMocmV0KSk7CisgICAg
ICAgIGVuZy5jbGVhckV4Y2VwdGlvbnMoKTsKKyAgICAgICAgUVZFUklGWSghZW5nLmhhc1VuY2F1
Z2h0RXhjZXB0aW9uKCkpOworICAgICAgICBRQ09NUEFSRShlbmcudW5jYXVnaHRFeGNlcHRpb25M
aW5lTnVtYmVyKCksIC0xKTsKKyAgICAgICAgUVZFUklGWSghZW5nLnVuY2F1Z2h0RXhjZXB0aW9u
KCkuaXNWYWxpZCgpKTsKKyAgICAgICAgZW5nLmV2YWx1YXRlKCIyID0gMyIpOworICAgICAgICBR
VkVSSUZZKGVuZy5oYXNVbmNhdWdodEV4Y2VwdGlvbigpKTsKKyAgICAgICAgUVNjcmlwdFZhbHVl
IHJldDIgPSB0aHJvd0Z1bi5jYWxsKCk7CisgICAgICAgIFFWRVJJRlkocmV0Mi5pc0Vycm9yKCkp
OworICAgICAgICBRVkVSSUZZKGVuZy5oYXNVbmNhdWdodEV4Y2VwdGlvbigpKTsKKyAgICAgICAg
UVZFUklGWShlbmcudW5jYXVnaHRFeGNlcHRpb24oKS5zdHJpY3RseUVxdWFscyhyZXQyKSk7Cisg
ICAgICAgIFFDT01QQVJFKGVuZy51bmNhdWdodEV4Y2VwdGlvbkxpbmVOdW1iZXIoKSwgMSk7Cisg
ICAgICAgIGVuZy5jbGVhckV4Y2VwdGlvbnMoKTsKKyAgICAgICAgUVZFUklGWSghZW5nLmhhc1Vu
Y2F1Z2h0RXhjZXB0aW9uKCkpOworICAgICAgICBlbmcuZXZhbHVhdGUoIjEgKyAyIik7CisgICAg
ICAgIFFWRVJJRlkoIWVuZy5oYXNVbmNhdWdodEV4Y2VwdGlvbigpKTsKKyAgICB9Cit9CisKIFFU
RVNUX01BSU4odHN0X1FTY3JpcHRFbmdpbmUpCiAjaW5jbHVkZSAidHN0X3FzY3JpcHRlbmdpbmUu
bW9jIgo=
</data>
<flag name="review"
          id="47389"
          type_id="1"
          status="+"
          setter="hausmann"
    />
    <flag name="commit-queue"
          id="47390"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>