<?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>34850</bug_id>
          
          <creation_ts>2010-02-11 09:51:18 -0800</creation_ts>
          <short_desc>[Qt] QScriptValue::toString() returns incorrect values</short_desc>
          <delta_ts>2010-03-02 13:39:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>34843</dependson>
          <blocked>31863</blocked>
    
    <blocked>35387</blocked>
    
    <blocked>35577</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>jedrzej.nowacki</cc>
    
    <cc>kent.hansen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>189721</commentid>
    <comment_count>0</comment_count>
      <attachid>48576</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-02-11 09:51:18 -0800</bug_when>
    <thetext>Created attachment 48576
test cases

QScriptValue::toString() is not perfect, for example in place of &quot;Infinity&quot; and &quot;NaN&quot; it returns &quot;inf&quot;, &quot;nan&quot;. More issues are in the attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190012</commentid>
    <comment_count>1</comment_count>
      <attachid>48635</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-02-12 04:35:00 -0800</bug_when>
    <thetext>Created attachment 48635
Fix v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190426</commentid>
    <comment_count>2</comment_count>
      <attachid>48635</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-02-15 04:10:29 -0800</bug_when>
    <thetext>Comment on attachment 48635
Fix v1


&gt; +        // FIXME this should be easier. The QString API had to be developed, it should contain
&gt; +        // a converting function, a bit more flexible then the number(). The ideal fix is to create
&gt; +        // a new function in JSC C API which could cover the functionality.

I suggest to pursue that route by adding the functionality to the C API.

The old set of unit tests that this patch removes also include a test of converting a QScriptValue containing a non-latin string back to a QString. The new test set does removes that from the input values. Is that intentional?

I&apos;m okay with having the workaround in QScriptConverter for now, but I&apos;m concerned about the removal of the utf8 test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190669</commentid>
    <comment_count>3</comment_count>
      <attachid>48807</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-02-16 05:11:53 -0800</bug_when>
    <thetext>Created attachment 48807
Fix v2

(In reply to comment #2)
&gt; (From update of attachment 48635 [details])
&gt; 
&gt; &gt; +        // FIXME this should be easier. The QString API had to be developed, it should contain
&gt; &gt; +        // a converting function, a bit more flexible then the number(). The ideal fix is to create
&gt; &gt; +        // a new function in JSC C API which could cover the functionality.
&gt; 
&gt; I suggest to pursue that route by adding the functionality to the C API.
&gt; 
&gt; The old set of unit tests that this patch removes also include a test of
&gt; converting a QScriptValue containing a non-latin string back to a QString. The
&gt; new test set does removes that from the input values. Is that intentional?
&gt; 
&gt; I&apos;m okay with having the workaround in QScriptConverter for now, but I&apos;m
&gt; concerned about the removal of the utf8 test.
Agree, I renamed old test instead of replacing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191853</commentid>
    <comment_count>4</comment_count>
      <attachid>49063</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-02-19 03:31:40 -0800</bug_when>
    <thetext>Created attachment 49063
Fix v3

The algorithm was changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191915</commentid>
    <comment_count>5</comment_count>
      <attachid>49063</attachid>
    <who name="Ariya Hidayat">ariya.hidayat</who>
    <bug_when>2010-02-19 07:58:56 -0800</bug_when>
    <thetext>Comment on attachment 49063
Fix v3

Looks sane to me, except...

&gt; +        QByteArray buf;
&gt; +        buf.reserve(80);

..where does this value come from? I can&apos;t recall you can print a double value into 80-char long string.

Maybe add some comment or use shorter buffer length for that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192435</commentid>
    <comment_count>6</comment_count>
      <attachid>49210</attachid>
    <who name="Jędrzej Nowacki">jedrzej.nowacki</who>
    <bug_when>2010-02-22 06:09:43 -0800</bug_when>
    <thetext>Created attachment 49210
Fix v4

(In reply to comment #5)
&gt; (From update of attachment 49063 [details])
&gt; Looks sane to me, except...
&gt; 
&gt; &gt; +        QByteArray buf;
&gt; &gt; +        buf.reserve(80);
&gt; 
&gt; ..where does this value come from? I can&apos;t recall you can print a double value
&gt; into 80-char long string.
&gt; 
&gt; Maybe add some comment or use shorter buffer length for that?

2^64 =&gt; 20 digits + 1 sign
min double (-1.7976931348623158e+308) =&gt; 20 digits + 4 others

It seems that 24 is enough, but I&apos;m not really sure :-).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192841</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-02-23 02:02:05 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 49063 [details])
&gt; Looks sane to me, except...
&gt; 
&gt; &gt; +        QByteArray buf;
&gt; &gt; +        buf.reserve(80);
&gt; 
&gt; ..where does this value come from? I can&apos;t recall you can print a double value
&gt; into 80-char long string.
&gt; 
&gt; Maybe add some comment or use shorter buffer length for that?

This code comes straight from the old QtScript back-end.
Like Jedrzej comments in the patch, ideally we would be able to use the JSC C API for converting a plain number (not JSValue) to a string. If we were to use the C API right now we would have to create a temporary context + value, convert the value to string, and then destroy the context again.
It&apos;s probably going to be slow, but the code will be smaller and we have the guarantee that the result will be the same as for normal JSValues. (Even though the implementation in this patch has good test coverage in the old back-end, I can&apos;t guarantee it always gives the same result as JSC.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195010</commentid>
    <comment_count>8</comment_count>
      <attachid>49210</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-03-02 03:16:45 -0800</bug_when>
    <thetext>Comment on attachment 49210
Fix v4

Suggestions for follow-up patch:

* Use QVarLengthArray
* Use Q_CORE_EXPORT with the qdtoa declaration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195202</commentid>
    <comment_count>9</comment_count>
      <attachid>49210</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-02 13:39:08 -0800</bug_when>
    <thetext>Comment on attachment 49210
Fix v4

Clearing flags on attachment: 49210

Committed r55427: &lt;http://trac.webkit.org/changeset/55427&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195203</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-03-02 13:39:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>48576</attachid>
            <date>2010-02-11 09:51:18 -0800</date>
            <delta_ts>2010-02-11 09:51:18 -0800</delta_ts>
            <desc>test cases</desc>
            <filename>toString.txt</filename>
            <type>text/plain</type>
            <size>3775</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">RkFJTCEgIDogdHN0X1FTY3JpcHRWYWx1ZTo6dG9TdHJpbmcoUVNjcmlwdFZhbHVlKDAsIHFJbmYo
KSkpIENvbXBhcmVkIHZhbHVlcyBhcmUgbm90IHRoZSBzYW1lCiAgIEFjdHVhbCAodmFsdWUudG9T
dHJpbmcoKSk6IGluZgogICBFeHBlY3RlZCAoZXhwZWN0ZWQpOiBJbmZpbml0eQogICBMb2M6IFsv
aG9tZS9uaWVyb2IvZGV2L1dlYktpdC9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFs
dWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWQuY3BwKDY3OSldCkZBSUwhICA6IHRzdF9RU2Ny
aXB0VmFsdWU6OnRvU3RyaW5nKFFTY3JpcHRWYWx1ZShxUU5hTigpKSkgQ29tcGFyZWQgdmFsdWVz
IGFyZSBub3QgdGhlIHNhbWUKICAgQWN0dWFsICh2YWx1ZS50b1N0cmluZygpKTogbmFuCiAgIEV4
cGVjdGVkIChleHBlY3RlZCk6IE5hTgogICBMb2M6IFsvaG9tZS9uaWVyb2IvZGV2L1dlYktpdC9K
YXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5l
cmF0ZWQuY3BwKDY3OSldCkZBSUwhICA6IHRzdF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5nKFFTY3Jp
cHRWYWx1ZSgtNi4zN2UtOCkpIENvbXBhcmVkIHZhbHVlcyBhcmUgbm90IHRoZSBzYW1lCiAgIEFj
dHVhbCAodmFsdWUudG9TdHJpbmcoKSk6IC02LjM3ZS0wOAogICBFeHBlY3RlZCAoZXhwZWN0ZWQp
OiAtNi4zN2UtOAogICBMb2M6IFsvaG9tZS9uaWVyb2IvZGV2L1dlYktpdC9KYXZhU2NyaXB0Q29y
ZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWQuY3BwKDY3
OSldCkZBSUwhICA6IHRzdF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5nKFFTY3JpcHRWYWx1ZSg2LjM3
ZS04KSkgQ29tcGFyZWQgdmFsdWVzIGFyZSBub3QgdGhlIHNhbWUKICAgQWN0dWFsICh2YWx1ZS50
b1N0cmluZygpKTogNi4zN2UtMDgKICAgRXhwZWN0ZWQgKGV4cGVjdGVkKTogNi4zN2UtOAogICBM
b2M6IFsvaG9tZS9uaWVyb2IvZGV2L1dlYktpdC9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2Ny
aXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWQuY3BwKDY3OSldCkZBSUwhICA6IHRz
dF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5nKFFTY3JpcHRWYWx1ZSgwLCAweDQzMjExMjM0KSkgQ29t
cGFyZWQgdmFsdWVzIGFyZSBub3QgdGhlIHNhbWUKICAgQWN0dWFsICh2YWx1ZS50b1N0cmluZygp
KTogMS4xMjYyNGUrMDkKICAgRXhwZWN0ZWQgKGV4cGVjdGVkKTogMTEyNjI0MDgyMAogICBMb2M6
IFsvaG9tZS9uaWVyb2IvZGV2L1dlYktpdC9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0
dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWQuY3BwKDY3OSldCkZBSUwhICA6IHRzdF9R
U2NyaXB0VmFsdWU6OnRvU3RyaW5nKFFTY3JpcHRWYWx1ZSgtcUluZigpKSkgQ29tcGFyZWQgdmFs
dWVzIGFyZSBub3QgdGhlIHNhbWUKICAgQWN0dWFsICh2YWx1ZS50b1N0cmluZygpKTogLWluZgog
ICBFeHBlY3RlZCAoZXhwZWN0ZWQpOiAtSW5maW5pdHkKICAgTG9jOiBbL2hvbWUvbmllcm9iL2Rl
di9XZWJLaXQvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0
dmFsdWVfZ2VuZXJhdGVkLmNwcCg2NzkpXQpGQUlMISAgOiB0c3RfUVNjcmlwdFZhbHVlOjp0b1N0
cmluZyhRU2NyaXB0VmFsdWUocVNOYU4oKSkpIENvbXBhcmVkIHZhbHVlcyBhcmUgbm90IHRoZSBz
YW1lCiAgIEFjdHVhbCAodmFsdWUudG9TdHJpbmcoKSk6IG5hbgogICBFeHBlY3RlZCAoZXhwZWN0
ZWQpOiBOYU4KICAgTG9jOiBbL2hvbWUvbmllcm9iL2Rldi9XZWJLaXQvSmF2YVNjcmlwdENvcmUv
cXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVkLmNwcCg2Nzkp
XQpGQUlMISAgOiB0c3RfUVNjcmlwdFZhbHVlOjp0b1N0cmluZyhRU2NyaXB0VmFsdWUoMCwgLXFJ
bmYoKSkpIENvbXBhcmVkIHZhbHVlcyBhcmUgbm90IHRoZSBzYW1lCiAgIEFjdHVhbCAodmFsdWUu
dG9TdHJpbmcoKSk6IC1pbmYKICAgRXhwZWN0ZWQgKGV4cGVjdGVkKTogLUluZmluaXR5CiAgIExv
YzogWy9ob21lL25pZXJvYi9kZXYvV2ViS2l0L0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3Jp
cHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlX2dlbmVyYXRlZC5jcHAoNjc5KV0KRkFJTCEgIDogdHN0
X1FTY3JpcHRWYWx1ZTo6dG9TdHJpbmcoUVNjcmlwdFZhbHVlKDAsIC02LjM3ZS04KSkgQ29tcGFy
ZWQgdmFsdWVzIGFyZSBub3QgdGhlIHNhbWUKICAgQWN0dWFsICh2YWx1ZS50b1N0cmluZygpKTog
LTYuMzdlLTA4CiAgIEV4cGVjdGVkIChleHBlY3RlZCk6IC02LjM3ZS04CiAgIExvYzogWy9ob21l
L25pZXJvYi9kZXYvV2ViS2l0L0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90
c3RfcXNjcmlwdHZhbHVlX2dlbmVyYXRlZC5jcHAoNjc5KV0KRkFJTCEgIDogdHN0X1FTY3JpcHRW
YWx1ZTo6dG9TdHJpbmcoUVNjcmlwdFZhbHVlKHFJbmYoKSkpIENvbXBhcmVkIHZhbHVlcyBhcmUg
bm90IHRoZSBzYW1lCiAgIEFjdHVhbCAodmFsdWUudG9TdHJpbmcoKSk6IGluZgogICBFeHBlY3Rl
ZCAoZXhwZWN0ZWQpOiBJbmZpbml0eQogICBMb2M6IFsvaG9tZS9uaWVyb2IvZGV2L1dlYktpdC9K
YXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5l
cmF0ZWQuY3BwKDY3OSldCkZBSUwhICA6IHRzdF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5nKFFTY3Jp
cHRWYWx1ZSgweDQzMjExMjM0KSkgQ29tcGFyZWQgdmFsdWVzIGFyZSBub3QgdGhlIHNhbWUKICAg
QWN0dWFsICh2YWx1ZS50b1N0cmluZygpKTogMS4xMjYyNGUrMDkKICAgRXhwZWN0ZWQgKGV4cGVj
dGVkKTogMTEyNjI0MDgyMAogICBMb2M6IFsvaG9tZS9uaWVyb2IvZGV2L1dlYktpdC9KYXZhU2Ny
aXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWQu
Y3BwKDY3OSldCkZBSUwhICA6IHRzdF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5nKFFTY3JpcHRWYWx1
ZSgwLCBxUU5hTigpKSkgQ29tcGFyZWQgdmFsdWVzIGFyZSBub3QgdGhlIHNhbWUKICAgQWN0dWFs
ICh2YWx1ZS50b1N0cmluZygpKTogbmFuCiAgIEV4cGVjdGVkIChleHBlY3RlZCk6IE5hTgogICBM
b2M6IFsvaG9tZS9uaWVyb2IvZGV2L1dlYktpdC9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2Ny
aXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWQuY3BwKDY3OSldCkZBSUwhICA6IHRz
dF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5nKFFTY3JpcHRWYWx1ZSgwLCBxU05hTigpKSkgQ29tcGFy
ZWQgdmFsdWVzIGFyZSBub3QgdGhlIHNhbWUKICAgQWN0dWFsICh2YWx1ZS50b1N0cmluZygpKTog
bmFuCiAgIEV4cGVjdGVkIChleHBlY3RlZCk6IE5hTgogICBMb2M6IFsvaG9tZS9uaWVyb2IvZGV2
L1dlYktpdC9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2
YWx1ZV9nZW5lcmF0ZWQuY3BwKDY3OSldCkZBSUwhICA6IHRzdF9RU2NyaXB0VmFsdWU6OnRvU3Ry
aW5nKFFTY3JpcHRWYWx1ZSgwLCA2LjM3ZS04KSkgQ29tcGFyZWQgdmFsdWVzIGFyZSBub3QgdGhl
IHNhbWUKICAgQWN0dWFsICh2YWx1ZS50b1N0cmluZygpKTogNi4zN2UtMDgKICAgRXhwZWN0ZWQg
KGV4cGVjdGVkKTogNi4zN2UtOAogICBMb2M6IFsvaG9tZS9uaWVyb2IvZGV2L1dlYktpdC9KYXZh
U2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0
ZWQuY3BwKDY3OSldCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48635</attachid>
            <date>2010-02-12 04:35:00 -0800</date>
            <delta_ts>2010-02-16 05:11:53 -0800</delta_ts>
            <desc>Fix v1</desc>
            <filename>toStringV1.diff</filename>
            <type>text/plain</type>
            <size>14628</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA4ZDdlYzk4Li42NTkyZjAwIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTAtMDItMTIgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93YWNraUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4
IFFTY3JpcHRWYWx1ZTo6dG9TdHJpbmcoKS4KKworICAgICAgICBNb3JlIEVDTUEgU2NyaXB0IGNv
bXBsaWFuY2UsIGVzcGVjaWFsbHkgZm9yIHZhbHVlcyBhcyBOYU4sIEluaWZpbml0ZQorICAgICAg
ICBhbmQgcmVhbGx5IGJpZy9zbWFsbCBudW1iZXJzLgorCisgICAgICAgIFtRdF0gUVNjcmlwdFZh
bHVlOjp0b1N0cmluZygpIHJldHVybnMgaW5jb3JyZWN0IHZhbHVlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ4NTAKKworICAgICAgICAqIHF0L2Fw
aS9xc2NyaXB0Y29udmVydGVyX3AuaDoKKyAgICAgICAgKFFTY3JpcHRDb252ZXJ0ZXI6OnRvU3Ry
aW5nKToKKyAgICAgICAgKiBxdC9hcGkvcXNjcmlwdHZhbHVlX3AuaDoKKyAgICAgICAgKFFTY3Jp
cHRWYWx1ZVByaXZhdGU6OnRvU3RyaW5nKToKKyAgICAgICAgKiBxdC90ZXN0cy9xc2NyaXB0dmFs
dWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHA6CisgICAgICAgICogcXQvdGVzdHMvcXNjcmlwdHZhbHVl
L3RzdF9xc2NyaXB0dmFsdWUuaDoKKyAgICAgICAgKiBxdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0
X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWQuY3BwOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6
dG9TdHJpbmdfaW5pdERhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6dG9TdHJpbmdf
bWFrZURhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6dG9TdHJpbmdfdGVzdCk6CisK
IDIwMTAtMDItMTEgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93YWNraUBub2tpYS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGNvbnZlcnRlcl9wLmggYi9KYXZhU2NyaXB0Q29yZS9x
dC9hcGkvcXNjcmlwdGNvbnZlcnRlcl9wLmgKaW5kZXggYzNjYTQxZi4uZDkyM2YzOSAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRjb252ZXJ0ZXJfcC5oCisrKyBiL0ph
dmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0Y29udmVydGVyX3AuaApAQCAtMjEsNiArMjEsNyBA
QAogI2RlZmluZSBxc2NyaXB0Y29udmVydGVyX3BfaAogCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdC5oPgorI2luY2x1ZGUgPFF0Q29yZS9xbnVtZXJpYy5oPgogI2luY2x1ZGUg
PFF0Q29yZS9xc3RyaW5nLmg+CiAKIC8qCkBAIC00NSw2ICs0NiwzNyBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoc3RyKTsKICAg
ICB9CisgICAgc3RhdGljIFFTdHJpbmcgdG9TdHJpbmcoZG91YmxlIG51bWJlcikKKyAgICB7Cisg
ICAgICAgIC8vIEZJWE1FIHRoaXMgc2hvdWxkIGJlIGVhc2llci4gVGhlIFFTdHJpbmcgQVBJIGhh
ZCB0byBiZSBkZXZlbG9wZWQsIGl0IHNob3VsZCBjb250YWluCisgICAgICAgIC8vIGEgY29udmVy
dGluZyBmdW5jdGlvbiwgYSBiaXQgbW9yZSBmbGV4aWJsZSB0aGVuIHRoZSBudW1iZXIoKS4gVGhl
IGlkZWFsIGZpeCBpcyB0byBjcmVhdGUKKyAgICAgICAgLy8gYSBuZXcgZnVuY3Rpb24gaW4gSlND
IEMgQVBJIHdoaWNoIGNvdWxkIGNvdmVyIHRoZSBmdW5jdGlvbmFsaXR5LgorICAgICAgICBpZiAo
cUlzSW5mKG51bWJlcikpCisgICAgICAgICAgICByZXR1cm4gbnVtYmVyID4gMCA/ICJJbmZpbml0
eSIgOiAiLUluZmluaXR5IjsKKyAgICAgICAgaWYgKHFJc05hTihudW1iZXIpKQorICAgICAgICAg
ICAgcmV0dXJuICJOYU4iOworICAgICAgICBRU3RyaW5nIHJlc3VsdCA9IFFTdHJpbmc6Om51bWJl
cihudW1iZXIsICdnJywgLyogcHJlYyAqLyAxMik7CisKKyAgICAgICAgLy8gUVN0cmluZzo6bnVt
YmVyIHJldHVybiBjb25zdGFudCBwcmVjaXNpb24sIHNvIGVuZGluZyAnMCcgaGF2ZSB0byBiZSBy
ZW1vdmVkLgorICAgICAgICB1bnNpZ25lZCB0b0Nob3AgPSAwOworICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSByZXN1bHQubGVuZ3RoKCkgLSAxOyBpID4gMDsgLS1pKSB7CisgICAgICAgICAgICBp
ZiAocmVzdWx0LmF0KGkpID09ICcwJykKKyAgICAgICAgICAgICAgICArK3RvQ2hvcDsKKyAgICAg
ICAgICAgIGVsc2UgaWYgKHJlc3VsdC5hdChpKSA9PSAnLicpIHsKKyAgICAgICAgICAgICAgICBp
ZiAodG9DaG9wID09IHJlc3VsdC5sZW5ndGgoKSAtIGkgLSAxKQorICAgICAgICAgICAgICAgICAg
ICArK3RvQ2hvcDsgLy8gUmVtb3ZlIHRoZSBwb2ludCB0b28uCisgICAgICAgICAgICAgICAgcmVz
dWx0LmNob3AodG9DaG9wKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0g
ZWxzZSBpZiAocmVzdWx0LmF0KGkpID09ICdlJykgeworICAgICAgICAgICAgICAgIC8vIEV4cG9u
ZW50aWFsIChzY2llbnRpZmljKSBub3RhdGlvbiBoYXMgYmVlbiBmb3VuZC4KKyAgICAgICAgICAg
ICAgICAvLyBSZW1vdmUgbGVhZGluZyB6ZXJvcyBmcm9tIGV4cG9uZW50IChmb3IgZXhhbXBsZSA2
LjM3ZS0wOCAtPiA2LjM3ZS04KS4KKyAgICAgICAgICAgICAgICB3aGlsZSAocmVzdWx0LmF0KGkg
KyAyKSA9PSAnMCcpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5yZW1vdmUoaSArIDIsIDEp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgfQogfTsKIAogI2VuZGlmIC8vIHFzY3JpcHRjb252ZXJ0
ZXJfcF9oCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3Au
aCBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWVfcC5oCmluZGV4IDhkYjQzYTcu
LmY1MjhlNWIgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWVf
cC5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0dmFsdWVfcC5oCkBAIC00NTUs
NyArNDU1LDcgQEAgUVN0cmluZyBRU2NyaXB0VmFsdWVQcml2YXRlOjp0b1N0cmluZygpIGNvbnN0
CiAgICAgY2FzZSBDU3RyaW5nOgogICAgICAgICByZXR1cm4gbV9zdHJpbmc7CiAgICAgY2FzZSBD
TnVtYmVyOgotICAgICAgICByZXR1cm4gUVN0cmluZzo6bnVtYmVyKG1fbnVtYmVyKTsKKyAgICAg
ICAgcmV0dXJuIFFTY3JpcHRDb252ZXJ0ZXI6OnRvU3RyaW5nKG1fbnVtYmVyKTsKICAgICBjYXNl
IENTcGVjaWFsOgogICAgICAgICByZXR1cm4gbV9udW1iZXIgPT0gUVNjcmlwdFZhbHVlOjpOdWxs
VmFsdWUgPyBRU3RyaW5nOjpmcm9tTGF0aW4xKCJudWxsIikgOiBRU3RyaW5nOjpmcm9tTGF0aW4x
KCJ1bmRlZmluZWQiKTsKICAgICBjYXNlIEpTVmFsdWU6CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0
Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHAgYi9KYXZhU2Ny
aXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHAKaW5kZXgg
YjQ0YzVjYS4uOGYwOTQ1MCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNj
cmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L3Rl
c3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmNwcApAQCAtMjc0LDMwICsyNzQsNiBA
QCB2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmN0b3IoKQogICAgIFFWRVJJRlkoUVNjcmlwdFZhbHVl
KDAsIFFTdHJpbmcoImNpYW8iKSkuaXNTdHJpbmcoKSk7CiB9CiAKLXZvaWQgdHN0X1FTY3JpcHRW
YWx1ZTo6dG9TdHJpbmdfZGF0YSgpCi17Ci0gICAgUVRlc3Q6OmFkZENvbHVtbjxRU3RyaW5nPigi
Y29kZSIpOwotICAgIFFUZXN0OjphZGRDb2x1bW48UVN0cmluZz4oInJlc3VsdCIpOwotCi0gICAg
UVRlc3Q6Om5ld1Jvdygic3RyaW5nIikgPDwgUVN0cmluZzo6ZnJvbUFzY2lpKCInaGVsbG8nIikg
PDwgUVN0cmluZzo6ZnJvbUFzY2lpKCJoZWxsbyIpOwotICAgIFFUZXN0OjpuZXdSb3coInN0cmlu
ZyB1dGYiKSA8PCBRU3RyaW5nOjpmcm9tVXRmOCgiJ8SFxZvEh8W8xbrDs8WCxYTEmSciKSA8PCBR
U3RyaW5nOjpmcm9tVXRmOCgixIXFm8SHxbzFusOzxYLFhMSZIik7Ci0gICAgUVRlc3Q6Om5ld1Jv
dygiZXhwcmVzc2lvbiIpIDw8IFFTdHJpbmc6OmZyb21Bc2NpaSgiMSArIDQiKSA8PCBRU3RyaW5n
Ojpmcm9tQXNjaWkoIjUiKTsKLSAgICBRVGVzdDo6bmV3Um93KCJudWxsIikgPDwgUVN0cmluZzo6
ZnJvbUFzY2lpKCJudWxsIikgPDwgUVN0cmluZzo6ZnJvbUFzY2lpKCJudWxsIik7Ci0gICAgUVRl
c3Q6Om5ld1JvdygiYm9vbGVhbiIpIDw8IFFTdHJpbmc6OmZyb21Bc2NpaSgiZmFsc2UiKSA8PCBR
U3RyaW5nOjpmcm9tQXNjaWkoImZhbHNlIik7Ci0gICAgUVRlc3Q6Om5ld1JvdygidW5kZWZpbmVk
IikgPDwgUVN0cmluZzo6ZnJvbUFzY2lpKCJ1bmRlZmluZWQiKSA8PCBRU3RyaW5nOjpmcm9tQXNj
aWkoInVuZGVmaW5lZCIpOwotICAgIFFUZXN0OjpuZXdSb3coIm9iamVjdCIpIDw8IFFTdHJpbmc6
OmZyb21Bc2NpaSgibmV3IE9iamVjdCIpIDw8IFFTdHJpbmc6OmZyb21Bc2NpaSgiW29iamVjdCBP
YmplY3RdIik7Ci19Ci0KLS8qIFRlc3QgY29udmVyc2lvbiB0byBzdHJpbmcgZnJvbSBkaWZmZXJl
bnQgSlNDIHR5cGVzICovCi12b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5nKCkKLXsKLSAg
ICBRRkVUQ0goUVN0cmluZywgY29kZSk7Ci0gICAgUUZFVENIKFFTdHJpbmcsIHJlc3VsdCk7Ci0K
LSAgICBRU2NyaXB0RW5naW5lIGVuZ2luZTsKLSAgICBRQ09NUEFSRShlbmdpbmUuZXZhbHVhdGUo
Y29kZSkudG9TdHJpbmcoKSwgcmVzdWx0KTsKLX0KLQogdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjpj
b3B5Q29uc3RydWN0b3JfZGF0YSgpCiB7CiAgICAgUVNjcmlwdEVuZ2luZSBlbmdpbmU7CmRpZmYg
LS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2
YWx1ZS5oIGIvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0
dmFsdWUuaAppbmRleCAxYjNjNjU3Li4xZTZjMjVhIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5oCisrKyBiL0phdmFTY3Jp
cHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmgKQEAgLTM2LDgg
KzM2LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfnRzdF9RU2NyaXB0VmFsdWUoKTsKIAogcHJp
dmF0ZSBzbG90czoKLSAgICB2b2lkIHRvU3RyaW5nX2RhdGEoKTsKLSAgICB2b2lkIHRvU3RyaW5n
KCk7CiAgICAgdm9pZCBjb3B5Q29uc3RydWN0b3JfZGF0YSgpOwogICAgIHZvaWQgY29weUNvbnN0
cnVjdG9yKCk7CiAgICAgdm9pZCBhc3NpZ25PcGVyYXRvcl9kYXRhKCk7CkBAIC03Niw2ICs3NCw5
IEBAIHByaXZhdGUgc2xvdHM6CiAgICAgdm9pZCBpc1ZhbGlkX2RhdGEoKTsKICAgICB2b2lkIGlz
VmFsaWQoKTsKIAorICAgIHZvaWQgdG9TdHJpbmdfZGF0YSgpOworICAgIHZvaWQgdG9TdHJpbmco
KTsKKwogICAgIHZvaWQgdG9OdW1iZXJfZGF0YSgpOwogICAgIHZvaWQgdG9OdW1iZXIoKTsKIApA
QCAtMTQ2LDYgKzE0NywxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgaXNWYWxpZF9tYWtlRGF0YShj
b25zdCBjaGFyKiBleHByKTsKICAgICB2b2lkIGlzVmFsaWRfdGVzdChjb25zdCBjaGFyKiBleHBy
LCBjb25zdCBRU2NyaXB0VmFsdWUmIHZhbHVlKTsKIAorICAgIHZvaWQgdG9TdHJpbmdfaW5pdERh
dGEoKTsKKyAgICB2b2lkIHRvU3RyaW5nX21ha2VEYXRhKGNvbnN0IGNoYXIqKTsKKyAgICB2b2lk
IHRvU3RyaW5nX3Rlc3QoY29uc3QgY2hhciosIGNvbnN0IFFTY3JpcHRWYWx1ZSYpOworCiAgICAg
dm9pZCB0b051bWJlcl9pbml0RGF0YSgpOwogICAgIHZvaWQgdG9OdW1iZXJfbWFrZURhdGEoY29u
c3QgY2hhciopOwogICAgIHZvaWQgdG9OdW1iZXJfdGVzdChjb25zdCBjaGFyKiwgY29uc3QgUVNj
cmlwdFZhbHVlJik7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0
dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWQuY3BwIGIvSmF2YVNjcmlwdENvcmUvcXQv
dGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVkLmNwcAppbmRleCAw
MDZiMzQzLi5iNjZjYWMyIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2Ny
aXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWQuY3BwCisrKyBiL0phdmFTY3JpcHRD
b3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlX2dlbmVyYXRlZC5jcHAK
QEAgLTU1Niw2ICs1NTYsMTMxIEBAIHZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6aXNPYmplY3RfdGVz
dChjb25zdCBjaGFyKiwgY29uc3QgUVNjcmlwdFZhbHVlJiB2YWx1ZSkKIAogREVGSU5FX1RFU1Rf
RlVOQ1RJT04oaXNPYmplY3QpCiAKK3ZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6dG9TdHJpbmdfaW5p
dERhdGEoKQoreworICAgIFFUZXN0OjphZGRDb2x1bW48UVN0cmluZz4oImV4cGVjdGVkIik7Cisg
ICAgaW5pdFNjcmlwdFZhbHVlcygpOworfQorCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvU3Ry
aW5nX21ha2VEYXRhKGNvbnN0IGNoYXIqIGV4cHIpCit7CisgICAgc3RhdGljIFFIYXNoPFFTdHJp
bmcsIFFTdHJpbmc+IHRvU3RyaW5nOworICAgIGlmICh0b1N0cmluZy5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoKSIsICIiKTsKKyAgICAgICAgdG9T
dHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoUVNjcmlwdFZhbHVlOjpVbmRlZmluZWRWYWx1ZSki
LCAidW5kZWZpbmVkIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKFFT
Y3JpcHRWYWx1ZTo6TnVsbFZhbHVlKSIsICJudWxsIik7CisgICAgICAgIHRvU3RyaW5nLmluc2Vy
dCgiUVNjcmlwdFZhbHVlKHRydWUpIiwgInRydWUiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0
KCJRU2NyaXB0VmFsdWUoZmFsc2UpIiwgImZhbHNlIik7CisgICAgICAgIHRvU3RyaW5nLmluc2Vy
dCgiUVNjcmlwdFZhbHVlKGludCgxMjIpKSIsICIxMjIiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5z
ZXJ0KCJRU2NyaXB0VmFsdWUodWludCgxMjQpKSIsICIxMjQiKTsKKyAgICAgICAgdG9TdHJpbmcu
aW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCkiLCAiMCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQo
IlFTY3JpcHRWYWx1ZSgwLjApIiwgIjAiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2Ny
aXB0VmFsdWUoMTIzLjApIiwgIjEyMyIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3Jp
cHRWYWx1ZSg2LjM3ZS04KSIsICI2LjM3ZS04Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgi
UVNjcmlwdFZhbHVlKC02LjM3ZS04KSIsICItNi4zN2UtOCIpOworICAgICAgICB0b1N0cmluZy5p
bnNlcnQoIlFTY3JpcHRWYWx1ZSgweDQzMjExMjM0KSIsICIxMTI2MjQwODIwIik7CisgICAgICAg
IHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDB4MTAwMDApIiwgIjY1NTM2Iik7CisgICAg
ICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDB4MTAwMDEpIiwgIjY1NTM3Iik7Cisg
ICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKHFTTmFOKCkpIiwgIk5hTiIpOwor
ICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShxUU5hTigpKSIsICJOYU4iKTsK
KyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUocUluZigpKSIsICJJbmZpbml0
eSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgtcUluZigpKSIsICIt
SW5maW5pdHkiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoXCJOYU5c
IikiLCAiTmFOIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKFwiSW5m
aW5pdHlcIikiLCAiSW5maW5pdHkiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0
VmFsdWUoXCItSW5maW5pdHlcIikiLCAiLUluZmluaXR5Iik7CisgICAgICAgIHRvU3RyaW5nLmlu
c2VydCgiUVNjcmlwdFZhbHVlKFwiY2lhb1wiKSIsICJjaWFvIik7CisgICAgICAgIHRvU3RyaW5n
Lmluc2VydCgiUVNjcmlwdFZhbHVlKFFTdHJpbmc6OmZyb21MYXRpbjEoXCJjaWFvXCIpKSIsICJj
aWFvIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKFFTdHJpbmcoXCJc
IikpIiwgIiIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShRU3RyaW5n
KCkpIiwgIiIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShRU3RyaW5n
KFwiMFwiKSkiLCAiMCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShR
U3RyaW5nKFwiMTIzXCIpKSIsICIxMjMiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2Ny
aXB0VmFsdWUoUVN0cmluZyhcIjEyLjRcIikpIiwgIjEyLjQiKTsKKyAgICAgICAgdG9TdHJpbmcu
aW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgUVNjcmlwdFZhbHVlOjpVbmRlZmluZWRWYWx1ZSkiLCAi
dW5kZWZpbmVkIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIFFT
Y3JpcHRWYWx1ZTo6TnVsbFZhbHVlKSIsICJudWxsIik7CisgICAgICAgIHRvU3RyaW5nLmluc2Vy
dCgiUVNjcmlwdFZhbHVlKDAsIHRydWUpIiwgInRydWUiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5z
ZXJ0KCJRU2NyaXB0VmFsdWUoMCwgZmFsc2UpIiwgImZhbHNlIik7CisgICAgICAgIHRvU3RyaW5n
Lmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIGludCgxMjIpKSIsICIxMjIiKTsKKyAgICAgICAgdG9T
dHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgdWludCgxMjQpKSIsICIxMjQiKTsKKyAgICAg
ICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgMCkiLCAiMCIpOworICAgICAgICB0
b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCAwLjApIiwgIjAiKTsKKyAgICAgICAgdG9T
dHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgMTIzLjApIiwgIjEyMyIpOworICAgICAgICB0
b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCA2LjM3ZS04KSIsICI2LjM3ZS04Iik7Cisg
ICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIC02LjM3ZS04KSIsICItNi4z
N2UtOCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCAweDQzMjEx
MjM0KSIsICIxMTI2MjQwODIwIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZh
bHVlKDAsIDB4MTAwMDApIiwgIjY1NTM2Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNj
cmlwdFZhbHVlKDAsIDB4MTAwMDEpIiwgIjY1NTM3Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2Vy
dCgiUVNjcmlwdFZhbHVlKDAsIHFTTmFOKCkpIiwgIk5hTiIpOworICAgICAgICB0b1N0cmluZy5p
bnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCBxUU5hTigpKSIsICJOYU4iKTsKKyAgICAgICAgdG9TdHJp
bmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgcUluZigpKSIsICJJbmZpbml0eSIpOworICAgICAg
ICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCAtcUluZigpKSIsICItSW5maW5pdHki
KTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgXCJOYU5cIikiLCAi
TmFOIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIFwiSW5maW5p
dHlcIikiLCAiSW5maW5pdHkiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFs
dWUoMCwgXCItSW5maW5pdHlcIikiLCAiLUluZmluaXR5Iik7CisgICAgICAgIHRvU3RyaW5nLmlu
c2VydCgiUVNjcmlwdFZhbHVlKDAsIFwiY2lhb1wiKSIsICJjaWFvIik7CisgICAgICAgIHRvU3Ry
aW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIFFTdHJpbmc6OmZyb21MYXRpbjEoXCJjaWFvXCIp
KSIsICJjaWFvIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIFFT
dHJpbmcoXCJcIikpIiwgIiIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1
ZSgwLCBRU3RyaW5nKCkpIiwgIiIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRW
YWx1ZSgwLCBRU3RyaW5nKFwiMFwiKSkiLCAiMCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQo
IlFTY3JpcHRWYWx1ZSgwLCBRU3RyaW5nKFwiMTIzXCIpKSIsICIxMjMiKTsKKyAgICAgICAgdG9T
dHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgUVN0cmluZyhcIjEyLjNcIikpIiwgIjEyLjMi
KTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBRU2NyaXB0
VmFsdWU6OlVuZGVmaW5lZFZhbHVlKSIsICJ1bmRlZmluZWQiKTsKKyAgICAgICAgdG9TdHJpbmcu
aW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBRU2NyaXB0VmFsdWU6Ok51bGxWYWx1ZSkiLCAi
bnVsbCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShlbmdpbmUsIHRy
dWUpIiwgInRydWUiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5n
aW5lLCBmYWxzZSkiLCAiZmFsc2UiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0
VmFsdWUoZW5naW5lLCBpbnQoMTIyKSkiLCAiMTIyIik7CisgICAgICAgIHRvU3RyaW5nLmluc2Vy
dCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgdWludCgxMjQpKSIsICIxMjQiKTsKKyAgICAgICAgdG9T
dHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCAwKSIsICIwIik7CisgICAgICAgIHRv
U3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgMC4wKSIsICIwIik7CisgICAgICAg
IHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgMTIzLjApIiwgIjEyMyIpOwor
ICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShlbmdpbmUsIDYuMzdlLTgpIiwg
IjYuMzdlLTgiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5l
LCAtNi4zN2UtOCkiLCAiLTYuMzdlLTgiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2Ny
aXB0VmFsdWUoZW5naW5lLCAweDQzMjExMjM0KSIsICIxMTI2MjQwODIwIik7CisgICAgICAgIHRv
U3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgMHgxMDAwMCkiLCAiNjU1MzYiKTsK
KyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCAweDEwMDAxKSIs
ICI2NTUzNyIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShlbmdpbmUs
IHFTTmFOKCkpIiwgIk5hTiIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1
ZShlbmdpbmUsIHFRTmFOKCkpIiwgIk5hTiIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFT
Y3JpcHRWYWx1ZShlbmdpbmUsIHFJbmYoKSkiLCAiSW5maW5pdHkiKTsKKyAgICAgICAgdG9TdHJp
bmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCAtcUluZigpKSIsICItSW5maW5pdHkiKTsK
KyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBcIk5hTlwiKSIs
ICJOYU4iKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBc
IkluZmluaXR5XCIpIiwgIkluZmluaXR5Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNj
cmlwdFZhbHVlKGVuZ2luZSwgXCItSW5maW5pdHlcIikiLCAiLUluZmluaXR5Iik7CisgICAgICAg
IHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgXCJjaWFvXCIpIiwgImNpYW8i
KTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBRU3RyaW5n
Ojpmcm9tTGF0aW4xKFwiY2lhb1wiKSkiLCAiY2lhbyIpOworICAgICAgICB0b1N0cmluZy5pbnNl
cnQoIlFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTdHJpbmcoXCJcIikpIiwgIiIpOworICAgICAgICB0
b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTdHJpbmcoKSkiLCAiIik7Cisg
ICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmluZyhcIjBc
IikpIiwgIjAiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5l
LCBRU3RyaW5nKFwiMTIzXCIpKSIsICIxMjMiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJR
U2NyaXB0VmFsdWUoZW5naW5lLCBRU3RyaW5nKFwiMS4yM1wiKSkiLCAiMS4yMyIpOworICAgICAg
ICB0b1N0cmluZy5pbnNlcnQoImVuZ2luZS0+ZXZhbHVhdGUoXCJbXVwiKSIsICIiKTsKKyAgICAg
ICAgdG9TdHJpbmcuaW5zZXJ0KCJlbmdpbmUtPmV2YWx1YXRlKFwie31cIikiLCAidW5kZWZpbmVk
Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiZW5naW5lLT5ldmFsdWF0ZShcIk9iamVjdC5w
cm90b3R5cGVcIikiLCAiW29iamVjdCBPYmplY3RdIik7CisgICAgICAgIHRvU3RyaW5nLmluc2Vy
dCgiZW5naW5lLT5ldmFsdWF0ZShcIkRhdGUucHJvdG90eXBlXCIpIiwgIkludmFsaWQgRGF0ZSIp
OworICAgICAgICB0b1N0cmluZy5pbnNlcnQoImVuZ2luZS0+ZXZhbHVhdGUoXCJBcnJheS5wcm90
b3R5cGVcIikiLCAiIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiZW5naW5lLT5ldmFsdWF0
ZShcIkZ1bmN0aW9uLnByb3RvdHlwZVwiKSIsICJmdW5jdGlvbiAoKSB7XG4gICAgW25hdGl2ZSBj
b2RlXVxufSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoImVuZ2luZS0+ZXZhbHVhdGUoXCJF
cnJvci5wcm90b3R5cGVcIikiLCAiRXJyb3I6IFVua25vd24gZXJyb3IiKTsKKyAgICAgICAgdG9T
dHJpbmcuaW5zZXJ0KCJlbmdpbmUtPmV2YWx1YXRlKFwiT2JqZWN0XCIpIiwgImZ1bmN0aW9uIE9i
amVjdCgpIHtcbiAgICBbbmF0aXZlIGNvZGVdXG59Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2Vy
dCgiZW5naW5lLT5ldmFsdWF0ZShcIkFycmF5XCIpIiwgImZ1bmN0aW9uIEFycmF5KCkge1xuICAg
IFtuYXRpdmUgY29kZV1cbn0iKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJlbmdpbmUtPmV2
YWx1YXRlKFwiTnVtYmVyXCIpIiwgImZ1bmN0aW9uIE51bWJlcigpIHtcbiAgICBbbmF0aXZlIGNv
ZGVdXG59Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiZW5naW5lLT5ldmFsdWF0ZShcIkZ1
bmN0aW9uXCIpIiwgImZ1bmN0aW9uIEZ1bmN0aW9uKCkge1xuICAgIFtuYXRpdmUgY29kZV1cbn0i
KTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJlbmdpbmUtPmV2YWx1YXRlKFwiKGZ1bmN0aW9u
KCkgeyByZXR1cm4gMTsgfSlcIikiLCAiZnVuY3Rpb24gKCkgeyByZXR1cm4gMTsgfSIpOworICAg
ICAgICB0b1N0cmluZy5pbnNlcnQoImVuZ2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7IHJl
dHVybiAnY2lhbyc7IH0pXCIpIiwgImZ1bmN0aW9uICgpIHsgcmV0dXJuICdjaWFvJzsgfSIpOwor
ICAgICAgICB0b1N0cmluZy5pbnNlcnQoImVuZ2luZS0+ZXZhbHVhdGUoXCIoZnVuY3Rpb24oKSB7
IHRocm93IG5ldyBFcnJvcignZm9vJyk7IH0pXCIpIiwgImZ1bmN0aW9uICgpIHsgdGhyb3cgbmV3
IEVycm9yKCdmb28nKTsgfSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoImVuZ2luZS0+ZXZh
bHVhdGUoXCIvZm9vL1wiKSIsICIvZm9vLyIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoImVu
Z2luZS0+ZXZhbHVhdGUoXCJuZXcgT2JqZWN0KClcIikiLCAiW29iamVjdCBPYmplY3RdIik7Cisg
ICAgICAgIHRvU3RyaW5nLmluc2VydCgiZW5naW5lLT5ldmFsdWF0ZShcIm5ldyBBcnJheSgpXCIp
IiwgIiIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoImVuZ2luZS0+ZXZhbHVhdGUoXCJuZXcg
RXJyb3IoKVwiKSIsICJFcnJvcjogVW5rbm93biBlcnJvciIpOworICAgIH0KKyAgICBuZXdSb3co
ZXhwcikgPDwgdG9TdHJpbmcudmFsdWUoZXhwcik7Cit9CisKK3ZvaWQgdHN0X1FTY3JpcHRWYWx1
ZTo6dG9TdHJpbmdfdGVzdChjb25zdCBjaGFyKiwgY29uc3QgUVNjcmlwdFZhbHVlJiB2YWx1ZSkK
K3sKKyAgICBRRkVUQ0goUVN0cmluZywgZXhwZWN0ZWQpOworICAgIFFDT01QQVJFKHZhbHVlLnRv
U3RyaW5nKCksIGV4cGVjdGVkKTsKK30KKworREVGSU5FX1RFU1RfRlVOQ1RJT04odG9TdHJpbmcp
CisKIHZvaWQgdHN0X1FTY3JpcHRWYWx1ZTo6dG9OdW1iZXJfaW5pdERhdGEoKQogewogICAgIFFU
ZXN0OjphZGRDb2x1bW48cXNyZWFsPigiZXhwZWN0ZWQiKTsK
</data>
<flag name="review"
          id="31351"
          type_id="1"
          status="-"
          setter="hausmann"
    />
    <flag name="commit-queue"
          id="31352"
          type_id="3"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48807</attachid>
            <date>2010-02-16 05:11:53 -0800</date>
            <delta_ts>2010-02-19 03:31:40 -0800</delta_ts>
            <desc>Fix v2</desc>
            <filename>toStringV2.diff</filename>
            <type>text/plain</type>
            <size>13810</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA4ZDdlYzk4Li42NTkyZjAwIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTAtMDItMTIgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93YWNraUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4
IFFTY3JpcHRWYWx1ZTo6dG9TdHJpbmcoKS4KKworICAgICAgICBNb3JlIEVDTUEgU2NyaXB0IGNv
bXBsaWFuY2UsIGVzcGVjaWFsbHkgZm9yIHZhbHVlcyBhcyBOYU4sIEluaWZpbml0ZQorICAgICAg
ICBhbmQgcmVhbGx5IGJpZy9zbWFsbCBudW1iZXJzLgorCisgICAgICAgIFtRdF0gUVNjcmlwdFZh
bHVlOjp0b1N0cmluZygpIHJldHVybnMgaW5jb3JyZWN0IHZhbHVlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ4NTAKKworICAgICAgICAqIHF0L2Fw
aS9xc2NyaXB0Y29udmVydGVyX3AuaDoKKyAgICAgICAgKFFTY3JpcHRDb252ZXJ0ZXI6OnRvU3Ry
aW5nKToKKyAgICAgICAgKiBxdC9hcGkvcXNjcmlwdHZhbHVlX3AuaDoKKyAgICAgICAgKFFTY3Jp
cHRWYWx1ZVByaXZhdGU6OnRvU3RyaW5nKToKKyAgICAgICAgKiBxdC90ZXN0cy9xc2NyaXB0dmFs
dWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHA6CisgICAgICAgICogcXQvdGVzdHMvcXNjcmlwdHZhbHVl
L3RzdF9xc2NyaXB0dmFsdWUuaDoKKyAgICAgICAgKiBxdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0
X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWQuY3BwOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6
dG9TdHJpbmdfaW5pdERhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6dG9TdHJpbmdf
bWFrZURhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6dG9TdHJpbmdfdGVzdCk6CisK
IDIwMTAtMDItMTEgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93YWNraUBub2tpYS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGNvbnZlcnRlcl9wLmggYi9KYXZhU2NyaXB0Q29yZS9x
dC9hcGkvcXNjcmlwdGNvbnZlcnRlcl9wLmgKaW5kZXggMmNmNjY1ZC4uNzQ5NDMxNSAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRjb252ZXJ0ZXJfcC5oCisrKyBiL0ph
dmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0Y29udmVydGVyX3AuaApAQCAtNTIsNiArNTIsMzcg
QEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKHN0cik7CiAgICAgfQorICAgIHN0YXRpYyBRU3RyaW5nIHRvU3RyaW5nKGRvdWJsZSBu
dW1iZXIpCisgICAgeworICAgICAgICAvLyBGSVhNRSB0aGlzIHNob3VsZCBiZSBlYXNpZXIuIFRo
ZSBRU3RyaW5nIEFQSSBoYWQgdG8gYmUgZGV2ZWxvcGVkLCBpdCBzaG91bGQgY29udGFpbgorICAg
ICAgICAvLyBhIGNvbnZlcnRpbmcgZnVuY3Rpb24sIGEgYml0IG1vcmUgZmxleGlibGUgdGhlbiB0
aGUgbnVtYmVyKCkuIFRoZSBpZGVhbCBmaXggaXMgdG8gY3JlYXRlCisgICAgICAgIC8vIGEgbmV3
IGZ1bmN0aW9uIGluIEpTQyBDIEFQSSB3aGljaCBjb3VsZCBjb3ZlciB0aGUgZnVuY3Rpb25hbGl0
eS4KKyAgICAgICAgaWYgKHFJc0luZihudW1iZXIpKQorICAgICAgICAgICAgcmV0dXJuIG51bWJl
ciA+IDAgPyAiSW5maW5pdHkiIDogIi1JbmZpbml0eSI7CisgICAgICAgIGlmIChxSXNOYU4obnVt
YmVyKSkKKyAgICAgICAgICAgIHJldHVybiAiTmFOIjsKKyAgICAgICAgUVN0cmluZyByZXN1bHQg
PSBRU3RyaW5nOjpudW1iZXIobnVtYmVyLCAnZycsIC8qIHByZWMgKi8gMTIpOworCisgICAgICAg
IC8vIFFTdHJpbmc6Om51bWJlciByZXR1cm4gY29uc3RhbnQgcHJlY2lzaW9uLCBzbyBlbmRpbmcg
JzAnIGhhdmUgdG8gYmUgcmVtb3ZlZC4KKyAgICAgICAgdW5zaWduZWQgdG9DaG9wID0gMDsKKyAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gcmVzdWx0Lmxlbmd0aCgpIC0gMTsgaSA+IDA7IC0taSkg
eworICAgICAgICAgICAgaWYgKHJlc3VsdC5hdChpKSA9PSAnMCcpCisgICAgICAgICAgICAgICAg
Kyt0b0Nob3A7CisgICAgICAgICAgICBlbHNlIGlmIChyZXN1bHQuYXQoaSkgPT0gJy4nKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKHRvQ2hvcCA9PSByZXN1bHQubGVuZ3RoKCkgLSBpIC0gMSkKKyAg
ICAgICAgICAgICAgICAgICAgKyt0b0Nob3A7IC8vIFJlbW92ZSB0aGUgcG9pbnQgdG9vLgorICAg
ICAgICAgICAgICAgIHJlc3VsdC5jaG9wKHRvQ2hvcCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICB9IGVsc2UgaWYgKHJlc3VsdC5hdChpKSA9PSAnZScpIHsKKyAgICAgICAg
ICAgICAgICAvLyBFeHBvbmVudGlhbCAoc2NpZW50aWZpYykgbm90YXRpb24gaGFzIGJlZW4gZm91
bmQuCisgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIGxlYWRpbmcgemVyb3MgZnJvbSBleHBvbmVu
dCAoZm9yIGV4YW1wbGUgNi4zN2UtMDggLT4gNi4zN2UtOCkuCisgICAgICAgICAgICAgICAgd2hp
bGUgKHJlc3VsdC5hdChpICsgMikgPT0gJzAnKQorICAgICAgICAgICAgICAgICAgICByZXN1bHQu
cmVtb3ZlKGkgKyAyLCAxKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KIH07CiAKICNlbmRpZiAv
LyBxc2NyaXB0Y29udmVydGVyX3BfaApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBp
L3FzY3JpcHR2YWx1ZV9wLmggYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3Au
aAppbmRleCA4ZGI0M2E3Li5mNTI4ZTViIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9h
cGkvcXNjcmlwdHZhbHVlX3AuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZh
bHVlX3AuaApAQCAtNDU1LDcgKzQ1NSw3IEBAIFFTdHJpbmcgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6
dG9TdHJpbmcoKSBjb25zdAogICAgIGNhc2UgQ1N0cmluZzoKICAgICAgICAgcmV0dXJuIG1fc3Ry
aW5nOwogICAgIGNhc2UgQ051bWJlcjoKLSAgICAgICAgcmV0dXJuIFFTdHJpbmc6Om51bWJlciht
X251bWJlcik7CisgICAgICAgIHJldHVybiBRU2NyaXB0Q29udmVydGVyOjp0b1N0cmluZyhtX251
bWJlcik7CiAgICAgY2FzZSBDU3BlY2lhbDoKICAgICAgICAgcmV0dXJuIG1fbnVtYmVyID09IFFT
Y3JpcHRWYWx1ZTo6TnVsbFZhbHVlID8gUVN0cmluZzo6ZnJvbUxhdGluMSgibnVsbCIpIDogUVN0
cmluZzo6ZnJvbUxhdGluMSgidW5kZWZpbmVkIik7CiAgICAgY2FzZSBKU1ZhbHVlOgpkaWZmIC0t
Z2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFs
dWUuY3BwIGIvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0
dmFsdWUuY3BwCmluZGV4IGI0NGM1Y2EuLjgyZjA5MDEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRD
b3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmNwcAorKysgYi9KYXZh
U2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHAKQEAg
LTI3NCw3ICsyNzQsNyBAQCB2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmN0b3IoKQogICAgIFFWRVJJ
RlkoUVNjcmlwdFZhbHVlKDAsIFFTdHJpbmcoImNpYW8iKSkuaXNTdHJpbmcoKSk7CiB9CiAKLXZv
aWQgdHN0X1FTY3JpcHRWYWx1ZTo6dG9TdHJpbmdfZGF0YSgpCit2b2lkIHRzdF9RU2NyaXB0VmFs
dWU6OnRvU3RyaW5nU2ltcGxlX2RhdGEoKQogewogICAgIFFUZXN0OjphZGRDb2x1bW48UVN0cmlu
Zz4oImNvZGUiKTsKICAgICBRVGVzdDo6YWRkQ29sdW1uPFFTdHJpbmc+KCJyZXN1bHQiKTsKQEAg
LTI4OSw3ICsyODksNyBAQCB2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5nX2RhdGEoKQog
fQogCiAvKiBUZXN0IGNvbnZlcnNpb24gdG8gc3RyaW5nIGZyb20gZGlmZmVyZW50IEpTQyB0eXBl
cyAqLwotdm9pZCB0c3RfUVNjcmlwdFZhbHVlOjp0b1N0cmluZygpCit2b2lkIHRzdF9RU2NyaXB0
VmFsdWU6OnRvU3RyaW5nU2ltcGxlKCkKIHsKICAgICBRRkVUQ0goUVN0cmluZywgY29kZSk7CiAg
ICAgUUZFVENIKFFTdHJpbmcsIHJlc3VsdCk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9x
dC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5oIGIvSmF2YVNjcmlwdENvcmUv
cXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuaAppbmRleCAxYjNjNjU3Li4y
ODE1NGE5IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUv
dHN0X3FzY3JpcHR2YWx1ZS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2
YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmgKQEAgLTM2LDggKzM2LDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgfnRzdF9RU2NyaXB0VmFsdWUoKTsKIAogcHJpdmF0ZSBzbG90czoKLSAgICB2b2lkIHRv
U3RyaW5nX2RhdGEoKTsKLSAgICB2b2lkIHRvU3RyaW5nKCk7CisgICAgdm9pZCB0b1N0cmluZ1Np
bXBsZV9kYXRhKCk7CisgICAgdm9pZCB0b1N0cmluZ1NpbXBsZSgpOwogICAgIHZvaWQgY29weUNv
bnN0cnVjdG9yX2RhdGEoKTsKICAgICB2b2lkIGNvcHlDb25zdHJ1Y3RvcigpOwogICAgIHZvaWQg
YXNzaWduT3BlcmF0b3JfZGF0YSgpOwpAQCAtNzYsNiArNzYsOSBAQCBwcml2YXRlIHNsb3RzOgog
ICAgIHZvaWQgaXNWYWxpZF9kYXRhKCk7CiAgICAgdm9pZCBpc1ZhbGlkKCk7CiAKKyAgICB2b2lk
IHRvU3RyaW5nX2RhdGEoKTsKKyAgICB2b2lkIHRvU3RyaW5nKCk7CisKICAgICB2b2lkIHRvTnVt
YmVyX2RhdGEoKTsKICAgICB2b2lkIHRvTnVtYmVyKCk7CiAKQEAgLTE0Niw2ICsxNDksMTAgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGlzVmFsaWRfbWFrZURhdGEoY29uc3QgY2hhciogZXhwcik7CiAg
ICAgdm9pZCBpc1ZhbGlkX3Rlc3QoY29uc3QgY2hhciogZXhwciwgY29uc3QgUVNjcmlwdFZhbHVl
JiB2YWx1ZSk7CiAKKyAgICB2b2lkIHRvU3RyaW5nX2luaXREYXRhKCk7CisgICAgdm9pZCB0b1N0
cmluZ19tYWtlRGF0YShjb25zdCBjaGFyKik7CisgICAgdm9pZCB0b1N0cmluZ190ZXN0KGNvbnN0
IGNoYXIqLCBjb25zdCBRU2NyaXB0VmFsdWUmKTsKKwogICAgIHZvaWQgdG9OdW1iZXJfaW5pdERh
dGEoKTsKICAgICB2b2lkIHRvTnVtYmVyX21ha2VEYXRhKGNvbnN0IGNoYXIqKTsKICAgICB2b2lk
IHRvTnVtYmVyX3Rlc3QoY29uc3QgY2hhciosIGNvbnN0IFFTY3JpcHRWYWx1ZSYpOwpkaWZmIC0t
Z2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFs
dWVfZ2VuZXJhdGVkLmNwcCBiL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90
c3RfcXNjcmlwdHZhbHVlX2dlbmVyYXRlZC5jcHAKaW5kZXggMDA2YjM0My4uYjY2Y2FjMiAxMDA2
NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0
dmFsdWVfZ2VuZXJhdGVkLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0
dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWQuY3BwCkBAIC01NTYsNiArNTU2LDEzMSBA
QCB2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmlzT2JqZWN0X3Rlc3QoY29uc3QgY2hhciosIGNvbnN0
IFFTY3JpcHRWYWx1ZSYgdmFsdWUpCiAKIERFRklORV9URVNUX0ZVTkNUSU9OKGlzT2JqZWN0KQog
Cit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5nX2luaXREYXRhKCkKK3sKKyAgICBRVGVz
dDo6YWRkQ29sdW1uPFFTdHJpbmc+KCJleHBlY3RlZCIpOworICAgIGluaXRTY3JpcHRWYWx1ZXMo
KTsKK30KKwordm9pZCB0c3RfUVNjcmlwdFZhbHVlOjp0b1N0cmluZ19tYWtlRGF0YShjb25zdCBj
aGFyKiBleHByKQoreworICAgIHN0YXRpYyBRSGFzaDxRU3RyaW5nLCBRU3RyaW5nPiB0b1N0cmlu
ZzsKKyAgICBpZiAodG9TdHJpbmcuaXNFbXB0eSgpKSB7CisgICAgICAgIHRvU3RyaW5nLmluc2Vy
dCgiUVNjcmlwdFZhbHVlKCkiLCAiIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlw
dFZhbHVlKFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVkVmFsdWUpIiwgInVuZGVmaW5lZCIpOworICAg
ICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShRU2NyaXB0VmFsdWU6Ok51bGxWYWx1
ZSkiLCAibnVsbCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSh0cnVl
KSIsICJ0cnVlIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGZhbHNl
KSIsICJmYWxzZSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShpbnQo
MTIyKSkiLCAiMTIyIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKHVp
bnQoMTI0KSkiLCAiMTI0Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVl
KDApIiwgIjAiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMC4wKSIs
ICIwIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDEyMy4wKSIsICIx
MjMiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoNi4zN2UtOCkiLCAi
Ni4zN2UtOCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgtNi4zN2Ut
OCkiLCAiLTYuMzdlLTgiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUo
MHg0MzIxMTIzNCkiLCAiMTEyNjI0MDgyMCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFT
Y3JpcHRWYWx1ZSgweDEwMDAwKSIsICI2NTUzNiIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQo
IlFTY3JpcHRWYWx1ZSgweDEwMDAxKSIsICI2NTUzNyIpOworICAgICAgICB0b1N0cmluZy5pbnNl
cnQoIlFTY3JpcHRWYWx1ZShxU05hTigpKSIsICJOYU4iKTsKKyAgICAgICAgdG9TdHJpbmcuaW5z
ZXJ0KCJRU2NyaXB0VmFsdWUocVFOYU4oKSkiLCAiTmFOIik7CisgICAgICAgIHRvU3RyaW5nLmlu
c2VydCgiUVNjcmlwdFZhbHVlKHFJbmYoKSkiLCAiSW5maW5pdHkiKTsKKyAgICAgICAgdG9TdHJp
bmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoLXFJbmYoKSkiLCAiLUluZmluaXR5Iik7CisgICAgICAg
IHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKFwiTmFOXCIpIiwgIk5hTiIpOworICAgICAg
ICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShcIkluZmluaXR5XCIpIiwgIkluZmluaXR5
Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKFwiLUluZmluaXR5XCIp
IiwgIi1JbmZpbml0eSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShc
ImNpYW9cIikiLCAiY2lhbyIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1
ZShRU3RyaW5nOjpmcm9tTGF0aW4xKFwiY2lhb1wiKSkiLCAiY2lhbyIpOworICAgICAgICB0b1N0
cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShRU3RyaW5nKFwiXCIpKSIsICIiKTsKKyAgICAgICAg
dG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoUVN0cmluZygpKSIsICIiKTsKKyAgICAgICAg
dG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoUVN0cmluZyhcIjBcIikpIiwgIjAiKTsKKyAg
ICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoUVN0cmluZyhcIjEyM1wiKSkiLCAi
MTIzIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKFFTdHJpbmcoXCIx
Mi40XCIpKSIsICIxMi40Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVl
KDAsIFFTY3JpcHRWYWx1ZTo6VW5kZWZpbmVkVmFsdWUpIiwgInVuZGVmaW5lZCIpOworICAgICAg
ICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCBRU2NyaXB0VmFsdWU6Ok51bGxWYWx1
ZSkiLCAibnVsbCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCB0
cnVlKSIsICJ0cnVlIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAs
IGZhbHNlKSIsICJmYWxzZSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1
ZSgwLCBpbnQoMTIyKSkiLCAiMTIyIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlw
dFZhbHVlKDAsIHVpbnQoMTI0KSkiLCAiMTI0Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgi
UVNjcmlwdFZhbHVlKDAsIDApIiwgIjAiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2Ny
aXB0VmFsdWUoMCwgMC4wKSIsICIwIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlw
dFZhbHVlKDAsIDEyMy4wKSIsICIxMjMiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2Ny
aXB0VmFsdWUoMCwgNi4zN2UtOCkiLCAiNi4zN2UtOCIpOworICAgICAgICB0b1N0cmluZy5pbnNl
cnQoIlFTY3JpcHRWYWx1ZSgwLCAtNi4zN2UtOCkiLCAiLTYuMzdlLTgiKTsKKyAgICAgICAgdG9T
dHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgMHg0MzIxMTIzNCkiLCAiMTEyNjI0MDgyMCIp
OworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCAweDEwMDAwKSIsICI2
NTUzNiIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCAweDEwMDAx
KSIsICI2NTUzNyIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCBx
U05hTigpKSIsICJOYU4iKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUo
MCwgcVFOYU4oKSkiLCAiTmFOIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZh
bHVlKDAsIHFJbmYoKSkiLCAiSW5maW5pdHkiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJR
U2NyaXB0VmFsdWUoMCwgLXFJbmYoKSkiLCAiLUluZmluaXR5Iik7CisgICAgICAgIHRvU3RyaW5n
Lmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIFwiTmFOXCIpIiwgIk5hTiIpOworICAgICAgICB0b1N0
cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCBcIkluZmluaXR5XCIpIiwgIkluZmluaXR5Iik7
CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIFwiLUluZmluaXR5XCIp
IiwgIi1JbmZpbml0eSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgw
LCBcImNpYW9cIikiLCAiY2lhbyIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRW
YWx1ZSgwLCBRU3RyaW5nOjpmcm9tTGF0aW4xKFwiY2lhb1wiKSkiLCAiY2lhbyIpOworICAgICAg
ICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCBRU3RyaW5nKFwiXCIpKSIsICIiKTsK
KyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgUVN0cmluZygpKSIsICIi
KTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgUVN0cmluZyhcIjBc
IikpIiwgIjAiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgUVN0
cmluZyhcIjEyM1wiKSkiLCAiMTIzIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlw
dFZhbHVlKDAsIFFTdHJpbmcoXCIxMi4zXCIpKSIsICIxMi4zIik7CisgICAgICAgIHRvU3RyaW5n
Lmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVNjcmlwdFZhbHVlOjpVbmRlZmluZWRWYWx1
ZSkiLCAidW5kZWZpbmVkIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVl
KGVuZ2luZSwgUVNjcmlwdFZhbHVlOjpOdWxsVmFsdWUpIiwgIm51bGwiKTsKKyAgICAgICAgdG9T
dHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCB0cnVlKSIsICJ0cnVlIik7CisgICAg
ICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgZmFsc2UpIiwgImZhbHNl
Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgaW50KDEy
MikpIiwgIjEyMiIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShlbmdp
bmUsIHVpbnQoMTI0KSkiLCAiMTI0Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlw
dFZhbHVlKGVuZ2luZSwgMCkiLCAiMCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3Jp
cHRWYWx1ZShlbmdpbmUsIDAuMCkiLCAiMCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFT
Y3JpcHRWYWx1ZShlbmdpbmUsIDEyMy4wKSIsICIxMjMiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5z
ZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCA2LjM3ZS04KSIsICI2LjM3ZS04Iik7CisgICAgICAg
IHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgLTYuMzdlLTgpIiwgIi02LjM3
ZS04Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgMHg0
MzIxMTIzNCkiLCAiMTEyNjI0MDgyMCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3Jp
cHRWYWx1ZShlbmdpbmUsIDB4MTAwMDApIiwgIjY1NTM2Iik7CisgICAgICAgIHRvU3RyaW5nLmlu
c2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgMHgxMDAwMSkiLCAiNjU1MzciKTsKKyAgICAgICAg
dG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBxU05hTigpKSIsICJOYU4iKTsK
KyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBxUU5hTigpKSIs
ICJOYU4iKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBx
SW5mKCkpIiwgIkluZmluaXR5Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZh
bHVlKGVuZ2luZSwgLXFJbmYoKSkiLCAiLUluZmluaXR5Iik7CisgICAgICAgIHRvU3RyaW5nLmlu
c2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgXCJOYU5cIikiLCAiTmFOIik7CisgICAgICAgIHRv
U3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgXCJJbmZpbml0eVwiKSIsICJJbmZp
bml0eSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShlbmdpbmUsIFwi
LUluZmluaXR5XCIpIiwgIi1JbmZpbml0eSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFT
Y3JpcHRWYWx1ZShlbmdpbmUsIFwiY2lhb1wiKSIsICJjaWFvIik7CisgICAgICAgIHRvU3RyaW5n
Lmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmluZzo6ZnJvbUxhdGluMShcImNpYW9c
IikpIiwgImNpYW8iKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5n
aW5lLCBRU3RyaW5nKFwiXCIpKSIsICIiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2Ny
aXB0VmFsdWUoZW5naW5lLCBRU3RyaW5nKCkpIiwgIiIpOworICAgICAgICB0b1N0cmluZy5pbnNl
cnQoIlFTY3JpcHRWYWx1ZShlbmdpbmUsIFFTdHJpbmcoXCIwXCIpKSIsICIwIik7CisgICAgICAg
IHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmluZyhcIjEyM1wiKSki
LCAiMTIzIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwg
UVN0cmluZyhcIjEuMjNcIikpIiwgIjEuMjMiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJl
bmdpbmUtPmV2YWx1YXRlKFwiW11cIikiLCAiIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgi
ZW5naW5lLT5ldmFsdWF0ZShcInt9XCIpIiwgInVuZGVmaW5lZCIpOworICAgICAgICB0b1N0cmlu
Zy5pbnNlcnQoImVuZ2luZS0+ZXZhbHVhdGUoXCJPYmplY3QucHJvdG90eXBlXCIpIiwgIltvYmpl
Y3QgT2JqZWN0XSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoImVuZ2luZS0+ZXZhbHVhdGUo
XCJEYXRlLnByb3RvdHlwZVwiKSIsICJJbnZhbGlkIERhdGUiKTsKKyAgICAgICAgdG9TdHJpbmcu
aW5zZXJ0KCJlbmdpbmUtPmV2YWx1YXRlKFwiQXJyYXkucHJvdG90eXBlXCIpIiwgIiIpOworICAg
ICAgICB0b1N0cmluZy5pbnNlcnQoImVuZ2luZS0+ZXZhbHVhdGUoXCJGdW5jdGlvbi5wcm90b3R5
cGVcIikiLCAiZnVuY3Rpb24gKCkge1xuICAgIFtuYXRpdmUgY29kZV1cbn0iKTsKKyAgICAgICAg
dG9TdHJpbmcuaW5zZXJ0KCJlbmdpbmUtPmV2YWx1YXRlKFwiRXJyb3IucHJvdG90eXBlXCIpIiwg
IkVycm9yOiBVbmtub3duIGVycm9yIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiZW5naW5l
LT5ldmFsdWF0ZShcIk9iamVjdFwiKSIsICJmdW5jdGlvbiBPYmplY3QoKSB7XG4gICAgW25hdGl2
ZSBjb2RlXVxufSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoImVuZ2luZS0+ZXZhbHVhdGUo
XCJBcnJheVwiKSIsICJmdW5jdGlvbiBBcnJheSgpIHtcbiAgICBbbmF0aXZlIGNvZGVdXG59Iik7
CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiZW5naW5lLT5ldmFsdWF0ZShcIk51bWJlclwiKSIs
ICJmdW5jdGlvbiBOdW1iZXIoKSB7XG4gICAgW25hdGl2ZSBjb2RlXVxufSIpOworICAgICAgICB0
b1N0cmluZy5pbnNlcnQoImVuZ2luZS0+ZXZhbHVhdGUoXCJGdW5jdGlvblwiKSIsICJmdW5jdGlv
biBGdW5jdGlvbigpIHtcbiAgICBbbmF0aXZlIGNvZGVdXG59Iik7CisgICAgICAgIHRvU3RyaW5n
Lmluc2VydCgiZW5naW5lLT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgcmV0dXJuIDE7IH0pXCIp
IiwgImZ1bmN0aW9uICgpIHsgcmV0dXJuIDE7IH0iKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0
KCJlbmdpbmUtPmV2YWx1YXRlKFwiKGZ1bmN0aW9uKCkgeyByZXR1cm4gJ2NpYW8nOyB9KVwiKSIs
ICJmdW5jdGlvbiAoKSB7IHJldHVybiAnY2lhbyc7IH0iKTsKKyAgICAgICAgdG9TdHJpbmcuaW5z
ZXJ0KCJlbmdpbmUtPmV2YWx1YXRlKFwiKGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3IoJ2Zv
bycpOyB9KVwiKSIsICJmdW5jdGlvbiAoKSB7IHRocm93IG5ldyBFcnJvcignZm9vJyk7IH0iKTsK
KyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJlbmdpbmUtPmV2YWx1YXRlKFwiL2Zvby9cIikiLCAi
L2Zvby8iKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJlbmdpbmUtPmV2YWx1YXRlKFwibmV3
IE9iamVjdCgpXCIpIiwgIltvYmplY3QgT2JqZWN0XSIpOworICAgICAgICB0b1N0cmluZy5pbnNl
cnQoImVuZ2luZS0+ZXZhbHVhdGUoXCJuZXcgQXJyYXkoKVwiKSIsICIiKTsKKyAgICAgICAgdG9T
dHJpbmcuaW5zZXJ0KCJlbmdpbmUtPmV2YWx1YXRlKFwibmV3IEVycm9yKClcIikiLCAiRXJyb3I6
IFVua25vd24gZXJyb3IiKTsKKyAgICB9CisgICAgbmV3Um93KGV4cHIpIDw8IHRvU3RyaW5nLnZh
bHVlKGV4cHIpOworfQorCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5nX3Rlc3QoY29u
c3QgY2hhciosIGNvbnN0IFFTY3JpcHRWYWx1ZSYgdmFsdWUpCit7CisgICAgUUZFVENIKFFTdHJp
bmcsIGV4cGVjdGVkKTsKKyAgICBRQ09NUEFSRSh2YWx1ZS50b1N0cmluZygpLCBleHBlY3RlZCk7
Cit9CisKK0RFRklORV9URVNUX0ZVTkNUSU9OKHRvU3RyaW5nKQorCiB2b2lkIHRzdF9RU2NyaXB0
VmFsdWU6OnRvTnVtYmVyX2luaXREYXRhKCkKIHsKICAgICBRVGVzdDo6YWRkQ29sdW1uPHFzcmVh
bD4oImV4cGVjdGVkIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49063</attachid>
            <date>2010-02-19 03:31:40 -0800</date>
            <delta_ts>2010-02-22 06:09:43 -0800</delta_ts>
            <desc>Fix v3</desc>
            <filename>toStringV3.diff</filename>
            <type>text/plain</type>
            <size>14536</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA4ZDdlYzk4Li42NTkyZjAwIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTAtMDItMTIgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93YWNraUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4
IFFTY3JpcHRWYWx1ZTo6dG9TdHJpbmcoKS4KKworICAgICAgICBNb3JlIEVDTUEgU2NyaXB0IGNv
bXBsaWFuY2UsIGVzcGVjaWFsbHkgZm9yIHZhbHVlcyBhcyBOYU4sIEluaWZpbml0ZQorICAgICAg
ICBhbmQgcmVhbGx5IGJpZy9zbWFsbCBudW1iZXJzLgorCisgICAgICAgIFtRdF0gUVNjcmlwdFZh
bHVlOjp0b1N0cmluZygpIHJldHVybnMgaW5jb3JyZWN0IHZhbHVlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ4NTAKKworICAgICAgICAqIHF0L2Fw
aS9xc2NyaXB0Y29udmVydGVyX3AuaDoKKyAgICAgICAgKFFTY3JpcHRDb252ZXJ0ZXI6OnRvU3Ry
aW5nKToKKyAgICAgICAgKiBxdC9hcGkvcXNjcmlwdHZhbHVlX3AuaDoKKyAgICAgICAgKFFTY3Jp
cHRWYWx1ZVByaXZhdGU6OnRvU3RyaW5nKToKKyAgICAgICAgKiBxdC90ZXN0cy9xc2NyaXB0dmFs
dWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHA6CisgICAgICAgICogcXQvdGVzdHMvcXNjcmlwdHZhbHVl
L3RzdF9xc2NyaXB0dmFsdWUuaDoKKyAgICAgICAgKiBxdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0
X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWQuY3BwOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6
dG9TdHJpbmdfaW5pdERhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6dG9TdHJpbmdf
bWFrZURhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6dG9TdHJpbmdfdGVzdCk6CisK
IDIwMTAtMDItMTEgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93YWNraUBub2tpYS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGNvbnZlcnRlcl9wLmggYi9KYXZhU2NyaXB0Q29yZS9x
dC9hcGkvcXNjcmlwdGNvbnZlcnRlcl9wLmgKaW5kZXggMmNmNjY1ZC4uYTBkZDRkMSAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRjb252ZXJ0ZXJfcC5oCisrKyBiL0ph
dmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0Y29udmVydGVyX3AuaApAQCAtMjQsNiArMjQsOCBA
QAogI2luY2x1ZGUgPFF0Q29yZS9xbnVtZXJpYy5oPgogI2luY2x1ZGUgPFF0Q29yZS9xc3RyaW5n
Lmg+CiAKK2V4dGVybiBjaGFyICpxZHRvYShkb3VibGUgZCwgaW50IG1vZGUsIGludCBuZGlnaXRz
LCBpbnQgKmRlY3B0LCBpbnQgKnNpZ24sIGNoYXIgKipydmUsIGNoYXIgKipkaWdpdHNfc3RyKTsK
KwogLyoKICAgXGludGVybmFsCiAgIFxjbGFzcyBRU2NyaXB0Q29udmVydGVyCkBAIC01Miw2ICs1
NCw2MiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoc3RyKTsKICAgICB9CisgICAgc3RhdGljIFFTdHJpbmcgdG9TdHJpbmcoZG91
YmxlIHZhbHVlKQorICAgIHsKKyAgICAgICAgLy8gRklYTUUgdGhpcyBzaG91bGQgYmUgZWFzaWVy
LiBUaGUgaWRlYWwgZml4IGlzIHRvIGNyZWF0ZQorICAgICAgICAvLyBhIG5ldyBmdW5jdGlvbiBp
biBKU0MgQyBBUEkgd2hpY2ggY291bGQgY292ZXIgdGhlIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAg
ICAgaWYgKHFJc05hTih2YWx1ZSkpCisgICAgICAgICAgICByZXR1cm4gUVN0cmluZzo6ZnJvbUxh
dGluMSgiTmFOIik7CisgICAgICAgIGlmIChxSXNJbmYodmFsdWUpKQorICAgICAgICAgICAgcmV0
dXJuIFFTdHJpbmc6OmZyb21MYXRpbjEodmFsdWUgPCAwID8gIi1JbmZpbml0eSIgOiAiSW5maW5p
dHkiKTsKKyAgICAgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBRU3RyaW5nOjpm
cm9tTGF0aW4xKCIwIik7CisKKyAgICAgICAgUUJ5dGVBcnJheSBidWY7CisgICAgICAgIGJ1Zi5y
ZXNlcnZlKDgwKTsKKyAgICAgICAgaW50IGRlY3B0OworICAgICAgICBpbnQgc2lnbjsKKyAgICAg
ICAgY2hhciogcmVzdWx0ID0gMDsKKyAgICAgICAgKHZvaWQpcWR0b2EodmFsdWUsIDAsIDAsICZk
ZWNwdCwgJnNpZ24sIDAsICZyZXN1bHQpOworCisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAg
ICAgICAgcmV0dXJuIFFTdHJpbmcoKTsKKworICAgICAgICBpZiAoZGVjcHQgPD0gMCAmJiBkZWNw
dCA+IC02KSB7CisgICAgICAgICAgICBidWYuZmlsbCgnMCcsIC1kZWNwdCArIDIgKyBzaWduKTsK
KyAgICAgICAgICAgIGlmIChzaWduKSAvLyBmaXggdGhlIHNpZ24uCisgICAgICAgICAgICAgICAg
YnVmWzBdID0gJy0nOworICAgICAgICAgICAgYnVmW3NpZ24gKyAxXSA9ICcuJzsKKyAgICAgICAg
ICAgIGJ1ZiArPSByZXN1bHQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoc2ln
bikKKyAgICAgICAgICAgICAgICBidWYgKz0gJy0nOworICAgICAgICAgICAgYnVmICs9IHJlc3Vs
dDsKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBidWYubGVuZ3RoKCkgLSBzaWduOworICAgICAg
ICAgICAgaWYgKGRlY3B0IDw9IDIxICYmIGRlY3B0ID4gMCkgeworICAgICAgICAgICAgICAgIGlm
IChsZW5ndGggPD0gZGVjcHQpCisgICAgICAgICAgICAgICAgICAgIGJ1ZiArPSBRQnl0ZUFycmF5
KCkuZmlsbCgnMCcsIGRlY3B0IC0gbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgIGJ1Zi5pbnNlcnQoZGVjcHQgKyBzaWduLCAnLicpOworICAgICAgICAg
ICAgfSBlbHNlIGlmIChyZXN1bHRbMF0gPj0gJzAnICYmIHJlc3VsdFswXSA8PSAnOScpIHsKKyAg
ICAgICAgICAgICAgICBpZiAobGVuZ3RoID4gMSkKKyAgICAgICAgICAgICAgICAgICAgYnVmLmlu
c2VydCgxICsgc2lnbiwgJy4nKTsKKyAgICAgICAgICAgICAgICBidWYgKz0gJ2UnOworICAgICAg
ICAgICAgICAgIGJ1ZiArPSAoZGVjcHQgPj0gMCkgPyAnKycgOiAnLSc7CisgICAgICAgICAgICAg
ICAgaW50IGUgPSBkZWNwdCAtIDE7CisgICAgICAgICAgICAgICAgaWYgKGUgPCAwKQorICAgICAg
ICAgICAgICAgICAgICBlID0gLWU7CisgICAgICAgICAgICAgICAgaWYgKGUgPj0gMTAwKQorICAg
ICAgICAgICAgICAgICAgICBidWYgKz0gJzAnICsgZSAvIDEwMDsKKyAgICAgICAgICAgICAgICBp
ZiAoZSA+PSAxMCkKKyAgICAgICAgICAgICAgICAgICAgYnVmICs9ICcwJyArIChlICUgMTAwKSAv
IDEwOworICAgICAgICAgICAgICAgIGJ1ZiArPSAnMCcgKyBlICUgMTA7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgZnJlZShyZXN1bHQpOworICAgICAgICByZXR1cm4gUVN0cmlu
Zzo6ZnJvbUxhdGluMShidWYpOworICAgIH0KIH07CiAKICNlbmRpZiAvLyBxc2NyaXB0Y29udmVy
dGVyX3BfaApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZV9w
LmggYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3AuaAppbmRleCA4ZGI0M2E3
Li5mNTI4ZTViIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVl
X3AuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3AuaApAQCAtNDU1
LDcgKzQ1NSw3IEBAIFFTdHJpbmcgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6dG9TdHJpbmcoKSBjb25z
dAogICAgIGNhc2UgQ1N0cmluZzoKICAgICAgICAgcmV0dXJuIG1fc3RyaW5nOwogICAgIGNhc2Ug
Q051bWJlcjoKLSAgICAgICAgcmV0dXJuIFFTdHJpbmc6Om51bWJlcihtX251bWJlcik7CisgICAg
ICAgIHJldHVybiBRU2NyaXB0Q29udmVydGVyOjp0b1N0cmluZyhtX251bWJlcik7CiAgICAgY2Fz
ZSBDU3BlY2lhbDoKICAgICAgICAgcmV0dXJuIG1fbnVtYmVyID09IFFTY3JpcHRWYWx1ZTo6TnVs
bFZhbHVlID8gUVN0cmluZzo6ZnJvbUxhdGluMSgibnVsbCIpIDogUVN0cmluZzo6ZnJvbUxhdGlu
MSgidW5kZWZpbmVkIik7CiAgICAgY2FzZSBKU1ZhbHVlOgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwIGIvSmF2YVNj
cmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwCmluZGV4
IGI0NGM1Y2EuLjgyZjA5MDEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3Fz
Y3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC90
ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHAKQEAgLTI3NCw3ICsyNzQsNyBA
QCB2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmN0b3IoKQogICAgIFFWRVJJRlkoUVNjcmlwdFZhbHVl
KDAsIFFTdHJpbmcoImNpYW8iKSkuaXNTdHJpbmcoKSk7CiB9CiAKLXZvaWQgdHN0X1FTY3JpcHRW
YWx1ZTo6dG9TdHJpbmdfZGF0YSgpCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5nU2lt
cGxlX2RhdGEoKQogewogICAgIFFUZXN0OjphZGRDb2x1bW48UVN0cmluZz4oImNvZGUiKTsKICAg
ICBRVGVzdDo6YWRkQ29sdW1uPFFTdHJpbmc+KCJyZXN1bHQiKTsKQEAgLTI4OSw3ICsyODksNyBA
QCB2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5nX2RhdGEoKQogfQogCiAvKiBUZXN0IGNv
bnZlcnNpb24gdG8gc3RyaW5nIGZyb20gZGlmZmVyZW50IEpTQyB0eXBlcyAqLwotdm9pZCB0c3Rf
UVNjcmlwdFZhbHVlOjp0b1N0cmluZygpCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5n
U2ltcGxlKCkKIHsKICAgICBRRkVUQ0goUVN0cmluZywgY29kZSk7CiAgICAgUUZFVENIKFFTdHJp
bmcsIHJlc3VsdCk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0
dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5oIGIvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlw
dHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuaAppbmRleCAxYjNjNjU3Li4yODE1NGE5IDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1
ZS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlw
dHZhbHVlLmgKQEAgLTM2LDggKzM2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgfnRzdF9RU2Ny
aXB0VmFsdWUoKTsKIAogcHJpdmF0ZSBzbG90czoKLSAgICB2b2lkIHRvU3RyaW5nX2RhdGEoKTsK
LSAgICB2b2lkIHRvU3RyaW5nKCk7CisgICAgdm9pZCB0b1N0cmluZ1NpbXBsZV9kYXRhKCk7Cisg
ICAgdm9pZCB0b1N0cmluZ1NpbXBsZSgpOwogICAgIHZvaWQgY29weUNvbnN0cnVjdG9yX2RhdGEo
KTsKICAgICB2b2lkIGNvcHlDb25zdHJ1Y3RvcigpOwogICAgIHZvaWQgYXNzaWduT3BlcmF0b3Jf
ZGF0YSgpOwpAQCAtNzYsNiArNzYsOSBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQgaXNWYWxp
ZF9kYXRhKCk7CiAgICAgdm9pZCBpc1ZhbGlkKCk7CiAKKyAgICB2b2lkIHRvU3RyaW5nX2RhdGEo
KTsKKyAgICB2b2lkIHRvU3RyaW5nKCk7CisKICAgICB2b2lkIHRvTnVtYmVyX2RhdGEoKTsKICAg
ICB2b2lkIHRvTnVtYmVyKCk7CiAKQEAgLTE0Niw2ICsxNDksMTAgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGlzVmFsaWRfbWFrZURhdGEoY29uc3QgY2hhciogZXhwcik7CiAgICAgdm9pZCBpc1ZhbGlk
X3Rlc3QoY29uc3QgY2hhciogZXhwciwgY29uc3QgUVNjcmlwdFZhbHVlJiB2YWx1ZSk7CiAKKyAg
ICB2b2lkIHRvU3RyaW5nX2luaXREYXRhKCk7CisgICAgdm9pZCB0b1N0cmluZ19tYWtlRGF0YShj
b25zdCBjaGFyKik7CisgICAgdm9pZCB0b1N0cmluZ190ZXN0KGNvbnN0IGNoYXIqLCBjb25zdCBR
U2NyaXB0VmFsdWUmKTsKKwogICAgIHZvaWQgdG9OdW1iZXJfaW5pdERhdGEoKTsKICAgICB2b2lk
IHRvTnVtYmVyX21ha2VEYXRhKGNvbnN0IGNoYXIqKTsKICAgICB2b2lkIHRvTnVtYmVyX3Rlc3Qo
Y29uc3QgY2hhciosIGNvbnN0IFFTY3JpcHRWYWx1ZSYpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVkLmNw
cCBiL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVl
X2dlbmVyYXRlZC5jcHAKaW5kZXggMDA2YjM0My4uYjY2Y2FjMiAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVk
LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3Jp
cHR2YWx1ZV9nZW5lcmF0ZWQuY3BwCkBAIC01NTYsNiArNTU2LDEzMSBAQCB2b2lkIHRzdF9RU2Ny
aXB0VmFsdWU6OmlzT2JqZWN0X3Rlc3QoY29uc3QgY2hhciosIGNvbnN0IFFTY3JpcHRWYWx1ZSYg
dmFsdWUpCiAKIERFRklORV9URVNUX0ZVTkNUSU9OKGlzT2JqZWN0KQogCit2b2lkIHRzdF9RU2Ny
aXB0VmFsdWU6OnRvU3RyaW5nX2luaXREYXRhKCkKK3sKKyAgICBRVGVzdDo6YWRkQ29sdW1uPFFT
dHJpbmc+KCJleHBlY3RlZCIpOworICAgIGluaXRTY3JpcHRWYWx1ZXMoKTsKK30KKwordm9pZCB0
c3RfUVNjcmlwdFZhbHVlOjp0b1N0cmluZ19tYWtlRGF0YShjb25zdCBjaGFyKiBleHByKQorewor
ICAgIHN0YXRpYyBRSGFzaDxRU3RyaW5nLCBRU3RyaW5nPiB0b1N0cmluZzsKKyAgICBpZiAodG9T
dHJpbmcuaXNFbXB0eSgpKSB7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVl
KCkiLCAiIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKFFTY3JpcHRW
YWx1ZTo6VW5kZWZpbmVkVmFsdWUpIiwgInVuZGVmaW5lZCIpOworICAgICAgICB0b1N0cmluZy5p
bnNlcnQoIlFTY3JpcHRWYWx1ZShRU2NyaXB0VmFsdWU6Ok51bGxWYWx1ZSkiLCAibnVsbCIpOwor
ICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSh0cnVlKSIsICJ0cnVlIik7Cisg
ICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGZhbHNlKSIsICJmYWxzZSIpOwor
ICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShpbnQoMTIyKSkiLCAiMTIyIik7
CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKHVpbnQoMTI0KSkiLCAiMTI0
Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDApIiwgIjAiKTsKKyAg
ICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMC4wKSIsICIwIik7CisgICAgICAg
IHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDEyMy4wKSIsICIxMjMiKTsKKyAgICAgICAg
dG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoNi4zN2UtOCkiLCAiNi4zN2UtOCIpOworICAg
ICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgtNi4zN2UtOCkiLCAiLTYuMzdlLTgi
KTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMHg0MzIxMTIzNCkiLCAi
MTEyNjI0MDgyMCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgweDEw
MDAwKSIsICI2NTUzNiIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgw
eDEwMDAxKSIsICI2NTUzNyIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1
ZShxU05hTigpKSIsICJOYU4iKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFs
dWUocVFOYU4oKSkiLCAiTmFOIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZh
bHVlKHFJbmYoKSkiLCAiSW5maW5pdHkiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2Ny
aXB0VmFsdWUoLXFJbmYoKSkiLCAiLUluZmluaXR5Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2Vy
dCgiUVNjcmlwdFZhbHVlKFwiTmFOXCIpIiwgIk5hTiIpOworICAgICAgICB0b1N0cmluZy5pbnNl
cnQoIlFTY3JpcHRWYWx1ZShcIkluZmluaXR5XCIpIiwgIkluZmluaXR5Iik7CisgICAgICAgIHRv
U3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKFwiLUluZmluaXR5XCIpIiwgIi1JbmZpbml0eSIp
OworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShcImNpYW9cIikiLCAiY2lh
byIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShRU3RyaW5nOjpmcm9t
TGF0aW4xKFwiY2lhb1wiKSkiLCAiY2lhbyIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFT
Y3JpcHRWYWx1ZShRU3RyaW5nKFwiXCIpKSIsICIiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0
KCJRU2NyaXB0VmFsdWUoUVN0cmluZygpKSIsICIiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0
KCJRU2NyaXB0VmFsdWUoUVN0cmluZyhcIjBcIikpIiwgIjAiKTsKKyAgICAgICAgdG9TdHJpbmcu
aW5zZXJ0KCJRU2NyaXB0VmFsdWUoUVN0cmluZyhcIjEyM1wiKSkiLCAiMTIzIik7CisgICAgICAg
IHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKFFTdHJpbmcoXCIxMi40XCIpKSIsICIxMi40
Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIFFTY3JpcHRWYWx1
ZTo6VW5kZWZpbmVkVmFsdWUpIiwgInVuZGVmaW5lZCIpOworICAgICAgICB0b1N0cmluZy5pbnNl
cnQoIlFTY3JpcHRWYWx1ZSgwLCBRU2NyaXB0VmFsdWU6Ok51bGxWYWx1ZSkiLCAibnVsbCIpOwor
ICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCB0cnVlKSIsICJ0cnVlIik7
CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIGZhbHNlKSIsICJmYWxz
ZSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCBpbnQoMTIyKSki
LCAiMTIyIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIHVpbnQo
MTI0KSkiLCAiMTI0Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAs
IDApIiwgIjAiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgMC4w
KSIsICIwIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIDEyMy4w
KSIsICIxMjMiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgNi4z
N2UtOCkiLCAiNi4zN2UtOCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1
ZSgwLCAtNi4zN2UtOCkiLCAiLTYuMzdlLTgiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJR
U2NyaXB0VmFsdWUoMCwgMHg0MzIxMTIzNCkiLCAiMTEyNjI0MDgyMCIpOworICAgICAgICB0b1N0
cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCAweDEwMDAwKSIsICI2NTUzNiIpOworICAgICAg
ICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCAweDEwMDAxKSIsICI2NTUzNyIpOwor
ICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCBxU05hTigpKSIsICJOYU4i
KTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgcVFOYU4oKSkiLCAi
TmFOIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIHFJbmYoKSki
LCAiSW5maW5pdHkiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwg
LXFJbmYoKSkiLCAiLUluZmluaXR5Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlw
dFZhbHVlKDAsIFwiTmFOXCIpIiwgIk5hTiIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFT
Y3JpcHRWYWx1ZSgwLCBcIkluZmluaXR5XCIpIiwgIkluZmluaXR5Iik7CisgICAgICAgIHRvU3Ry
aW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIFwiLUluZmluaXR5XCIpIiwgIi1JbmZpbml0eSIp
OworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCBcImNpYW9cIikiLCAi
Y2lhbyIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCBRU3RyaW5n
Ojpmcm9tTGF0aW4xKFwiY2lhb1wiKSkiLCAiY2lhbyIpOworICAgICAgICB0b1N0cmluZy5pbnNl
cnQoIlFTY3JpcHRWYWx1ZSgwLCBRU3RyaW5nKFwiXCIpKSIsICIiKTsKKyAgICAgICAgdG9TdHJp
bmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgUVN0cmluZygpKSIsICIiKTsKKyAgICAgICAgdG9T
dHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgUVN0cmluZyhcIjBcIikpIiwgIjAiKTsKKyAg
ICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgUVN0cmluZyhcIjEyM1wiKSki
LCAiMTIzIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIFFTdHJp
bmcoXCIxMi4zXCIpKSIsICIxMi4zIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlw
dFZhbHVlKGVuZ2luZSwgUVNjcmlwdFZhbHVlOjpVbmRlZmluZWRWYWx1ZSkiLCAidW5kZWZpbmVk
Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVNjcmlw
dFZhbHVlOjpOdWxsVmFsdWUpIiwgIm51bGwiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJR
U2NyaXB0VmFsdWUoZW5naW5lLCB0cnVlKSIsICJ0cnVlIik7CisgICAgICAgIHRvU3RyaW5nLmlu
c2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgZmFsc2UpIiwgImZhbHNlIik7CisgICAgICAgIHRv
U3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgaW50KDEyMikpIiwgIjEyMiIpOwor
ICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShlbmdpbmUsIHVpbnQoMTI0KSki
LCAiMTI0Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwg
MCkiLCAiMCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShlbmdpbmUs
IDAuMCkiLCAiMCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShlbmdp
bmUsIDEyMy4wKSIsICIxMjMiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFs
dWUoZW5naW5lLCA2LjM3ZS04KSIsICI2LjM3ZS04Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2Vy
dCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgLTYuMzdlLTgpIiwgIi02LjM3ZS04Iik7CisgICAgICAg
IHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgMHg0MzIxMTIzNCkiLCAiMTEy
NjI0MDgyMCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShlbmdpbmUs
IDB4MTAwMDApIiwgIjY1NTM2Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZh
bHVlKGVuZ2luZSwgMHgxMDAwMSkiLCAiNjU1MzciKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0
KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBxU05hTigpKSIsICJOYU4iKTsKKyAgICAgICAgdG9TdHJp
bmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBxUU5hTigpKSIsICJOYU4iKTsKKyAgICAg
ICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBxSW5mKCkpIiwgIkluZmlu
aXR5Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgLXFJ
bmYoKSkiLCAiLUluZmluaXR5Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZh
bHVlKGVuZ2luZSwgXCJOYU5cIikiLCAiTmFOIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgi
UVNjcmlwdFZhbHVlKGVuZ2luZSwgXCJJbmZpbml0eVwiKSIsICJJbmZpbml0eSIpOworICAgICAg
ICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShlbmdpbmUsIFwiLUluZmluaXR5XCIpIiwg
Ii1JbmZpbml0eSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShlbmdp
bmUsIFwiY2lhb1wiKSIsICJjaWFvIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlw
dFZhbHVlKGVuZ2luZSwgUVN0cmluZzo6ZnJvbUxhdGluMShcImNpYW9cIikpIiwgImNpYW8iKTsK
KyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBRU3RyaW5nKFwi
XCIpKSIsICIiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5l
LCBRU3RyaW5nKCkpIiwgIiIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1
ZShlbmdpbmUsIFFTdHJpbmcoXCIwXCIpKSIsICIwIik7CisgICAgICAgIHRvU3RyaW5nLmluc2Vy
dCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmluZyhcIjEyM1wiKSkiLCAiMTIzIik7CisgICAg
ICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmluZyhcIjEuMjNc
IikpIiwgIjEuMjMiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJlbmdpbmUtPmV2YWx1YXRl
KFwiW11cIikiLCAiIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiZW5naW5lLT5ldmFsdWF0
ZShcInt9XCIpIiwgInVuZGVmaW5lZCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoImVuZ2lu
ZS0+ZXZhbHVhdGUoXCJPYmplY3QucHJvdG90eXBlXCIpIiwgIltvYmplY3QgT2JqZWN0XSIpOwor
ICAgICAgICB0b1N0cmluZy5pbnNlcnQoImVuZ2luZS0+ZXZhbHVhdGUoXCJEYXRlLnByb3RvdHlw
ZVwiKSIsICJJbnZhbGlkIERhdGUiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJlbmdpbmUt
PmV2YWx1YXRlKFwiQXJyYXkucHJvdG90eXBlXCIpIiwgIiIpOworICAgICAgICB0b1N0cmluZy5p
bnNlcnQoImVuZ2luZS0+ZXZhbHVhdGUoXCJGdW5jdGlvbi5wcm90b3R5cGVcIikiLCAiZnVuY3Rp
b24gKCkge1xuICAgIFtuYXRpdmUgY29kZV1cbn0iKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0
KCJlbmdpbmUtPmV2YWx1YXRlKFwiRXJyb3IucHJvdG90eXBlXCIpIiwgIkVycm9yOiBVbmtub3du
IGVycm9yIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiZW5naW5lLT5ldmFsdWF0ZShcIk9i
amVjdFwiKSIsICJmdW5jdGlvbiBPYmplY3QoKSB7XG4gICAgW25hdGl2ZSBjb2RlXVxufSIpOwor
ICAgICAgICB0b1N0cmluZy5pbnNlcnQoImVuZ2luZS0+ZXZhbHVhdGUoXCJBcnJheVwiKSIsICJm
dW5jdGlvbiBBcnJheSgpIHtcbiAgICBbbmF0aXZlIGNvZGVdXG59Iik7CisgICAgICAgIHRvU3Ry
aW5nLmluc2VydCgiZW5naW5lLT5ldmFsdWF0ZShcIk51bWJlclwiKSIsICJmdW5jdGlvbiBOdW1i
ZXIoKSB7XG4gICAgW25hdGl2ZSBjb2RlXVxufSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQo
ImVuZ2luZS0+ZXZhbHVhdGUoXCJGdW5jdGlvblwiKSIsICJmdW5jdGlvbiBGdW5jdGlvbigpIHtc
biAgICBbbmF0aXZlIGNvZGVdXG59Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiZW5naW5l
LT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgcmV0dXJuIDE7IH0pXCIpIiwgImZ1bmN0aW9uICgp
IHsgcmV0dXJuIDE7IH0iKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJlbmdpbmUtPmV2YWx1
YXRlKFwiKGZ1bmN0aW9uKCkgeyByZXR1cm4gJ2NpYW8nOyB9KVwiKSIsICJmdW5jdGlvbiAoKSB7
IHJldHVybiAnY2lhbyc7IH0iKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJlbmdpbmUtPmV2
YWx1YXRlKFwiKGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3IoJ2ZvbycpOyB9KVwiKSIsICJm
dW5jdGlvbiAoKSB7IHRocm93IG5ldyBFcnJvcignZm9vJyk7IH0iKTsKKyAgICAgICAgdG9TdHJp
bmcuaW5zZXJ0KCJlbmdpbmUtPmV2YWx1YXRlKFwiL2Zvby9cIikiLCAiL2Zvby8iKTsKKyAgICAg
ICAgdG9TdHJpbmcuaW5zZXJ0KCJlbmdpbmUtPmV2YWx1YXRlKFwibmV3IE9iamVjdCgpXCIpIiwg
IltvYmplY3QgT2JqZWN0XSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoImVuZ2luZS0+ZXZh
bHVhdGUoXCJuZXcgQXJyYXkoKVwiKSIsICIiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJl
bmdpbmUtPmV2YWx1YXRlKFwibmV3IEVycm9yKClcIikiLCAiRXJyb3I6IFVua25vd24gZXJyb3Ii
KTsKKyAgICB9CisgICAgbmV3Um93KGV4cHIpIDw8IHRvU3RyaW5nLnZhbHVlKGV4cHIpOworfQor
Cit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5nX3Rlc3QoY29uc3QgY2hhciosIGNvbnN0
IFFTY3JpcHRWYWx1ZSYgdmFsdWUpCit7CisgICAgUUZFVENIKFFTdHJpbmcsIGV4cGVjdGVkKTsK
KyAgICBRQ09NUEFSRSh2YWx1ZS50b1N0cmluZygpLCBleHBlY3RlZCk7Cit9CisKK0RFRklORV9U
RVNUX0ZVTkNUSU9OKHRvU3RyaW5nKQorCiB2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvTnVtYmVy
X2luaXREYXRhKCkKIHsKICAgICBRVGVzdDo6YWRkQ29sdW1uPHFzcmVhbD4oImV4cGVjdGVkIik7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49210</attachid>
            <date>2010-02-22 06:09:43 -0800</date>
            <delta_ts>2010-03-02 13:39:08 -0800</delta_ts>
            <desc>Fix v4</desc>
            <filename>toStringV4.diff</filename>
            <type>text/plain</type>
            <size>14536</size>
            <attacher name="Jędrzej Nowacki">jedrzej.nowacki</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA4ZDdlYzk4Li42NTkyZjAwIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTAtMDItMTIgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93YWNraUBub2tpYS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4
IFFTY3JpcHRWYWx1ZTo6dG9TdHJpbmcoKS4KKworICAgICAgICBNb3JlIEVDTUEgU2NyaXB0IGNv
bXBsaWFuY2UsIGVzcGVjaWFsbHkgZm9yIHZhbHVlcyBhcyBOYU4sIEluaWZpbml0ZQorICAgICAg
ICBhbmQgcmVhbGx5IGJpZy9zbWFsbCBudW1iZXJzLgorCisgICAgICAgIFtRdF0gUVNjcmlwdFZh
bHVlOjp0b1N0cmluZygpIHJldHVybnMgaW5jb3JyZWN0IHZhbHVlcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQ4NTAKKworICAgICAgICAqIHF0L2Fw
aS9xc2NyaXB0Y29udmVydGVyX3AuaDoKKyAgICAgICAgKFFTY3JpcHRDb252ZXJ0ZXI6OnRvU3Ry
aW5nKToKKyAgICAgICAgKiBxdC9hcGkvcXNjcmlwdHZhbHVlX3AuaDoKKyAgICAgICAgKFFTY3Jp
cHRWYWx1ZVByaXZhdGU6OnRvU3RyaW5nKToKKyAgICAgICAgKiBxdC90ZXN0cy9xc2NyaXB0dmFs
dWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHA6CisgICAgICAgICogcXQvdGVzdHMvcXNjcmlwdHZhbHVl
L3RzdF9xc2NyaXB0dmFsdWUuaDoKKyAgICAgICAgKiBxdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0
X3FzY3JpcHR2YWx1ZV9nZW5lcmF0ZWQuY3BwOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6
dG9TdHJpbmdfaW5pdERhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6dG9TdHJpbmdf
bWFrZURhdGEpOgorICAgICAgICAodHN0X1FTY3JpcHRWYWx1ZTo6dG9TdHJpbmdfdGVzdCk6CisK
IDIwMTAtMDItMTEgIEplZHJ6ZWogTm93YWNraSAgPGplZHJ6ZWoubm93YWNraUBub2tpYS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdGNvbnZlcnRlcl9wLmggYi9KYXZhU2NyaXB0Q29yZS9x
dC9hcGkvcXNjcmlwdGNvbnZlcnRlcl9wLmgKaW5kZXggMmNmNjY1ZC4uOGM0MTI4YyAxMDA2NDQK
LS0tIGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHRjb252ZXJ0ZXJfcC5oCisrKyBiL0ph
dmFTY3JpcHRDb3JlL3F0L2FwaS9xc2NyaXB0Y29udmVydGVyX3AuaApAQCAtMjQsNiArMjQsOCBA
QAogI2luY2x1ZGUgPFF0Q29yZS9xbnVtZXJpYy5oPgogI2luY2x1ZGUgPFF0Q29yZS9xc3RyaW5n
Lmg+CiAKK2V4dGVybiBjaGFyICpxZHRvYShkb3VibGUgZCwgaW50IG1vZGUsIGludCBuZGlnaXRz
LCBpbnQgKmRlY3B0LCBpbnQgKnNpZ24sIGNoYXIgKipydmUsIGNoYXIgKipkaWdpdHNfc3RyKTsK
KwogLyoKICAgXGludGVybmFsCiAgIFxjbGFzcyBRU2NyaXB0Q29udmVydGVyCkBAIC01Miw2ICs1
NCw2MiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoc3RyKTsKICAgICB9CisgICAgc3RhdGljIFFTdHJpbmcgdG9TdHJpbmcoZG91
YmxlIHZhbHVlKQorICAgIHsKKyAgICAgICAgLy8gRklYTUUgdGhpcyBzaG91bGQgYmUgZWFzaWVy
LiBUaGUgaWRlYWwgZml4IGlzIHRvIGNyZWF0ZQorICAgICAgICAvLyBhIG5ldyBmdW5jdGlvbiBp
biBKU0MgQyBBUEkgd2hpY2ggY291bGQgY292ZXIgdGhlIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAg
ICAgaWYgKHFJc05hTih2YWx1ZSkpCisgICAgICAgICAgICByZXR1cm4gUVN0cmluZzo6ZnJvbUxh
dGluMSgiTmFOIik7CisgICAgICAgIGlmIChxSXNJbmYodmFsdWUpKQorICAgICAgICAgICAgcmV0
dXJuIFFTdHJpbmc6OmZyb21MYXRpbjEodmFsdWUgPCAwID8gIi1JbmZpbml0eSIgOiAiSW5maW5p
dHkiKTsKKyAgICAgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBRU3RyaW5nOjpm
cm9tTGF0aW4xKCIwIik7CisKKyAgICAgICAgUUJ5dGVBcnJheSBidWY7CisgICAgICAgIGJ1Zi5y
ZXNlcnZlKDI0KTsKKyAgICAgICAgaW50IGRlY3B0OworICAgICAgICBpbnQgc2lnbjsKKyAgICAg
ICAgY2hhciogcmVzdWx0ID0gMDsKKyAgICAgICAgKHZvaWQpcWR0b2EodmFsdWUsIDAsIDAsICZk
ZWNwdCwgJnNpZ24sIDAsICZyZXN1bHQpOworCisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAg
ICAgICAgcmV0dXJuIFFTdHJpbmcoKTsKKworICAgICAgICBpZiAoZGVjcHQgPD0gMCAmJiBkZWNw
dCA+IC02KSB7CisgICAgICAgICAgICBidWYuZmlsbCgnMCcsIC1kZWNwdCArIDIgKyBzaWduKTsK
KyAgICAgICAgICAgIGlmIChzaWduKSAvLyBmaXggdGhlIHNpZ24uCisgICAgICAgICAgICAgICAg
YnVmWzBdID0gJy0nOworICAgICAgICAgICAgYnVmW3NpZ24gKyAxXSA9ICcuJzsKKyAgICAgICAg
ICAgIGJ1ZiArPSByZXN1bHQ7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBpZiAoc2ln
bikKKyAgICAgICAgICAgICAgICBidWYgKz0gJy0nOworICAgICAgICAgICAgYnVmICs9IHJlc3Vs
dDsKKyAgICAgICAgICAgIGludCBsZW5ndGggPSBidWYubGVuZ3RoKCkgLSBzaWduOworICAgICAg
ICAgICAgaWYgKGRlY3B0IDw9IDIxICYmIGRlY3B0ID4gMCkgeworICAgICAgICAgICAgICAgIGlm
IChsZW5ndGggPD0gZGVjcHQpCisgICAgICAgICAgICAgICAgICAgIGJ1ZiArPSBRQnl0ZUFycmF5
KCkuZmlsbCgnMCcsIGRlY3B0IC0gbGVuZ3RoKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAg
ICAgICAgICAgICAgICAgIGJ1Zi5pbnNlcnQoZGVjcHQgKyBzaWduLCAnLicpOworICAgICAgICAg
ICAgfSBlbHNlIGlmIChyZXN1bHRbMF0gPj0gJzAnICYmIHJlc3VsdFswXSA8PSAnOScpIHsKKyAg
ICAgICAgICAgICAgICBpZiAobGVuZ3RoID4gMSkKKyAgICAgICAgICAgICAgICAgICAgYnVmLmlu
c2VydCgxICsgc2lnbiwgJy4nKTsKKyAgICAgICAgICAgICAgICBidWYgKz0gJ2UnOworICAgICAg
ICAgICAgICAgIGJ1ZiArPSAoZGVjcHQgPj0gMCkgPyAnKycgOiAnLSc7CisgICAgICAgICAgICAg
ICAgaW50IGUgPSBkZWNwdCAtIDE7CisgICAgICAgICAgICAgICAgaWYgKGUgPCAwKQorICAgICAg
ICAgICAgICAgICAgICBlID0gLWU7CisgICAgICAgICAgICAgICAgaWYgKGUgPj0gMTAwKQorICAg
ICAgICAgICAgICAgICAgICBidWYgKz0gJzAnICsgZSAvIDEwMDsKKyAgICAgICAgICAgICAgICBp
ZiAoZSA+PSAxMCkKKyAgICAgICAgICAgICAgICAgICAgYnVmICs9ICcwJyArIChlICUgMTAwKSAv
IDEwOworICAgICAgICAgICAgICAgIGJ1ZiArPSAnMCcgKyBlICUgMTA7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICAgICAgZnJlZShyZXN1bHQpOworICAgICAgICByZXR1cm4gUVN0cmlu
Zzo6ZnJvbUxhdGluMShidWYpOworICAgIH0KIH07CiAKICNlbmRpZiAvLyBxc2NyaXB0Y29udmVy
dGVyX3BfaApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcXQvYXBpL3FzY3JpcHR2YWx1ZV9w
LmggYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3AuaAppbmRleCA4ZGI0M2E3
Li5mNTI4ZTViIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVl
X3AuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC9hcGkvcXNjcmlwdHZhbHVlX3AuaApAQCAtNDU1
LDcgKzQ1NSw3IEBAIFFTdHJpbmcgUVNjcmlwdFZhbHVlUHJpdmF0ZTo6dG9TdHJpbmcoKSBjb25z
dAogICAgIGNhc2UgQ1N0cmluZzoKICAgICAgICAgcmV0dXJuIG1fc3RyaW5nOwogICAgIGNhc2Ug
Q051bWJlcjoKLSAgICAgICAgcmV0dXJuIFFTdHJpbmc6Om51bWJlcihtX251bWJlcik7CisgICAg
ICAgIHJldHVybiBRU2NyaXB0Q29udmVydGVyOjp0b1N0cmluZyhtX251bWJlcik7CiAgICAgY2Fz
ZSBDU3BlY2lhbDoKICAgICAgICAgcmV0dXJuIG1fbnVtYmVyID09IFFTY3JpcHRWYWx1ZTo6TnVs
bFZhbHVlID8gUVN0cmluZzo6ZnJvbUxhdGluMSgibnVsbCIpIDogUVN0cmluZzo6ZnJvbUxhdGlu
MSgidW5kZWZpbmVkIik7CiAgICAgY2FzZSBKU1ZhbHVlOgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwIGIvSmF2YVNj
cmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuY3BwCmluZGV4
IGI0NGM1Y2EuLjgyZjA5MDEgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3Fz
Y3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVlLmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC90
ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5jcHAKQEAgLTI3NCw3ICsyNzQsNyBA
QCB2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OmN0b3IoKQogICAgIFFWRVJJRlkoUVNjcmlwdFZhbHVl
KDAsIFFTdHJpbmcoImNpYW8iKSkuaXNTdHJpbmcoKSk7CiB9CiAKLXZvaWQgdHN0X1FTY3JpcHRW
YWx1ZTo6dG9TdHJpbmdfZGF0YSgpCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5nU2lt
cGxlX2RhdGEoKQogewogICAgIFFUZXN0OjphZGRDb2x1bW48UVN0cmluZz4oImNvZGUiKTsKICAg
ICBRVGVzdDo6YWRkQ29sdW1uPFFTdHJpbmc+KCJyZXN1bHQiKTsKQEAgLTI4OSw3ICsyODksNyBA
QCB2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5nX2RhdGEoKQogfQogCiAvKiBUZXN0IGNv
bnZlcnNpb24gdG8gc3RyaW5nIGZyb20gZGlmZmVyZW50IEpTQyB0eXBlcyAqLwotdm9pZCB0c3Rf
UVNjcmlwdFZhbHVlOjp0b1N0cmluZygpCit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5n
U2ltcGxlKCkKIHsKICAgICBRRkVUQ0goUVN0cmluZywgY29kZSk7CiAgICAgUUZFVENIKFFTdHJp
bmcsIHJlc3VsdCk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0
dmFsdWUvdHN0X3FzY3JpcHR2YWx1ZS5oIGIvSmF2YVNjcmlwdENvcmUvcXQvdGVzdHMvcXNjcmlw
dHZhbHVlL3RzdF9xc2NyaXB0dmFsdWUuaAppbmRleCAxYjNjNjU3Li4yODE1NGE5IDEwMDY0NAot
LS0gYS9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3JpcHR2YWx1
ZS5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlw
dHZhbHVlLmgKQEAgLTM2LDggKzM2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgfnRzdF9RU2Ny
aXB0VmFsdWUoKTsKIAogcHJpdmF0ZSBzbG90czoKLSAgICB2b2lkIHRvU3RyaW5nX2RhdGEoKTsK
LSAgICB2b2lkIHRvU3RyaW5nKCk7CisgICAgdm9pZCB0b1N0cmluZ1NpbXBsZV9kYXRhKCk7Cisg
ICAgdm9pZCB0b1N0cmluZ1NpbXBsZSgpOwogICAgIHZvaWQgY29weUNvbnN0cnVjdG9yX2RhdGEo
KTsKICAgICB2b2lkIGNvcHlDb25zdHJ1Y3RvcigpOwogICAgIHZvaWQgYXNzaWduT3BlcmF0b3Jf
ZGF0YSgpOwpAQCAtNzYsNiArNzYsOSBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQgaXNWYWxp
ZF9kYXRhKCk7CiAgICAgdm9pZCBpc1ZhbGlkKCk7CiAKKyAgICB2b2lkIHRvU3RyaW5nX2RhdGEo
KTsKKyAgICB2b2lkIHRvU3RyaW5nKCk7CisKICAgICB2b2lkIHRvTnVtYmVyX2RhdGEoKTsKICAg
ICB2b2lkIHRvTnVtYmVyKCk7CiAKQEAgLTE0Niw2ICsxNDksMTAgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGlzVmFsaWRfbWFrZURhdGEoY29uc3QgY2hhciogZXhwcik7CiAgICAgdm9pZCBpc1ZhbGlk
X3Rlc3QoY29uc3QgY2hhciogZXhwciwgY29uc3QgUVNjcmlwdFZhbHVlJiB2YWx1ZSk7CiAKKyAg
ICB2b2lkIHRvU3RyaW5nX2luaXREYXRhKCk7CisgICAgdm9pZCB0b1N0cmluZ19tYWtlRGF0YShj
b25zdCBjaGFyKik7CisgICAgdm9pZCB0b1N0cmluZ190ZXN0KGNvbnN0IGNoYXIqLCBjb25zdCBR
U2NyaXB0VmFsdWUmKTsKKwogICAgIHZvaWQgdG9OdW1iZXJfaW5pdERhdGEoKTsKICAgICB2b2lk
IHRvTnVtYmVyX21ha2VEYXRhKGNvbnN0IGNoYXIqKTsKICAgICB2b2lkIHRvTnVtYmVyX3Rlc3Qo
Y29uc3QgY2hhciosIGNvbnN0IFFTY3JpcHRWYWx1ZSYpOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlw
dENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVkLmNw
cCBiL0phdmFTY3JpcHRDb3JlL3F0L3Rlc3RzL3FzY3JpcHR2YWx1ZS90c3RfcXNjcmlwdHZhbHVl
X2dlbmVyYXRlZC5jcHAKaW5kZXggMDA2YjM0My4uYjY2Y2FjMiAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvcXQvdGVzdHMvcXNjcmlwdHZhbHVlL3RzdF9xc2NyaXB0dmFsdWVfZ2VuZXJhdGVk
LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9xdC90ZXN0cy9xc2NyaXB0dmFsdWUvdHN0X3FzY3Jp
cHR2YWx1ZV9nZW5lcmF0ZWQuY3BwCkBAIC01NTYsNiArNTU2LDEzMSBAQCB2b2lkIHRzdF9RU2Ny
aXB0VmFsdWU6OmlzT2JqZWN0X3Rlc3QoY29uc3QgY2hhciosIGNvbnN0IFFTY3JpcHRWYWx1ZSYg
dmFsdWUpCiAKIERFRklORV9URVNUX0ZVTkNUSU9OKGlzT2JqZWN0KQogCit2b2lkIHRzdF9RU2Ny
aXB0VmFsdWU6OnRvU3RyaW5nX2luaXREYXRhKCkKK3sKKyAgICBRVGVzdDo6YWRkQ29sdW1uPFFT
dHJpbmc+KCJleHBlY3RlZCIpOworICAgIGluaXRTY3JpcHRWYWx1ZXMoKTsKK30KKwordm9pZCB0
c3RfUVNjcmlwdFZhbHVlOjp0b1N0cmluZ19tYWtlRGF0YShjb25zdCBjaGFyKiBleHByKQorewor
ICAgIHN0YXRpYyBRSGFzaDxRU3RyaW5nLCBRU3RyaW5nPiB0b1N0cmluZzsKKyAgICBpZiAodG9T
dHJpbmcuaXNFbXB0eSgpKSB7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVl
KCkiLCAiIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKFFTY3JpcHRW
YWx1ZTo6VW5kZWZpbmVkVmFsdWUpIiwgInVuZGVmaW5lZCIpOworICAgICAgICB0b1N0cmluZy5p
bnNlcnQoIlFTY3JpcHRWYWx1ZShRU2NyaXB0VmFsdWU6Ok51bGxWYWx1ZSkiLCAibnVsbCIpOwor
ICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSh0cnVlKSIsICJ0cnVlIik7Cisg
ICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGZhbHNlKSIsICJmYWxzZSIpOwor
ICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShpbnQoMTIyKSkiLCAiMTIyIik7
CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKHVpbnQoMTI0KSkiLCAiMTI0
Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDApIiwgIjAiKTsKKyAg
ICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMC4wKSIsICIwIik7CisgICAgICAg
IHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDEyMy4wKSIsICIxMjMiKTsKKyAgICAgICAg
dG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoNi4zN2UtOCkiLCAiNi4zN2UtOCIpOworICAg
ICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgtNi4zN2UtOCkiLCAiLTYuMzdlLTgi
KTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMHg0MzIxMTIzNCkiLCAi
MTEyNjI0MDgyMCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgweDEw
MDAwKSIsICI2NTUzNiIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgw
eDEwMDAxKSIsICI2NTUzNyIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1
ZShxU05hTigpKSIsICJOYU4iKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFs
dWUocVFOYU4oKSkiLCAiTmFOIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZh
bHVlKHFJbmYoKSkiLCAiSW5maW5pdHkiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2Ny
aXB0VmFsdWUoLXFJbmYoKSkiLCAiLUluZmluaXR5Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2Vy
dCgiUVNjcmlwdFZhbHVlKFwiTmFOXCIpIiwgIk5hTiIpOworICAgICAgICB0b1N0cmluZy5pbnNl
cnQoIlFTY3JpcHRWYWx1ZShcIkluZmluaXR5XCIpIiwgIkluZmluaXR5Iik7CisgICAgICAgIHRv
U3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKFwiLUluZmluaXR5XCIpIiwgIi1JbmZpbml0eSIp
OworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShcImNpYW9cIikiLCAiY2lh
byIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShRU3RyaW5nOjpmcm9t
TGF0aW4xKFwiY2lhb1wiKSkiLCAiY2lhbyIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFT
Y3JpcHRWYWx1ZShRU3RyaW5nKFwiXCIpKSIsICIiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0
KCJRU2NyaXB0VmFsdWUoUVN0cmluZygpKSIsICIiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0
KCJRU2NyaXB0VmFsdWUoUVN0cmluZyhcIjBcIikpIiwgIjAiKTsKKyAgICAgICAgdG9TdHJpbmcu
aW5zZXJ0KCJRU2NyaXB0VmFsdWUoUVN0cmluZyhcIjEyM1wiKSkiLCAiMTIzIik7CisgICAgICAg
IHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKFFTdHJpbmcoXCIxMi40XCIpKSIsICIxMi40
Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIFFTY3JpcHRWYWx1
ZTo6VW5kZWZpbmVkVmFsdWUpIiwgInVuZGVmaW5lZCIpOworICAgICAgICB0b1N0cmluZy5pbnNl
cnQoIlFTY3JpcHRWYWx1ZSgwLCBRU2NyaXB0VmFsdWU6Ok51bGxWYWx1ZSkiLCAibnVsbCIpOwor
ICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCB0cnVlKSIsICJ0cnVlIik7
CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIGZhbHNlKSIsICJmYWxz
ZSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCBpbnQoMTIyKSki
LCAiMTIyIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIHVpbnQo
MTI0KSkiLCAiMTI0Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAs
IDApIiwgIjAiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgMC4w
KSIsICIwIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIDEyMy4w
KSIsICIxMjMiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgNi4z
N2UtOCkiLCAiNi4zN2UtOCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1
ZSgwLCAtNi4zN2UtOCkiLCAiLTYuMzdlLTgiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJR
U2NyaXB0VmFsdWUoMCwgMHg0MzIxMTIzNCkiLCAiMTEyNjI0MDgyMCIpOworICAgICAgICB0b1N0
cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCAweDEwMDAwKSIsICI2NTUzNiIpOworICAgICAg
ICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCAweDEwMDAxKSIsICI2NTUzNyIpOwor
ICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCBxU05hTigpKSIsICJOYU4i
KTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgcVFOYU4oKSkiLCAi
TmFOIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIHFJbmYoKSki
LCAiSW5maW5pdHkiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwg
LXFJbmYoKSkiLCAiLUluZmluaXR5Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlw
dFZhbHVlKDAsIFwiTmFOXCIpIiwgIk5hTiIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFT
Y3JpcHRWYWx1ZSgwLCBcIkluZmluaXR5XCIpIiwgIkluZmluaXR5Iik7CisgICAgICAgIHRvU3Ry
aW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIFwiLUluZmluaXR5XCIpIiwgIi1JbmZpbml0eSIp
OworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCBcImNpYW9cIikiLCAi
Y2lhbyIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZSgwLCBRU3RyaW5n
Ojpmcm9tTGF0aW4xKFwiY2lhb1wiKSkiLCAiY2lhbyIpOworICAgICAgICB0b1N0cmluZy5pbnNl
cnQoIlFTY3JpcHRWYWx1ZSgwLCBRU3RyaW5nKFwiXCIpKSIsICIiKTsKKyAgICAgICAgdG9TdHJp
bmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgUVN0cmluZygpKSIsICIiKTsKKyAgICAgICAgdG9T
dHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgUVN0cmluZyhcIjBcIikpIiwgIjAiKTsKKyAg
ICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoMCwgUVN0cmluZyhcIjEyM1wiKSki
LCAiMTIzIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKDAsIFFTdHJp
bmcoXCIxMi4zXCIpKSIsICIxMi4zIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlw
dFZhbHVlKGVuZ2luZSwgUVNjcmlwdFZhbHVlOjpVbmRlZmluZWRWYWx1ZSkiLCAidW5kZWZpbmVk
Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVNjcmlw
dFZhbHVlOjpOdWxsVmFsdWUpIiwgIm51bGwiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJR
U2NyaXB0VmFsdWUoZW5naW5lLCB0cnVlKSIsICJ0cnVlIik7CisgICAgICAgIHRvU3RyaW5nLmlu
c2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgZmFsc2UpIiwgImZhbHNlIik7CisgICAgICAgIHRv
U3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgaW50KDEyMikpIiwgIjEyMiIpOwor
ICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShlbmdpbmUsIHVpbnQoMTI0KSki
LCAiMTI0Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwg
MCkiLCAiMCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShlbmdpbmUs
IDAuMCkiLCAiMCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShlbmdp
bmUsIDEyMy4wKSIsICIxMjMiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFs
dWUoZW5naW5lLCA2LjM3ZS04KSIsICI2LjM3ZS04Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2Vy
dCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgLTYuMzdlLTgpIiwgIi02LjM3ZS04Iik7CisgICAgICAg
IHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgMHg0MzIxMTIzNCkiLCAiMTEy
NjI0MDgyMCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShlbmdpbmUs
IDB4MTAwMDApIiwgIjY1NTM2Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZh
bHVlKGVuZ2luZSwgMHgxMDAwMSkiLCAiNjU1MzciKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0
KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBxU05hTigpKSIsICJOYU4iKTsKKyAgICAgICAgdG9TdHJp
bmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBxUU5hTigpKSIsICJOYU4iKTsKKyAgICAg
ICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBxSW5mKCkpIiwgIkluZmlu
aXR5Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgLXFJ
bmYoKSkiLCAiLUluZmluaXR5Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZh
bHVlKGVuZ2luZSwgXCJOYU5cIikiLCAiTmFOIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgi
UVNjcmlwdFZhbHVlKGVuZ2luZSwgXCJJbmZpbml0eVwiKSIsICJJbmZpbml0eSIpOworICAgICAg
ICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShlbmdpbmUsIFwiLUluZmluaXR5XCIpIiwg
Ii1JbmZpbml0eSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1ZShlbmdp
bmUsIFwiY2lhb1wiKSIsICJjaWFvIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlw
dFZhbHVlKGVuZ2luZSwgUVN0cmluZzo6ZnJvbUxhdGluMShcImNpYW9cIikpIiwgImNpYW8iKTsK
KyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5lLCBRU3RyaW5nKFwi
XCIpKSIsICIiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJRU2NyaXB0VmFsdWUoZW5naW5l
LCBRU3RyaW5nKCkpIiwgIiIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoIlFTY3JpcHRWYWx1
ZShlbmdpbmUsIFFTdHJpbmcoXCIwXCIpKSIsICIwIik7CisgICAgICAgIHRvU3RyaW5nLmluc2Vy
dCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmluZyhcIjEyM1wiKSkiLCAiMTIzIik7CisgICAg
ICAgIHRvU3RyaW5nLmluc2VydCgiUVNjcmlwdFZhbHVlKGVuZ2luZSwgUVN0cmluZyhcIjEuMjNc
IikpIiwgIjEuMjMiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJlbmdpbmUtPmV2YWx1YXRl
KFwiW11cIikiLCAiIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiZW5naW5lLT5ldmFsdWF0
ZShcInt9XCIpIiwgInVuZGVmaW5lZCIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoImVuZ2lu
ZS0+ZXZhbHVhdGUoXCJPYmplY3QucHJvdG90eXBlXCIpIiwgIltvYmplY3QgT2JqZWN0XSIpOwor
ICAgICAgICB0b1N0cmluZy5pbnNlcnQoImVuZ2luZS0+ZXZhbHVhdGUoXCJEYXRlLnByb3RvdHlw
ZVwiKSIsICJJbnZhbGlkIERhdGUiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJlbmdpbmUt
PmV2YWx1YXRlKFwiQXJyYXkucHJvdG90eXBlXCIpIiwgIiIpOworICAgICAgICB0b1N0cmluZy5p
bnNlcnQoImVuZ2luZS0+ZXZhbHVhdGUoXCJGdW5jdGlvbi5wcm90b3R5cGVcIikiLCAiZnVuY3Rp
b24gKCkge1xuICAgIFtuYXRpdmUgY29kZV1cbn0iKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0
KCJlbmdpbmUtPmV2YWx1YXRlKFwiRXJyb3IucHJvdG90eXBlXCIpIiwgIkVycm9yOiBVbmtub3du
IGVycm9yIik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiZW5naW5lLT5ldmFsdWF0ZShcIk9i
amVjdFwiKSIsICJmdW5jdGlvbiBPYmplY3QoKSB7XG4gICAgW25hdGl2ZSBjb2RlXVxufSIpOwor
ICAgICAgICB0b1N0cmluZy5pbnNlcnQoImVuZ2luZS0+ZXZhbHVhdGUoXCJBcnJheVwiKSIsICJm
dW5jdGlvbiBBcnJheSgpIHtcbiAgICBbbmF0aXZlIGNvZGVdXG59Iik7CisgICAgICAgIHRvU3Ry
aW5nLmluc2VydCgiZW5naW5lLT5ldmFsdWF0ZShcIk51bWJlclwiKSIsICJmdW5jdGlvbiBOdW1i
ZXIoKSB7XG4gICAgW25hdGl2ZSBjb2RlXVxufSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQo
ImVuZ2luZS0+ZXZhbHVhdGUoXCJGdW5jdGlvblwiKSIsICJmdW5jdGlvbiBGdW5jdGlvbigpIHtc
biAgICBbbmF0aXZlIGNvZGVdXG59Iik7CisgICAgICAgIHRvU3RyaW5nLmluc2VydCgiZW5naW5l
LT5ldmFsdWF0ZShcIihmdW5jdGlvbigpIHsgcmV0dXJuIDE7IH0pXCIpIiwgImZ1bmN0aW9uICgp
IHsgcmV0dXJuIDE7IH0iKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJlbmdpbmUtPmV2YWx1
YXRlKFwiKGZ1bmN0aW9uKCkgeyByZXR1cm4gJ2NpYW8nOyB9KVwiKSIsICJmdW5jdGlvbiAoKSB7
IHJldHVybiAnY2lhbyc7IH0iKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJlbmdpbmUtPmV2
YWx1YXRlKFwiKGZ1bmN0aW9uKCkgeyB0aHJvdyBuZXcgRXJyb3IoJ2ZvbycpOyB9KVwiKSIsICJm
dW5jdGlvbiAoKSB7IHRocm93IG5ldyBFcnJvcignZm9vJyk7IH0iKTsKKyAgICAgICAgdG9TdHJp
bmcuaW5zZXJ0KCJlbmdpbmUtPmV2YWx1YXRlKFwiL2Zvby9cIikiLCAiL2Zvby8iKTsKKyAgICAg
ICAgdG9TdHJpbmcuaW5zZXJ0KCJlbmdpbmUtPmV2YWx1YXRlKFwibmV3IE9iamVjdCgpXCIpIiwg
IltvYmplY3QgT2JqZWN0XSIpOworICAgICAgICB0b1N0cmluZy5pbnNlcnQoImVuZ2luZS0+ZXZh
bHVhdGUoXCJuZXcgQXJyYXkoKVwiKSIsICIiKTsKKyAgICAgICAgdG9TdHJpbmcuaW5zZXJ0KCJl
bmdpbmUtPmV2YWx1YXRlKFwibmV3IEVycm9yKClcIikiLCAiRXJyb3I6IFVua25vd24gZXJyb3Ii
KTsKKyAgICB9CisgICAgbmV3Um93KGV4cHIpIDw8IHRvU3RyaW5nLnZhbHVlKGV4cHIpOworfQor
Cit2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvU3RyaW5nX3Rlc3QoY29uc3QgY2hhciosIGNvbnN0
IFFTY3JpcHRWYWx1ZSYgdmFsdWUpCit7CisgICAgUUZFVENIKFFTdHJpbmcsIGV4cGVjdGVkKTsK
KyAgICBRQ09NUEFSRSh2YWx1ZS50b1N0cmluZygpLCBleHBlY3RlZCk7Cit9CisKK0RFRklORV9U
RVNUX0ZVTkNUSU9OKHRvU3RyaW5nKQorCiB2b2lkIHRzdF9RU2NyaXB0VmFsdWU6OnRvTnVtYmVy
X2luaXREYXRhKCkKIHsKICAgICBRVGVzdDo6YWRkQ29sdW1uPHFzcmVhbD4oImV4cGVjdGVkIik7
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>