<?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>157548</bug_id>
          
          <creation_ts>2016-05-10 17:44:35 -0700</creation_ts>
          <short_desc>Air may decide to put the result register of an arithmetic snippet in the tag register</short_desc>
          <delta_ts>2016-05-11 14:52:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>caitp</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryanhaddad</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1191752</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-10 17:44:35 -0700</bug_when>
    <thetext>This causes our code for boxDouble to hilariously fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191753</commentid>
    <comment_count>1</comment_count>
      <attachid>278557</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-10 17:44:57 -0700</bug_when>
    <thetext>Created attachment 278557
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191762</commentid>
    <comment_count>2</comment_count>
      <attachid>278557</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2016-05-10 18:02:19 -0700</bug_when>
    <thetext>Comment on attachment 278557
WIP

View in context: https://bugs.webkit.org/attachment.cgi?id=278557&amp;action=review

&gt; Source/JavaScriptCore/b3/B3LowerToAir.cpp:1008
&gt; +            case ValueRep::LateUseRegister: // FIXME: correct?

Yep, that&apos;s fine.

&gt; Source/JavaScriptCore/b3/B3LowerToAir.cpp:2194
&gt; +                case ValueRep::LateUseRegister:

This should probably just be invalid.

&gt; Source/JavaScriptCore/b3/B3Validate.cpp:337
&gt; +                    //case ValueRep::LateUseRegister: // FIXME: is this validating result kind?

Yeah, you can probably make this rep invalid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191780</commentid>
    <comment_count>3</comment_count>
      <attachid>278557</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-05-10 18:38:50 -0700</bug_when>
    <thetext>Comment on attachment 278557
WIP

View in context: https://bugs.webkit.org/attachment.cgi?id=278557&amp;action=review

&gt;&gt; Source/JavaScriptCore/b3/B3LowerToAir.cpp:1008
&gt;&gt; +            case ValueRep::LateUseRegister: // FIXME: correct?
&gt; 
&gt; Yep, that&apos;s fine.

The other late thing is LateColdAny, which does not contain the word &quot;Use&quot;.  So, I would call this ValueRep::LateRegister.

&gt;&gt; Source/JavaScriptCore/b3/B3Validate.cpp:337
&gt;&gt; +                    //case ValueRep::LateUseRegister: // FIXME: is this validating result kind?
&gt; 
&gt; Yeah, you can probably make this rep invalid.

+1

&gt; Source/JavaScriptCore/b3/B3ValueRep.h:122
&gt; +        return ValueRep(LateUse, reg);

Note, you could have written this as:

ValueRep result(reg);
result.m_kind = LateRegister;
return result;

And that would allow you to get rid of the LateUseTag overload of the constructor.  It&apos;s OK if you want to do it this way, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191791</commentid>
    <comment_count>4</comment_count>
      <attachid>278569</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-10 19:08:19 -0700</bug_when>
    <thetext>Created attachment 278569
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1191874</commentid>
    <comment_count>5</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-11 00:13:53 -0700</bug_when>
    <thetext>*** Bug 157547 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192004</commentid>
    <comment_count>6</comment_count>
      <attachid>278643</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-11 11:50:14 -0700</bug_when>
    <thetext>Created attachment 278643
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192008</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-11 11:53:12 -0700</bug_when>
    <thetext>Attachment 278643 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/testb3.cpp:11824:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:11842:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 2 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192029</commentid>
    <comment_count>8</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-11 12:14:02 -0700</bug_when>
    <thetext>*** Bug 157524 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192076</commentid>
    <comment_count>9</comment_count>
      <attachid>278643</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-11 13:53:20 -0700</bug_when>
    <thetext>Comment on attachment 278643
patch

Clearing flags on attachment: 278643

Committed r200701: &lt;http://trac.webkit.org/changeset/200701&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192077</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-05-11 13:53:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192088</commentid>
    <comment_count>11</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-05-11 14:30:02 -0700</bug_when>
    <thetext>No regression test for the snippets?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1192100</commentid>
    <comment_count>12</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-05-11 14:52:15 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; No regression test for the snippets?

There is a test that has been failing for the last day that&apos;s already landed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278557</attachid>
            <date>2016-05-10 17:44:57 -0700</date>
            <delta_ts>2016-05-10 19:08:19 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>14999</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCShyZXZpc2lv
biAyMDA2NDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTAwNSw2ICsxMDA1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IGNhc2UgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcjoKICAgICAgICAgICAgICAgICBhcmcgPSB0bXAo
dmFsdWUudmFsdWUoKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IFZhbHVlUmVwOjpMYXRlVXNlUmVnaXN0ZXI6IC8vIEZJWE1FOiBjb3JyZWN0PwogICAgICAgICAg
ICAgY2FzZSBWYWx1ZVJlcDo6UmVnaXN0ZXI6CiAgICAgICAgICAgICAgICAgc3RhY2ttYXAtPmVh
cmx5Q2xvYmJlcmVkKCkuY2xlYXIodmFsdWUucmVwKCkucmVnKCkpOwogICAgICAgICAgICAgICAg
IGFyZyA9IFRtcCh2YWx1ZS5yZXAoKS5yZWcoKSk7CkBAIC0yMTkwLDYgKzIxOTEsNyBAQCBwcml2
YXRlOgogICAgICAgICAgICAgICAgIGNhc2UgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcjoKICAgICAg
ICAgICAgICAgICAgICAgaW5zdC5hcmdzLmFwcGVuZCh0bXAocGF0Y2hwb2ludFZhbHVlKSk7CiAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgVmFsdWVSZXA6
OkxhdGVVc2VSZWdpc3RlcjoKICAgICAgICAgICAgICAgICBjYXNlIFZhbHVlUmVwOjpSZWdpc3Rl
cjogewogICAgICAgICAgICAgICAgICAgICBUbXAgcmVnID0gVG1wKHBhdGNocG9pbnRWYWx1ZS0+
cmVzdWx0Q29uc3RyYWludC5yZWcoKSk7CiAgICAgICAgICAgICAgICAgICAgIGluc3QuYXJncy5h
cHBlbmQocmVnKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRT
cGVjaWFsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRj
aHBvaW50U3BlY2lhbC5jcHAJKHJldmlzaW9uIDIwMDY0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDYg
KzExMCw3IEBAIGJvb2wgUGF0Y2hwb2ludFNwZWNpYWw6OmFkbWl0c1N0YWNrKEluc3QKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXI6
CiAgICAgICAgIGNhc2UgVmFsdWVSZXA6OlJlZ2lzdGVyOgorICAgICAgICBjYXNlIFZhbHVlUmVw
OjpMYXRlVXNlUmVnaXN0ZXI6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGRl
ZmF1bHQ6CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBTcGVjaWFsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFNwZWNpYWwuY3BwCShyZXZp
c2lvbiAyMDA2NDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFNwZWNp
YWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNiArMTA3LDkgQEAgdm9pZCBTdGFja21hcFNw
ZWNpYWw6OmZvckVhY2hBcmdJbXBsKAogICAgICAgICAgICAgY2FzZSBWYWx1ZVJlcDo6Q29uc3Rh
bnQ6CiAgICAgICAgICAgICAgICAgcm9sZSA9IEFyZzo6VXNlOwogICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBWYWx1ZVJlcDo6TGF0ZVVzZVJlZ2lzdGVyOgorICAgICAg
ICAgICAgICAgIHJvbGUgPSBBcmc6OkxhdGVVc2U7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICBjYXNlIFZhbHVlUmVwOjpDb2xkQW55OgogICAgICAgICAgICAgICAgIHJvbGUg
PSBBcmc6OkNvbGRVc2U7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yMzAsNiArMjMzLDgg
QEAgYm9vbCBTdGFja21hcFNwZWNpYWw6OmlzQXJnVmFsaWRGb3JSZXAoQQogICAgICAgICByZXR1
cm4gYXJnLmlzVG1wKCk7CiAgICAgY2FzZSBWYWx1ZVJlcDo6UmVnaXN0ZXI6CiAgICAgICAgIHJl
dHVybiBhcmcgPT0gVG1wKHJlcC5yZWcoKSk7CisgICAgY2FzZSBWYWx1ZVJlcDo6TGF0ZVVzZVJl
Z2lzdGVyOgorICAgICAgICByZXR1cm4gYXJnID09IFRtcChyZXAucmVnKCkpOwogICAgIGNhc2Ug
VmFsdWVSZXA6OlN0YWNrQXJndW1lbnQ6CiAgICAgICAgIGlmIChhcmcgPT0gQXJnOjpjYWxsQXJn
KHJlcC5vZmZzZXRGcm9tU1AoKSkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDIwMDY0NSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzM0LDYgKzMzNCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgY2FzZSBWYWx1
ZVJlcDo6V2FybUFueToKICAgICAgICAgICAgICAgICAgICAgY2FzZSBWYWx1ZVJlcDo6U29tZVJl
Z2lzdGVyOgogICAgICAgICAgICAgICAgICAgICBjYXNlIFZhbHVlUmVwOjpSZWdpc3RlcjoKKyAg
ICAgICAgICAgICAgICAgICAgLy9jYXNlIFZhbHVlUmVwOjpMYXRlVXNlUmVnaXN0ZXI6IC8vIEZJ
WE1FOiBpcyB0aGlzIHZhbGlkYXRpbmcgcmVzdWx0IGtpbmQ/CiAgICAgICAgICAgICAgICAgICAg
IGNhc2UgVmFsdWVSZXA6OlN0YWNrQXJndW1lbnQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKQEAgLTQxMSw2ICs0MTIsNyBAQCBw
cml2YXRlOgogICAgICAgICBjYXNlIFZhbHVlUmVwOjpTdGFja0FyZ3VtZW50OgogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVmFsdWVSZXA6OlJlZ2lzdGVyOgorICAgICAgICBjYXNl
IFZhbHVlUmVwOjpMYXRlVXNlUmVnaXN0ZXI6CiAgICAgICAgICAgICBpZiAodmFsdWUucmVwKCku
cmVnKCkuaXNHUFIoKSkKICAgICAgICAgICAgICAgICBWQUxJREFURShpc0ludCh2YWx1ZS52YWx1
ZSgpLT50eXBlKCkpLCAoIkF0ICIsICpjb250ZXh0LCAiOiAiLCB2YWx1ZSkpOwogICAgICAgICAg
ICAgZWxzZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlUmVwLmNwcAkocmV2
aXNpb24gMjAwNjQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0Miw3IEBAIHZvaWQgVmFsdWVSZXA6OmFkZFVzZWRS
ZWdpc3RlcnNUbyhSZWdpc3QKICAgICBjYXNlIFNvbWVSZWdpc3RlcjoKICAgICBjYXNlIENvbnN0
YW50OgogICAgICAgICByZXR1cm47CisgICAgY2FzZSBMYXRlVXNlUmVnaXN0ZXI6CiAgICAgY2Fz
ZSBSZWdpc3RlcjoKICAgICAgICAgc2V0LnNldChyZWcoKSk7CiAgICAgICAgIHJldHVybjsKQEAg
LTcwLDYgKzcxLDcgQEAgdm9pZCBWYWx1ZVJlcDo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjbwog
ICAgIGNhc2UgTGF0ZUNvbGRBbnk6CiAgICAgY2FzZSBTb21lUmVnaXN0ZXI6CiAgICAgICAgIHJl
dHVybjsKKyAgICBjYXNlIExhdGVVc2VSZWdpc3RlcjoKICAgICBjYXNlIFJlZ2lzdGVyOgogICAg
ICAgICBvdXQucHJpbnQoIigiLCByZWcoKSwgIikiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtOTAs
NiArOTIsNyBAQCB2b2lkIFZhbHVlUmVwOjplbWl0UmVzdG9yZShBc3NlbWJseUhlbHBlCiB7CiAg
ICAgaWYgKHJlZy5pc0dQUigpKSB7CiAgICAgICAgIHN3aXRjaCAoa2luZCgpKSB7CisgICAgICAg
IGNhc2UgTGF0ZVVzZVJlZ2lzdGVyOgogICAgICAgICBjYXNlIFJlZ2lzdGVyOgogICAgICAgICAg
ICAgaWYgKGlzR1BSKCkpCiAgICAgICAgICAgICAgICAgaml0Lm1vdmUoZ3ByKCksIHJlZy5ncHIo
KSk7CkBAIC0xMTAsNiArMTEzLDcgQEAgdm9pZCBWYWx1ZVJlcDo6ZW1pdFJlc3RvcmUoQXNzZW1i
bHlIZWxwZQogICAgIH0KICAgICAKICAgICBzd2l0Y2ggKGtpbmQoKSkgeworICAgIGNhc2UgTGF0
ZVVzZVJlZ2lzdGVyOgogICAgIGNhc2UgUmVnaXN0ZXI6CiAgICAgICAgIGlmIChpc0dQUigpKQog
ICAgICAgICAgICAgaml0Lm1vdmU2NFRvRG91YmxlKGdwcigpLCByZWcuZnByKCkpOwpAQCAtMTMy
LDYgKzEzNiw3IEBAIHZvaWQgVmFsdWVSZXA6OmVtaXRSZXN0b3JlKEFzc2VtYmx5SGVscGUKIFZh
bHVlUmVjb3ZlcnkgVmFsdWVSZXA6OnJlY292ZXJ5Rm9ySlNWYWx1ZSgpIGNvbnN0CiB7CiAgICAg
c3dpdGNoIChraW5kKCkpIHsKKyAgICBjYXNlIExhdGVVc2VSZWdpc3RlcjoKICAgICBjYXNlIFJl
Z2lzdGVyOgogICAgICAgICByZXR1cm4gVmFsdWVSZWNvdmVyeTo6aW5HUFIoZ3ByKCksIERhdGFG
b3JtYXRKUyk7CiAgICAgY2FzZSBTdGFjazoKQEAgLTE3MSw2ICsxNzYsOSBAQCB2b2lkIHByaW50
SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgVmFsCiAgICAgY2FzZSBWYWx1ZVJlcDo6UmVnaXN0
ZXI6CiAgICAgICAgIG91dC5wcmludCgiUmVnaXN0ZXIiKTsKICAgICAgICAgcmV0dXJuOworICAg
IGNhc2UgVmFsdWVSZXA6OkxhdGVVc2VSZWdpc3RlcjoKKyAgICAgICAgb3V0LnByaW50KCJMYXRl
VXNlUmVnaXN0ZXIiKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgVmFsdWVSZXA6OlN0YWNr
OgogICAgICAgICBvdXQucHJpbnQoIlN0YWNrIik7CiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlUmVwLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuaAkocmV2aXNpb24gMjAwNjQ1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuaAkod29ya2luZyBjb3B5KQpAQCAtNzEs
NiArNzEsMTEgQEAgcHVibGljOgogICAgICAgICAvLyByZXByZXNlbnRhdGlvbiwgdGhpcyB0ZWxs
cyB1cyB3aGF0IHJlZ2lzdGVyIEIzIHBpY2tlZC4KICAgICAgICAgUmVnaXN0ZXIsCiAKKyAgICAg
ICAgLy8gQXMgYW4gaW5wdXQgcmVwcmVzZW50YXRpb24sIHRoaXMgZm9yY2VzIGEgcGFydGljdWxh
ciByZWdpc3Rlci4gSXQgYWxzbyBzdGF0ZXMgdGhhdAorICAgICAgICAvLyBpdCBhcyBhbiBpbnB1
dCBpdCBpcyB1c2VkIGxhdGUgKGkuZSwgYWZ0ZXIgdGhlIHJlc3VsdCBpcyBjb21wdXRlZCkuCisg
ICAgICAgIC8vIEZJWE1FOiB3aGF0IHRvIHNheSBhYm91dCByZXN1bHQ/IEknbSBndWVzc2luZyBj
YW4ndCBiZSB1c2VkIGFzIHJlc3VsdC4KKyAgICAgICAgTGF0ZVVzZVJlZ2lzdGVyLAorCiAgICAg
ICAgIC8vIEFzIGFuIG91dHB1dCByZXByZXNlbnRhdGlvbiwgdGhpcyB0ZWxscyB1cyB3aGF0IHN0
YWNrIHNsb3QgQjMgcGlja2VkLiBJdCdzIG5vdCBhIHZhbGlkCiAgICAgICAgIC8vIGlucHV0IHJl
cHJlc2VudGF0aW9uLgogICAgICAgICBTdGFjaywKQEAgLTg4LDEyICs5MywxOSBAQCBwdWJsaWM6
CiAgICAgewogICAgIH0KIAorICAgIGVudW0gTGF0ZVVzZVRhZyB7IExhdGVVc2UgfTsKICAgICBl
eHBsaWNpdCBWYWx1ZVJlcChSZWcgcmVnKQogICAgICAgICA6IG1fa2luZChSZWdpc3RlcikKICAg
ICB7CiAgICAgICAgIHUucmVnID0gcmVnOwogICAgIH0KIAorICAgIGV4cGxpY2l0IFZhbHVlUmVw
KExhdGVVc2VUYWcsIFJlZyByZWcpCisgICAgICAgIDogbV9raW5kKExhdGVVc2VSZWdpc3RlcikK
KyAgICB7CisgICAgICAgIHUucmVnID0gcmVnOworICAgIH0KKwogICAgIFZhbHVlUmVwKEtpbmQg
a2luZCkKICAgICAgICAgOiBtX2tpbmQoa2luZCkKICAgICB7CkBAIC0xMDUsNiArMTE3LDExIEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIFZhbHVlUmVwKHJlZyk7CiAgICAgfQogCisgICAgc3Rh
dGljIFZhbHVlUmVwIGxhdGVVc2VSZWcoUmVnIHJlZykKKyAgICB7CisgICAgICAgIHJldHVybiBW
YWx1ZVJlcChMYXRlVXNlLCByZWcpOworICAgIH0KKwogICAgIHN0YXRpYyBWYWx1ZVJlcCBzdGFj
ayhpbnRwdHJfdCBvZmZzZXRGcm9tRlApCiAgICAgewogICAgICAgICBWYWx1ZVJlcCByZXN1bHQ7
CkBAIC0xNDEsNiArMTU4LDcgQEAgcHVibGljOgogICAgICAgICBpZiAoa2luZCgpICE9IG90aGVy
LmtpbmQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgc3dpdGNoIChraW5k
KCkpIHsKKyAgICAgICAgY2FzZSBMYXRlVXNlUmVnaXN0ZXI6CiAgICAgICAgIGNhc2UgUmVnaXN0
ZXI6CiAgICAgICAgICAgICByZXR1cm4gdS5yZWcgPT0gb3RoZXIudS5yZWc7CiAgICAgICAgIGNh
c2UgU3RhY2s6CkBAIC0xNjUsNyArMTgzLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1NvbWVS
ZWdpc3RlcigpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBTb21lUmVnaXN0ZXI7IH0KICAgICAK
LSAgICBib29sIGlzUmVnKCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFJlZ2lzdGVyOyB9Cisg
ICAgYm9vbCBpc1JlZygpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9PSBSZWdpc3RlciB8fCBraW5k
KCkgPT0gTGF0ZVVzZVJlZ2lzdGVyOyB9CiAgICAgCiAgICAgUmVnIHJlZygpIGNvbnN0CiAgICAg
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCShy
ZXZpc2lvbiAyMDA2NDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTAsNiArMTUwLDE1IEBAIHN0YXRpYyBBTFdBWVNf
SU5MSU5FIHZvaWQgcHV0V2l0aFRoaXMoRXgKICAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9IEpTVmFs
dWU6OmRlY29kZShlbmNvZGVkQmFzZSk7CiAgICAgSlNWYWx1ZSB0aGlzVmFsID0gSlNWYWx1ZTo6
ZGVjb2RlKGVuY29kZWRUaGlzKTsKICAgICBKU1ZhbHVlIHB1dFZhbHVlID0gSlNWYWx1ZTo6ZGVj
b2RlKGVuY29kZWRWYWx1ZSk7CisgICAgaWYgKCF0aGlzVmFsKSB7CisgICAgICAgIGRhdGFMb2co
ImJhZCB0aGl1cyB2YWx1ZSFcbiIpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIH0KKworICAgIGlmICghcHV0VmFsdWUpIHsKKyAgICAgICAgZGF0YUxvZygiYmFk
IHB1dCB2YWx1ZSFcbiIpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIH0KICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdCh0aGlzVmFsLCBzdHJpY3QpOwogICAgIGJh
c2VWYWx1ZS5wdXRJbmxpbmUoZXhlYywgaWRlbnQsIHB1dFZhbHVlLCBzbG90KTsKIH0KQEAgLTc2
NywxNSArNzc2LDE1IEBAIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2UK
ICAgICBKU1ZhbHVlIHRoaXNWYWwgPSBKU1ZhbHVlOjpkZWNvZGUoZW5jb2RlZFRoaXMpOwogICAg
IEpTVmFsdWUgc3Vic2NyaXB0ID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRTdWJzY3JpcHQpOwog
Ci0gICAgaWYgKExJS0VMWShiYXNlVmFsdWUuaXNDZWxsKCkgJiYgc3Vic2NyaXB0LmlzU3RyaW5n
KCkpKSB7Ci0gICAgICAgIFN0cnVjdHVyZSYgc3RydWN0dXJlID0gKmJhc2VWYWx1ZS5hc0NlbGwo
KS0+c3RydWN0dXJlKHZtKTsKLSAgICAgICAgaWYgKEpTQ2VsbDo6Y2FuVXNlRmFzdEdldE93blBy
b3BlcnR5KHN0cnVjdHVyZSkpIHsKLSAgICAgICAgICAgIGlmIChSZWZQdHI8QXRvbWljU3RyaW5n
SW1wbD4gZXhpc3RpbmdBdG9taWNTdHJpbmcgPSBhc1N0cmluZyhzdWJzY3JpcHQpLT50b0V4aXN0
aW5nQXRvbWljU3RyaW5nKGV4ZWMpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKEpTVmFsdWUgcmVz
dWx0ID0gYmFzZVZhbHVlLmFzQ2VsbCgpLT5mYXN0R2V0T3duUHJvcGVydHkodm0sIHN0cnVjdHVy
ZSwgZXhpc3RpbmdBdG9taWNTdHJpbmcuZ2V0KCkpKQotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICB9CisgICAgLy9pZiAoTElLRUxZKGJhc2VWYWx1ZS5pc0NlbGwoKSAmJiBzdWJzY3JpcHQuaXNT
dHJpbmcoKSkpIHsKKyAgICAvLyAgICBTdHJ1Y3R1cmUmIHN0cnVjdHVyZSA9ICpiYXNlVmFsdWUu
YXNDZWxsKCktPnN0cnVjdHVyZSh2bSk7CisgICAgLy8gICAgaWYgKEpTQ2VsbDo6Y2FuVXNlRmFz
dEdldE93blByb3BlcnR5KHN0cnVjdHVyZSkpIHsKKyAgICAvLyAgICAgICAgaWYgKFJlZlB0cjxB
dG9taWNTdHJpbmdJbXBsPiBleGlzdGluZ0F0b21pY1N0cmluZyA9IGFzU3RyaW5nKHN1YnNjcmlw
dCktPnRvRXhpc3RpbmdBdG9taWNTdHJpbmcoZXhlYykpIHsKKyAgICAvLyAgICAgICAgICAgIGlm
IChKU1ZhbHVlIHJlc3VsdCA9IGJhc2VWYWx1ZS5hc0NlbGwoKS0+ZmFzdEdldE93blByb3BlcnR5
KHZtLCBzdHJ1Y3R1cmUsIGV4aXN0aW5nQXRvbWljU3RyaW5nLmdldCgpKSkKKyAgICAvLyAgICAg
ICAgICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCk7CisgICAgLy8gICAgICAg
IH0KKyAgICAvLyAgICB9CisgICAgLy99CiAgICAgCiAgICAgUHJvcGVydHlTbG90IHNsb3QodGhp
c1ZhbCwgUHJvcGVydHlTbG90OjpQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0
KTsKICAgICBpZiAoc3Vic2NyaXB0LmlzVUludDMyKCkpIHsKQEAgLTc4MywxNyArNzkyLDM1IEBA
IEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2UKICAgICAgICAgaWYgKGlz
SlNTdHJpbmcoYmFzZVZhbHVlKSAmJiBhc1N0cmluZyhiYXNlVmFsdWUpLT5jYW5HZXRJbmRleChp
KSkKICAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoYXNTdHJpbmcoYmFzZVZhbHVl
KS0+Z2V0SW5kZXgoZXhlYywgaSkpOwogICAgICAgICAKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShiYXNlVmFsdWUuZ2V0KGV4ZWMsIGksIHNsb3QpKTsKKyAgICAgICAgYXV0byByZXN1
bHQgPSBiYXNlVmFsdWUuZ2V0KGV4ZWMsIGksIHNsb3QpOworICAgICAgICBpZiAodm0uZXhjZXB0
aW9uKCkpIHsKKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpOwor
ICAgICAgICB9CisgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgZGF0YUxvZygiYmFk
IHJlc3V0bCEiKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQocmVzdWx0KTsKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogICAgIH0KIAogICAgIGJhc2VWYWx1ZS5yZXF1
aXJlT2JqZWN0Q29lcmNpYmxlKGV4ZWMpOwogICAgIGlmICh2bS5leGNlcHRpb24oKSkKLSAgICAg
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpOworICAgICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKIAogICAgIGF1dG8gcHJvcGVydHkgPSBzdWJzY3JpcHQu
dG9Qcm9wZXJ0eUtleShleGVjKTsKLSAgICBpZiAodm0uZXhjZXB0aW9uKCkpCi0gICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5j
b2RlKGJhc2VWYWx1ZS5nZXQoZXhlYywgcHJvcGVydHksIHNsb3QpKTsKKyAgICBpZiAodm0uZXhj
ZXB0aW9uKCkpIHsKKyAgICAgICAgZGF0YUxvZygiRXhjZXRwaW9uIDEiKTsKKyAgICAgICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bGwoKSk7CisgICAgfQorICAgIGF1dG8gcmVzdWx0ID0g
YmFzZVZhbHVlLmdldChleGVjLCBwcm9wZXJ0eSwgc2xvdCk7CisgICAgaWYgKHZtLmV4Y2VwdGlv
bigpKSB7CisgICAgICAgIGRhdGFMb2coIkV4Y2V0cGlvbiAxIik7CisgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpOworICAgIH0KKyAgICBpZiAoIXJlc3VsdCkKKyAgICAg
ICAgZGF0YUxvZygiYmFkIHJlc3V0bCEiKTsKKyAgICBSRUxFQVNFX0FTU0VSVChyZXN1bHQpOwor
ICAgIGRhdGFMb2dGKCJnZXRCeVZhbFdpdGhUaGlzIHJlc3VsdDogJXBcbiIsIGJpdHdpc2VfY2Fz
dDx2b2lkKj4oSlNWYWx1ZTo6ZW5jb2RlKHJlc3VsdCkpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdCk7CiB9CiAKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlk
V2l0aFRoaXNTdHJpY3QoRXhlY1N0YXRlKiBleGVjLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkQmFz
ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFRoaXMsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1
ZSwgVW5pcXVlZFN0cmluZ0ltcGwqIGltcGwpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCShyZXZpc2lvbiAyMDA2NDUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTgwNDAsOCArODA0MCwxMCBAQCBwcml2YXRlOgogICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHBh
dGNocG9pbnQgPSBtX291dC5wYXRjaHBvaW50KEludDY0KTsKICAgICAgICAgcGF0Y2hwb2ludC0+
YXBwZW5kU29tZVJlZ2lzdGVyKGxlZnQpOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21l
UmVnaXN0ZXIocmlnaHQpOwotICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdNYXNrLCBW
YWx1ZVJlcDo6cmVnKEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOwotICAgICAgICBwYXRjaHBv
aW50LT5hcHBlbmQobV90YWdUeXBlTnVtYmVyLCBWYWx1ZVJlcDo6cmVnKEdQUkluZm86OnRhZ1R5
cGVOdW1iZXJSZWdpc3RlcikpOworICAgICAgICAvL3BhdGNocG9pbnQtPmFwcGVuZChtX3RhZ01h
c2ssIFZhbHVlUmVwOjpyZWcoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKSk7CisgICAgICAgIC8v
cGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnVHlwZU51bWJlciwgVmFsdWVSZXA6OnJlZyhHUFJJbmZv
Ojp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1f
dGFnTWFzaywgVmFsdWVSZXA6OmxhdGVVc2VSZWcoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKSk7
CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ1R5cGVOdW1iZXIsIFZhbHVlUmVwOjps
YXRlVXNlUmVnKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlcikpOwogICAgICAgICBSZWZQ
dHI8UGF0Y2hwb2ludEV4Y2VwdGlvbkhhbmRsZT4gZXhjZXB0aW9uSGFuZGxlID0KICAgICAgICAg
ICAgIHByZXBhcmVQYXRjaHBvaW50Rm9yRXhjZXB0aW9ucyhwYXRjaHBvaW50KTsKICAgICAgICAg
cGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzID0gMTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFN1YkdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDIwMDY0NSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3ViR2VuZXJhdG9yLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiSklUU3ViR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJQcmludGVyLmgi
CiAKICNpZiBFTkFCTEUoSklUKQogCkBAIC00Myw2ICs0NCwxNiBAQCB2b2lkIEpJVFN1YkdlbmVy
YXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAKICAgICBtX2RpZEVtaXRGYXN0UGF0aCA9IHRydWU7
CiAKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMjU7IGkrKykKKyAgICAgICAgaml0Lm5v
cCgpOworCisgICAgaml0LnByaW50KCJMZWZ0OiAiLCBtX2xlZnQuZ3ByKCksICJcbiIpOworICAg
IGppdC5wcmludCgicmlnaHQ6ICIsIG1fcmlnaHQuZ3ByKCksICJcbiIpOworICAgIGppdC5wcmlu
dCgidGFnIG51bWJlcjogIiwgR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyLCAiXG4iKTsK
KyAgICBqaXQucHJpbnQoInJpZ2h0OiAiLCBHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIsICJcbiIp
OworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDI1OyBpKyspCisgICAgICAgIGppdC5u
b3AoKTsKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbGVmdE5vdEludCA9IGppdC5icmFuY2hJZk5v
dEludDMyKG1fbGVmdCk7CiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHJpZ2h0Tm90SW50ID0gaml0
LmJyYW5jaElmTm90SW50MzIobV9yaWdodCk7CiAKQEAgLTYwLDYgKzcxLDcgQEAgdm9pZCBKSVRT
dWJHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoQwogICAgIH0KIAogICAgIGxlZnROb3RJbnQu
bGluaygmaml0KTsKKyAgICBqaXQucHJpbnQoImxlZnQgbm90IGludFxuIik7CiAgICAgaWYgKCFt
X2xlZnRPcGVyYW5kLmRlZmluaXRlbHlJc051bWJlcigpKQogICAgICAgICBtX3Nsb3dQYXRoSnVt
cExpc3QuYXBwZW5kKGppdC5icmFuY2hJZk5vdE51bWJlcihtX2xlZnQsIG1fc2NyYXRjaEdQUikp
OwogICAgIGlmICghbV9yaWdodE9wZXJhbmQuZGVmaW5pdGVseUlzTnVtYmVyKCkpCkBAIC02Nyw2
ICs3OSw3IEBAIHZvaWQgSklUU3ViR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKEMKIAogICAg
IGppdC51bmJveERvdWJsZU5vbkRlc3RydWN0aXZlKG1fbGVmdCwgbV9sZWZ0RlBSLCBtX3NjcmF0
Y2hHUFIsIG1fc2NyYXRjaEZQUik7CiAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIHJpZ2h0SXNEb3Vi
bGUgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihtX3JpZ2h0KTsKKyAgICBqaXQucHJpbnQoInJpZ2h0
IGlzIE5PVCBkb3VibGVcbiIpOwogCiAgICAgaml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKG1fcmln
aHQucGF5bG9hZEdQUigpLCBtX3JpZ2h0RlBSKTsKICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgcmln
aHRXYXNJbnRlZ2VyID0gaml0Lmp1bXAoKTsKQEAgLTgzLDEwICs5NiwxMiBAQCB2b2lkIEpJVFN1
YkdlbmVyYXRvcjo6Z2VuZXJhdGVGYXN0UGF0aChDCiAgICAgcmlnaHRXYXNJbnRlZ2VyLmxpbmso
JmppdCk7CiAKICAgICBqaXQuc3ViRG91YmxlKG1fcmlnaHRGUFIsIG1fbGVmdEZQUik7CisgICAg
aml0LnByaW50KCJzdWIgcmVzdWx0IGRvdWJsZTogIiwgbV9sZWZ0RlBSLCAiXG4iKTsKICAgICBp
ZiAobV9yZXN1bHRQcm9maWxlKQogICAgICAgICBtX3Jlc3VsdFByb2ZpbGUtPmVtaXRTZXREb3Vi
bGUoaml0KTsKIAogICAgIGppdC5ib3hEb3VibGUobV9sZWZ0RlBSLCBtX3Jlc3VsdCk7CisgICAg
aml0LnByaW50KCJib3hlZCByZXN1bHQ6ICIsIG1fcmVzdWx0LmdwcigpLCAiXG4iKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgSlNDCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL3N1cGVyLXByb3BlcnR5LWFjY2Vzcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL3N1cGVyLXByb3BlcnR5LWFjY2Vzcy5qcwkocmV2aXNpb24g
MjAwNjQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zdXBlci1wcm9w
ZXJ0eS1hY2Nlc3MuanMJKHdvcmtpbmcgY29weSkKQEAgLTExOCw2ICsxMTgsOCBAQCB0ZXN0KGZ1
bmN0aW9uKCkgewogCiAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwOyBpKyspIHsKICAgICAg
ICAgbGV0IHYgPSBhcnJbaV0ucHJlRGVjKCk7CisgICAgICAgIHByaW50KHYpOworICAgICAgICAv
L3ByaW50KGkpOwogICAgICAgICBhc3NlcnQodiA9PT0gaSk7CiAgICAgfQogICAgIGZvciAobGV0
IGkgPSAwOyBpIDwgMTAwMDsgaSsrKSB7CkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHJldmlzaW9uIDIwMDY0
NSkKKysrIFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTg3OSw3
ICs4NzksNyBAQAogI2lmIChDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8
IChDUFUoQVJNX1RIVU1CMikgJiYgUExBVEZPUk0oSU9TKSkpICYmIEVOQUJMRShKSVQpICYmIE9T
KERBUldJTikgJiYgIWRlZmluZWQoTkRFQlVHKQogI2RlZmluZSBFTkFCTEVfTUFTTV9QUk9CRSAx
CiAjZWxzZQotI2RlZmluZSBFTkFCTEVfTUFTTV9QUk9CRSAwCisjZGVmaW5lIEVOQUJMRV9NQVNN
X1BST0JFIDEKICNlbmRpZgogCiAvKiBQaWNrIHdoaWNoIGFsbG9jYXRvciB0byB1c2U7IHdlIG9u
bHkgbmVlZCBhbiBleGVjdXRhYmxlIGFsbG9jYXRvciBpZiB0aGUgYXNzZW1ibGVyIGlzIGNvbXBp
bGVkIGluLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278569</attachid>
            <date>2016-05-10 19:08:19 -0700</date>
            <delta_ts>2016-05-11 11:50:14 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>14333</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xvd2VyVG9BaXIuY3BwCShyZXZpc2lv
biAyMDA2NDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTAwNSw2ICsxMDA1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IGNhc2UgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcjoKICAgICAgICAgICAgICAgICBhcmcgPSB0bXAo
dmFsdWUudmFsdWUoKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IFZhbHVlUmVwOjpMYXRlVXNlUmVnaXN0ZXI6CiAgICAgICAgICAgICBjYXNlIFZhbHVlUmVwOjpS
ZWdpc3RlcjoKICAgICAgICAgICAgICAgICBzdGFja21hcC0+ZWFybHlDbG9iYmVyZWQoKS5jbGVh
cih2YWx1ZS5yZXAoKS5yZWcoKSk7CiAgICAgICAgICAgICAgICAgYXJnID0gVG1wKHZhbHVlLnJl
cCgpLnJlZygpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRT
cGVjaWFsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRj
aHBvaW50U3BlY2lhbC5jcHAJKHJldmlzaW9uIDIwMDY0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iMy9CM1BhdGNocG9pbnRTcGVjaWFsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEwLDYg
KzExMCw3IEBAIGJvb2wgUGF0Y2hwb2ludFNwZWNpYWw6OmFkbWl0c1N0YWNrKEluc3QKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBjYXNlIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXI6
CiAgICAgICAgIGNhc2UgVmFsdWVSZXA6OlJlZ2lzdGVyOgorICAgICAgICBjYXNlIFZhbHVlUmVw
OjpMYXRlVXNlUmVnaXN0ZXI6CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGRl
ZmF1bHQ6CiAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBTcGVjaWFsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFNwZWNpYWwuY3BwCShyZXZp
c2lvbiAyMDA2NDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFNwZWNp
YWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNiArMTA3LDkgQEAgdm9pZCBTdGFja21hcFNw
ZWNpYWw6OmZvckVhY2hBcmdJbXBsKAogICAgICAgICAgICAgY2FzZSBWYWx1ZVJlcDo6Q29uc3Rh
bnQ6CiAgICAgICAgICAgICAgICAgcm9sZSA9IEFyZzo6VXNlOwogICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBWYWx1ZVJlcDo6TGF0ZVVzZVJlZ2lzdGVyOgorICAgICAg
ICAgICAgICAgIHJvbGUgPSBBcmc6OkxhdGVVc2U7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICBjYXNlIFZhbHVlUmVwOjpDb2xkQW55OgogICAgICAgICAgICAgICAgIHJvbGUg
PSBBcmc6OkNvbGRVc2U7CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0yMjgsNiArMjMxLDcg
QEAgYm9vbCBTdGFja21hcFNwZWNpYWw6OmlzQXJnVmFsaWRGb3JSZXAoQQogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICBjYXNlIFZhbHVlUmVwOjpTb21lUmVnaXN0ZXI6CiAgICAgICAgIHJldHVy
biBhcmcuaXNUbXAoKTsKKyAgICBjYXNlIFZhbHVlUmVwOjpMYXRlVXNlUmVnaXN0ZXI6CiAgICAg
Y2FzZSBWYWx1ZVJlcDo6UmVnaXN0ZXI6CiAgICAgICAgIHJldHVybiBhcmcgPT0gVG1wKHJlcC5y
ZWcoKSk7CiAgICAgY2FzZSBWYWx1ZVJlcDo6U3RhY2tBcmd1bWVudDoKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0ZS5jcHAJKHJldmlzaW9uIDIwMDY0NSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbGlkYXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEx
LDYgKzQxMSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGNhc2UgVmFsdWVSZXA6OlN0YWNrQXJndW1l
bnQ6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBWYWx1ZVJlcDo6UmVnaXN0ZXI6
CisgICAgICAgIGNhc2UgVmFsdWVSZXA6OkxhdGVVc2VSZWdpc3RlcjoKICAgICAgICAgICAgIGlm
ICh2YWx1ZS5yZXAoKS5yZWcoKS5pc0dQUigpKQogICAgICAgICAgICAgICAgIFZBTElEQVRFKGlz
SW50KHZhbHVlLnZhbHVlKCktPnR5cGUoKSksICgiQXQgIiwgKmNvbnRleHQsICI6ICIsIHZhbHVl
KSk7CiAgICAgICAgICAgICBlbHNlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNW
YWx1ZVJlcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFs
dWVSZXAuY3BwCShyZXZpc2lvbiAyMDA2NDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMv
QjNWYWx1ZVJlcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAgdm9pZCBWYWx1
ZVJlcDo6YWRkVXNlZFJlZ2lzdGVyc1RvKFJlZ2lzdAogICAgIGNhc2UgU29tZVJlZ2lzdGVyOgog
ICAgIGNhc2UgQ29uc3RhbnQ6CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIExhdGVVc2VSZWdp
c3RlcjoKICAgICBjYXNlIFJlZ2lzdGVyOgogICAgICAgICBzZXQuc2V0KHJlZygpKTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtNzAsNiArNzEsNyBAQCB2b2lkIFZhbHVlUmVwOjpkdW1wKFByaW50U3Ry
ZWFtJiBvdXQpIGNvCiAgICAgY2FzZSBMYXRlQ29sZEFueToKICAgICBjYXNlIFNvbWVSZWdpc3Rl
cjoKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgTGF0ZVVzZVJlZ2lzdGVyOgogICAgIGNhc2Ug
UmVnaXN0ZXI6CiAgICAgICAgIG91dC5wcmludCgiKCIsIHJlZygpLCAiKSIpOwogICAgICAgICBy
ZXR1cm47CkBAIC05MCw2ICs5Miw3IEBAIHZvaWQgVmFsdWVSZXA6OmVtaXRSZXN0b3JlKEFzc2Vt
Ymx5SGVscGUKIHsKICAgICBpZiAocmVnLmlzR1BSKCkpIHsKICAgICAgICAgc3dpdGNoIChraW5k
KCkpIHsKKyAgICAgICAgY2FzZSBMYXRlVXNlUmVnaXN0ZXI6CiAgICAgICAgIGNhc2UgUmVnaXN0
ZXI6CiAgICAgICAgICAgICBpZiAoaXNHUFIoKSkKICAgICAgICAgICAgICAgICBqaXQubW92ZShn
cHIoKSwgcmVnLmdwcigpKTsKQEAgLTExMCw2ICsxMTMsNyBAQCB2b2lkIFZhbHVlUmVwOjplbWl0
UmVzdG9yZShBc3NlbWJseUhlbHBlCiAgICAgfQogICAgIAogICAgIHN3aXRjaCAoa2luZCgpKSB7
CisgICAgY2FzZSBMYXRlVXNlUmVnaXN0ZXI6CiAgICAgY2FzZSBSZWdpc3RlcjoKICAgICAgICAg
aWYgKGlzR1BSKCkpCiAgICAgICAgICAgICBqaXQubW92ZTY0VG9Eb3VibGUoZ3ByKCksIHJlZy5m
cHIoKSk7CkBAIC0xMzIsNiArMTM2LDcgQEAgdm9pZCBWYWx1ZVJlcDo6ZW1pdFJlc3RvcmUoQXNz
ZW1ibHlIZWxwZQogVmFsdWVSZWNvdmVyeSBWYWx1ZVJlcDo6cmVjb3ZlcnlGb3JKU1ZhbHVlKCkg
Y29uc3QKIHsKICAgICBzd2l0Y2ggKGtpbmQoKSkgeworICAgIGNhc2UgTGF0ZVVzZVJlZ2lzdGVy
OgogICAgIGNhc2UgUmVnaXN0ZXI6CiAgICAgICAgIHJldHVybiBWYWx1ZVJlY292ZXJ5OjppbkdQ
UihncHIoKSwgRGF0YUZvcm1hdEpTKTsKICAgICBjYXNlIFN0YWNrOgpAQCAtMTcxLDYgKzE3Niw5
IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBWYWwKICAgICBjYXNlIFZh
bHVlUmVwOjpSZWdpc3RlcjoKICAgICAgICAgb3V0LnByaW50KCJSZWdpc3RlciIpOwogICAgICAg
ICByZXR1cm47CisgICAgY2FzZSBWYWx1ZVJlcDo6TGF0ZVVzZVJlZ2lzdGVyOgorICAgICAgICBv
dXQucHJpbnQoIkxhdGVVc2VSZWdpc3RlciIpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBW
YWx1ZVJlcDo6U3RhY2s6CiAgICAgICAgIG91dC5wcmludCgiU3RhY2siKTsKICAgICAgICAgcmV0
dXJuOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oCShyZXZpc2lvbiAy
MDA2NDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oCSh3b3JraW5n
IGNvcHkpCkBAIC03MSw2ICs3MSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIC8vIHJlcHJlc2VudGF0
aW9uLCB0aGlzIHRlbGxzIHVzIHdoYXQgcmVnaXN0ZXIgQjMgcGlja2VkLgogICAgICAgICBSZWdp
c3RlciwKIAorICAgICAgICAvLyBBcyBhbiBpbnB1dCByZXByZXNlbnRhdGlvbiwgdGhpcyBmb3Jj
ZXMgYSBwYXJ0aWN1bGFyIHJlZ2lzdGVyIGFuZCBzdGF0ZXMgdGhhdAorICAgICAgICAvLyB0aGUg
cmVnaXN0ZXIgaXMgdXNlZCBsYXRlLiBUaGlzIG1lYW5zIHRoYXQgdGhlIHJlZ2lzdGVyIGlzIHVz
ZWQgYWZ0ZXIgdGhlIHJlc3VsdAorICAgICAgICAvLyBpcyBkZWZpbmVkIChpLmUsIHRoZSByZXN1
bHQgd2lsbCBpbnRlcmZlcmUgd2l0aCB0aGlzIGFzIGFuIGlucHV0KS4KKyAgICAgICAgLy8gSXQn
cyBub3QgdmFsaWQgZm9yIHRoaXMgdG8gYmUgdXNlZCBhcyBhIHJlc3VsdCBraW5kLgorICAgICAg
ICBMYXRlVXNlUmVnaXN0ZXIsCisKICAgICAgICAgLy8gQXMgYW4gb3V0cHV0IHJlcHJlc2VudGF0
aW9uLCB0aGlzIHRlbGxzIHVzIHdoYXQgc3RhY2sgc2xvdCBCMyBwaWNrZWQuIEl0J3Mgbm90IGEg
dmFsaWQKICAgICAgICAgLy8gaW5wdXQgcmVwcmVzZW50YXRpb24uCiAgICAgICAgIFN0YWNrLApA
QCAtOTQsNiArMTAwLDEzIEBAIHB1YmxpYzoKICAgICAgICAgdS5yZWcgPSByZWc7CiAgICAgfQog
CisgICAgZW51bSBMYXRlVXNlUmVnaXN0ZXJUYWcgeyBMYXRlVXNlIH07CisgICAgZXhwbGljaXQg
VmFsdWVSZXAoTGF0ZVVzZVJlZ2lzdGVyVGFnLCBSZWcgcmVnKQorICAgICAgICA6IG1fa2luZChM
YXRlVXNlUmVnaXN0ZXIpCisgICAgeworICAgICAgICB1LnJlZyA9IHJlZzsKKyAgICB9CisKICAg
ICBWYWx1ZVJlcChLaW5kIGtpbmQpCiAgICAgICAgIDogbV9raW5kKGtpbmQpCiAgICAgewpAQCAt
MTA1LDYgKzExOCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBWYWx1ZVJlcChyZWcpOwog
ICAgIH0KIAorICAgIHN0YXRpYyBWYWx1ZVJlcCBsYXRlVXNlUmVnKFJlZyByZWcpCisgICAgewor
ICAgICAgICByZXR1cm4gVmFsdWVSZXAoTGF0ZVVzZSwgcmVnKTsKKyAgICB9CisKICAgICBzdGF0
aWMgVmFsdWVSZXAgc3RhY2soaW50cHRyX3Qgb2Zmc2V0RnJvbUZQKQogICAgIHsKICAgICAgICAg
VmFsdWVSZXAgcmVzdWx0OwpAQCAtMTQxLDYgKzE1OSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYg
KGtpbmQoKSAhPSBvdGhlci5raW5kKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIHN3aXRjaCAoa2luZCgpKSB7CisgICAgICAgIGNhc2UgTGF0ZVVzZVJlZ2lzdGVyOgogICAg
ICAgICBjYXNlIFJlZ2lzdGVyOgogICAgICAgICAgICAgcmV0dXJuIHUucmVnID09IG90aGVyLnUu
cmVnOwogICAgICAgICBjYXNlIFN0YWNrOgpAQCAtMTY1LDcgKzE4NCw3IEBAIHB1YmxpYzoKIAog
ICAgIGJvb2wgaXNTb21lUmVnaXN0ZXIoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gU29tZVJl
Z2lzdGVyOyB9CiAgICAgCi0gICAgYm9vbCBpc1JlZygpIGNvbnN0IHsgcmV0dXJuIGtpbmQoKSA9
PSBSZWdpc3RlcjsgfQorICAgIGJvb2wgaXNSZWcoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0g
UmVnaXN0ZXIgfHwga2luZCgpID09IExhdGVVc2VSZWdpc3RlcjsgfQogICAgIAogICAgIFJlZyBy
ZWcoKSBjb25zdAogICAgIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWly
SW5zdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fpci9BaXJJ
bnN0LmNwcAkocmV2aXNpb24gMjAwNjQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJJbnN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsMTQgQEAgYm9vbCBJbnN0
OjpoYXNBcmdFZmZlY3RzKCkKIAogdm9pZCBJbnN0OjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNv
bnN0CiB7Ci0gICAgb3V0LnByaW50KG9wY29kZSwgIiAiLCBsaXN0RHVtcChhcmdzKSk7CisKKyAg
ICAvL291dC5wcmludChvcGNvZGUsICIgIiwgbGlzdER1bXAoYXJncykpOworICAgIG91dC5wcmlu
dChvcGNvZGUsICIgIik7CisgICAgY29uc3RfY2FzdDxJbnN0Kj4odGhpcyktPmZvckVhY2hBcmco
CisgICAgICAgIFsmXSAoQXJnJiBhcmcsIEFyZzo6Um9sZSByb2xlLCBBcmc6OlR5cGUsIEFyZzo6
V2lkdGgpIHsKKyAgICAgICAgICAgIHByaW50SW50ZXJuYWwob3V0LCByb2xlKTsKKyAgICAgICAg
ICAgIG91dC5wcmludCgiOiIsIGFyZywgIiAiKTsKKyAgICAgICAgfSk7CiAgICAgaWYgKG9yaWdp
bikgewogICAgICAgICBpZiAoYXJncy5zaXplKCkpCiAgICAgICAgICAgICBvdXQucHJpbnQoIiwg
Iik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCShyZXZpc2lvbiAyMDA2NDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4NCw5ICsxODQsNiBAQCBwdWJsaWM6
CiAKICAgICAgICAgYXV0byBwcmVPcmRlciA9IG1fZ3JhcGguYmxvY2tzSW5QcmVPcmRlcigpOwog
Ci0gICAgICAgIC8vIFdlIHNob3VsZCBub3QgY3JlYXRlIGFueSBhbGxvY2EncyBhZnRlciB0aGlz
IHBvaW50LCBzaW5jZSB0aGV5IHdpbGwgY2Vhc2UgdG8KLSAgICAgICAgLy8gYmUgbWVtMnJlZyBj
YW5kaWRhdGVzLgotICAgICAgICAKICAgICAgICAgbV9jYWxsRnJhbWUgPSBtX291dC5mcmFtZVBv
aW50ZXIoKTsKICAgICAgICAgbV90YWdUeXBlTnVtYmVyID0gbV9vdXQuY29uc3RJbnQ2NChUYWdU
eXBlTnVtYmVyKTsKICAgICAgICAgbV90YWdNYXNrID0gbV9vdXQuY29uc3RJbnQ2NChUYWdNYXNr
KTsKQEAgLTI1NTAsOCArMjU0Nyw4IEBAIHByaXZhdGU6CiAgICAgICAgIEIzOjpQYXRjaHBvaW50
VmFsdWUqIHBhdGNocG9pbnQgPSBtX291dC5wYXRjaHBvaW50KFZvaWQpOwogICAgICAgICBwYXRj
aHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIoYmFzZSk7CiAgICAgICAgIHBhdGNocG9pbnQtPmFw
cGVuZFNvbWVSZWdpc3Rlcih2YWx1ZSk7Ci0gICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3Rh
Z01hc2ssIFZhbHVlUmVwOjpyZWcoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKSk7Ci0gICAgICAg
IHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ1R5cGVOdW1iZXIsIFZhbHVlUmVwOjpyZWcoR1BSSW5m
bzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZCht
X3RhZ01hc2ssIFZhbHVlUmVwOjpsYXRlVXNlUmVnKEdQUkluZm86OnRhZ01hc2tSZWdpc3Rlcikp
OworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdUeXBlTnVtYmVyLCBWYWx1ZVJlcDo6
bGF0ZVVzZVJlZyhHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKICAgICAgICAgcGF0
Y2hwb2ludC0+Y2xvYmJlcihSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKCkpOwog
CiAgICAgICAgIC8vIEZJWE1FOiBJZiB0aGlzIGlzIGEgUHV0QnlJZEZsdXNoLCB3ZSBtaWdodCB3
YW50IHRvIGxhdGUtY2xvYmJlciB2b2xhdGlsZSByZWdpc3RlcnMuCkBAIC01MDQ1LDggKzUwNDIs
OCBAQCBwcml2YXRlOgogICAgICAgICBSZWZQdHI8UGF0Y2hwb2ludEV4Y2VwdGlvbkhhbmRsZT4g
ZXhjZXB0aW9uSGFuZGxlID0KICAgICAgICAgICAgIHByZXBhcmVQYXRjaHBvaW50Rm9yRXhjZXB0
aW9ucyhwYXRjaHBvaW50KTsKICAgICAgICAgCi0gICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZCht
X3RhZ01hc2ssIFZhbHVlUmVwOjpyZWcoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKSk7Ci0gICAg
ICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ1R5cGVOdW1iZXIsIFZhbHVlUmVwOjpyZWcoR1BS
SW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVu
ZChtX3RhZ01hc2ssIFZhbHVlUmVwOjpsYXRlVXNlUmVnKEdQUkluZm86OnRhZ01hc2tSZWdpc3Rl
cikpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdUeXBlTnVtYmVyLCBWYWx1ZVJl
cDo6bGF0ZVVzZVJlZyhHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKICAgICAgICAg
cGF0Y2hwb2ludC0+Y2xvYmJlcihSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKCkp
OwogICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyTGF0ZShSZWdpc3RlclNldDo6dm9sYXRpbGVS
ZWdpc3RlcnNGb3JKU0NhbGwoKSk7CiAgICAgICAgIHBhdGNocG9pbnQtPnJlc3VsdENvbnN0cmFp
bnQgPSBWYWx1ZVJlcDo6cmVnKEdQUkluZm86OnJldHVyblZhbHVlR1BSKTsKQEAgLTUxMzYsOCAr
NTEzMyw4IEBAIHByaXZhdGU6CiAgICAgICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9
IG1fb3V0LnBhdGNocG9pbnQoVm9pZCk7CiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFZlY3Rv
cihhcmd1bWVudHMpOwogCi0gICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ01hc2ssIFZh
bHVlUmVwOjpyZWcoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKSk7Ci0gICAgICAgIHBhdGNocG9p
bnQtPmFwcGVuZChtX3RhZ1R5cGVOdW1iZXIsIFZhbHVlUmVwOjpyZWcoR1BSSW5mbzo6dGFnVHlw
ZU51bWJlclJlZ2lzdGVyKSk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ01hc2ss
IFZhbHVlUmVwOjpsYXRlVXNlUmVnKEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOworICAgICAg
ICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdUeXBlTnVtYmVyLCBWYWx1ZVJlcDo6bGF0ZVVzZVJl
ZyhHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKIAogICAgICAgICAvLyBQcmV2ZW50
IGFueSBvZiB0aGUgYXJndW1lbnRzIGZyb20gdXNpbmcgdGhlIHNjcmF0Y2ggcmVnaXN0ZXIuCiAg
ICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXJFYXJseShSZWdpc3RlclNldDo6bWFjcm9TY3JhdGNo
UmVnaXN0ZXJzKCkpOwpAQCAtNTI1Niw4ICs1MjUzLDggQEAgcHJpdmF0ZToKICAgICAgICAgUmVm
UHRyPFBhdGNocG9pbnRFeGNlcHRpb25IYW5kbGU+IGV4Y2VwdGlvbkhhbmRsZSA9CiAgICAgICAg
ICAgICBwcmVwYXJlUGF0Y2hwb2ludEZvckV4Y2VwdGlvbnMocGF0Y2hwb2ludCk7CiAgICAgICAg
IAotICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdNYXNrLCBWYWx1ZVJlcDo6cmVnKEdQ
UkluZm86OnRhZ01hc2tSZWdpc3RlcikpOwotICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90
YWdUeXBlTnVtYmVyLCBWYWx1ZVJlcDo6cmVnKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rl
cikpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdNYXNrLCBWYWx1ZVJlcDo6bGF0
ZVVzZVJlZyhHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+
YXBwZW5kKG1fdGFnVHlwZU51bWJlciwgVmFsdWVSZXA6OmxhdGVVc2VSZWcoR1BSSW5mbzo6dGFn
VHlwZU51bWJlclJlZ2lzdGVyKSk7CiAKICAgICAgICAgcGF0Y2hwb2ludC0+Y2xvYmJlcihSZWdp
c3RlclNldDo6bWFjcm9TY3JhdGNoUmVnaXN0ZXJzKCkpOwogICAgICAgICBwYXRjaHBvaW50LT5j
bG9iYmVyTGF0ZShSZWdpc3RlclNldDo6dm9sYXRpbGVSZWdpc3RlcnNGb3JKU0NhbGwoKSk7CkBA
IC02MTQ2LDggKzYxNDMsOCBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIFVuaXF1ZWRTdHJp
bmdJbXBsKiBzdHIgPSBiaXR3aXNlX2Nhc3Q8VW5pcXVlZFN0cmluZ0ltcGwqPihzdHJpbmctPnRy
eUdldFZhbHVlSW1wbCgpKTsKICAgICAgICAgICAgICAgICBCMzo6UGF0Y2hwb2ludFZhbHVlKiBw
YXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChJbnQ2NCk7CiAgICAgICAgICAgICAgICAgcGF0
Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKGNlbGwpOwotICAgICAgICAgICAgICAgIHBhdGNo
cG9pbnQtPmFwcGVuZChtX3RhZ01hc2ssIFZhbHVlUmVwOjpyZWcoR1BSSW5mbzo6dGFnTWFza1Jl
Z2lzdGVyKSk7Ci0gICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnVHlwZU51
bWJlciwgVmFsdWVSZXA6OnJlZyhHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKKyAg
ICAgICAgICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdNYXNrLCBWYWx1ZVJlcDo6bGF0
ZVVzZVJlZyhHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKKyAgICAgICAgICAgICAgICBwYXRj
aHBvaW50LT5hcHBlbmQobV90YWdUeXBlTnVtYmVyLCBWYWx1ZVJlcDo6bGF0ZVVzZVJlZyhHUFJJ
bmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKICAgICAgICAgICAgICAgICBwYXRjaHBvaW50
LT5jbG9iYmVyKFJlZ2lzdGVyU2V0OjptYWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CiAKICAgICAg
ICAgICAgICAgICBSZWZQdHI8UGF0Y2hwb2ludEV4Y2VwdGlvbkhhbmRsZT4gZXhjZXB0aW9uSGFu
ZGxlID0gcHJlcGFyZVBhdGNocG9pbnRGb3JFeGNlcHRpb25zKHBhdGNocG9pbnQpOwpAQCAtNzYx
OSw4ICs3NjE2LDggQEAgcHJpdmF0ZToKIAogICAgICAgICBCMzo6UGF0Y2hwb2ludFZhbHVlKiBw
YXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChJbnQ2NCk7CiAgICAgICAgIHBhdGNocG9pbnQt
PmFwcGVuZFNvbWVSZWdpc3RlcihiYXNlKTsKLSAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1f
dGFnTWFzaywgVmFsdWVSZXA6OnJlZyhHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKLSAgICAg
ICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnVHlwZU51bWJlciwgVmFsdWVSZXA6OnJlZyhHUFJJ
bmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5k
KG1fdGFnTWFzaywgVmFsdWVSZXA6OmxhdGVVc2VSZWcoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVy
KSk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ1R5cGVOdW1iZXIsIFZhbHVlUmVw
OjpsYXRlVXNlUmVnKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlcikpOwogCiAgICAgICAg
IC8vIEZJWE1FOiBJZiB0aGlzIGlzIGEgR2V0QnlJZEZsdXNoLCB3ZSBtaWdodCBnZXQgc29tZSBw
ZXJmb3JtYW5jZSBib29zdCBpZiB3ZSBjbGFpbSB0aGF0IGl0CiAgICAgICAgIC8vIGNsb2JiZXJz
IHZvbGF0aWxlIHJlZ2lzdGVycyBsYXRlLiBJdCdzIG5vdCBuZWNlc3NhcnkgZm9yIGNvcnJlY3Ru
ZXNzLCB0aG91Z2gsIHNpbmNlIHRoZQpAQCAtNzk3Miw4ICs3OTY5LDggQEAgcHJpdmF0ZToKICAg
ICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChJbnQ2
NCk7CiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihsZWZ0KTsKICAgICAg
ICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKHJpZ2h0KTsKLSAgICAgICAgcGF0Y2hw
b2ludC0+YXBwZW5kKG1fdGFnTWFzaywgVmFsdWVSZXA6OnJlZyhHUFJJbmZvOjp0YWdNYXNrUmVn
aXN0ZXIpKTsKLSAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnVHlwZU51bWJlciwgVmFs
dWVSZXA6OnJlZyhHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKKyAgICAgICAgcGF0
Y2hwb2ludC0+YXBwZW5kKG1fdGFnTWFzaywgVmFsdWVSZXA6OmxhdGVVc2VSZWcoR1BSSW5mbzo6
dGFnTWFza1JlZ2lzdGVyKSk7CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ1R5cGVO
dW1iZXIsIFZhbHVlUmVwOjpsYXRlVXNlUmVnKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rl
cikpOwogICAgICAgICBSZWZQdHI8UGF0Y2hwb2ludEV4Y2VwdGlvbkhhbmRsZT4gZXhjZXB0aW9u
SGFuZGxlID0KICAgICAgICAgICAgIHByZXBhcmVQYXRjaHBvaW50Rm9yRXhjZXB0aW9ucyhwYXRj
aHBvaW50KTsKICAgICAgICAgcGF0Y2hwb2ludC0+bnVtR1BTY3JhdGNoUmVnaXN0ZXJzID0gMTsK
QEAgLTgwMjgsOSArODAyNSw2IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBOb2RlKiBub2Rl
ID0gbV9ub2RlOwogICAgICAgICAKLSAgICAgICAgLy8gRklYTUU6IE1ha2UgdGhpcyBkbyBleGNl
cHRpb25zLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUxNjg2Ci0gICAgICAgICAgICAKICAgICAgICAgTFZhbHVlIGxlZnQgPSBsb3dKU1ZhbHVl
KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgTFZhbHVlIHJpZ2h0ID0gbG93SlNWYWx1ZShub2Rl
LT5jaGlsZDIoKSk7CiAKQEAgLTgwNDAsOCArODAzNCw4IEBAIHByaXZhdGU6CiAgICAgICAgIFBh
dGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBhdGNocG9pbnQoSW50NjQpOwogICAg
ICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIobGVmdCk7CiAgICAgICAgIHBhdGNo
cG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihyaWdodCk7Ci0gICAgICAgIHBhdGNocG9pbnQtPmFw
cGVuZChtX3RhZ01hc2ssIFZhbHVlUmVwOjpyZWcoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKSk7
Ci0gICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ1R5cGVOdW1iZXIsIFZhbHVlUmVwOjpy
ZWcoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CisgICAgICAgIHBhdGNocG9pbnQt
PmFwcGVuZChtX3RhZ01hc2ssIFZhbHVlUmVwOjpsYXRlVXNlUmVnKEdQUkluZm86OnRhZ01hc2tS
ZWdpc3RlcikpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdUeXBlTnVtYmVyLCBW
YWx1ZVJlcDo6bGF0ZVVzZVJlZyhHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKICAg
ICAgICAgUmVmUHRyPFBhdGNocG9pbnRFeGNlcHRpb25IYW5kbGU+IGV4Y2VwdGlvbkhhbmRsZSA9
CiAgICAgICAgICAgICBwcmVwYXJlUGF0Y2hwb2ludEZvckV4Y2VwdGlvbnMocGF0Y2hwb2ludCk7
CiAgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVycyA9IDE7CkBAIC04MDk0
LDggKzgwODgsOCBAQCBwcml2YXRlOgogICAgICAgICBQYXRjaHBvaW50VmFsdWUqIHBhdGNocG9p
bnQgPSBtX291dC5wYXRjaHBvaW50KEludDY0KTsKICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5k
U29tZVJlZ2lzdGVyKGxlZnQpOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0
ZXIocmlnaHQpOwotICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdNYXNrLCBWYWx1ZVJl
cDo6cmVnKEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOwotICAgICAgICBwYXRjaHBvaW50LT5h
cHBlbmQobV90YWdUeXBlTnVtYmVyLCBWYWx1ZVJlcDo6cmVnKEdQUkluZm86OnRhZ1R5cGVOdW1i
ZXJSZWdpc3RlcikpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdNYXNrLCBWYWx1
ZVJlcDo6bGF0ZVVzZVJlZyhHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKKyAgICAgICAgcGF0
Y2hwb2ludC0+YXBwZW5kKG1fdGFnVHlwZU51bWJlciwgVmFsdWVSZXA6OmxhdGVVc2VSZWcoR1BS
SW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CiAgICAgICAgIFJlZlB0cjxQYXRjaHBvaW50
RXhjZXB0aW9uSGFuZGxlPiBleGNlcHRpb25IYW5kbGUgPQogICAgICAgICAgICAgcHJlcGFyZVBh
dGNocG9pbnRGb3JFeGNlcHRpb25zKHBhdGNocG9pbnQpOwogICAgICAgICBwYXRjaHBvaW50LT5u
dW1HUFNjcmF0Y2hSZWdpc3RlcnMgPSAxOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278643</attachid>
            <date>2016-05-11 11:50:14 -0700</date>
            <delta_ts>2016-05-11 13:53:20 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>17648</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjAwNjk1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU4IEBA
CisyMDE2LTA1LTExICBTYWFtIGJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IEFpciBtYXkgZGVjaWRlIHRvIHB1dCB0aGUgcmVzdWx0IHJlZ2lzdGVyIG9mIGFuIGFyaXRobWV0
aWMgc25pcHBldCBpbiB0aGUgdGFnIHJlZ2lzdGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc1NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBuZXcgVmFsdWVSZXAgdG8g
QjMgY2FsbGVkIExhdGVSZWdpc3Rlci4gVGhlIHNlbWFudGljcworICAgICAgICBhcmUgc2ltaWxh
ciB0byBSZWdpc3RlciBpbiB0aGF0IGl0IGNhbiBiZSB1c2VkIHRvIHBpbiBhbiBhcmd1bWVudCB0
bworICAgICAgICBhIHBhcnRpY3VsYXIgcmVnaXN0ZXIuIEl0IGRpZmZlcnMgZnJvbSBWYWx1ZVJl
cDo6UmVnaXN0ZXIgaW4gdGhhdCB0aGUgc2VtYW50aWNzIG9mCisgICAgICAgIExhdGVSZWdpc3Rl
ciBhcmUgdGhhdCBpdCBpcyB1c2VkIGFmdGVyIHRoZSByZXN1bHQgb2YgdGhlIG5vZGUgaXRzIGFu
IGFyZ3VtZW50IHRvCisgICAgICAgIGlzIGNvbXB1dGVkLiBUaGlzIG1lYW5zIHRoYXQgYSBMYXRl
UmVnaXN0ZXIgYXJndW1lbnQgd2lsbCBpbnRlcmZlcmUgd2l0aCB0aGUgcmVzdWx0CisgICAgICAg
IG9mIGEgbm9kZS4gTGF0ZVJlZ2lzdGVyIGlzIG5vdCBhIHZhbGlkIHJlc3VsdCBWYWx1ZVJlcC4K
KworICAgICAgICBUaGlzIHdhcyBuZWVkZWQgYmVjYXVzZSB0aGVyZSB3YXMgYSBidWcgd2hlcmUg
QjMvQWlyIHdvdWxkIGFzc2lnbiB0aGUKKyAgICAgICAgcmVzdWx0IG9mIGEgcGF0Y2hwb2ludCB0
byB0aGUgVGFnVHlwZU51bWJlciByZWdpc3Rlci4gVGhpcyBicm9rZSBvdXIKKyAgICAgICAgY29k
ZSB3aGVuIHdlIHdvdWxkIGJveCBhIGRvdWJsZSBpbnRvIGEgSlNWYWx1ZSBpbiBhIHNuaXBwZXQg
d2hlbiB0aGUKKyAgICAgICAgcmVzdWx0IGlzIHRoZSBzYW1lIGFzIHRoZSBUYWdUeXBlTnVtYmVy
IHJlZ2lzdGVyLiBUbyBmaXggdGhlIGlzc3VlLAorICAgICAgICB3ZSBwYXNzIFRhZ01hc2tSZWdp
c3RlciBhbmQgVGFnVHlwZU51bWJlclJlZ2lzdGVyIGFzIFZhbHVlUmVwOjpMYXRlUmVnaXN0ZXIK
KyAgICAgICAgYXJndW1lbnRzIHRvIHZhcmlvdXMgcGF0Y2hwb2ludHMuCisKKyAgICAgICAgKiBi
My9CM0xvd2VyVG9BaXIuY3BwOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRvQWlyOjpm
aWxsU3RhY2ttYXApOgorICAgICAgICAqIGIzL0IzUGF0Y2hwb2ludFNwZWNpYWwuY3BwOgorICAg
ICAgICAoSlNDOjpCMzo6UGF0Y2hwb2ludFNwZWNpYWw6OmFkbWl0c1N0YWNrKToKKyAgICAgICAg
KiBiMy9CM1N0YWNrbWFwU3BlY2lhbC5jcHA6CisgICAgICAgIChKU0M6OkIzOjpTdGFja21hcFNw
ZWNpYWw6OmZvckVhY2hBcmdJbXBsKToKKyAgICAgICAgKEpTQzo6QjM6OlN0YWNrbWFwU3BlY2lh
bDo6aXNBcmdWYWxpZEZvclJlcCk6CisgICAgICAgICogYjMvQjNWYWxpZGF0ZS5jcHA6CisgICAg
ICAgICogYjMvQjNWYWx1ZVJlcC5jcHA6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZVJlcDo6YWRk
VXNlZFJlZ2lzdGVyc1RvKToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlUmVwOjpkdW1wKToKKyAg
ICAgICAgKEpTQzo6QjM6OlZhbHVlUmVwOjplbWl0UmVzdG9yZSk6CisgICAgICAgIChKU0M6OkIz
OjpWYWx1ZVJlcDo6cmVjb3ZlcnlGb3JKU1ZhbHVlKToKKyAgICAgICAgKFdURjo6cHJpbnRJbnRl
cm5hbCk6CisgICAgICAgICogYjMvQjNWYWx1ZVJlcC5oOgorICAgICAgICAoSlNDOjpCMzo6VmFs
dWVSZXA6OnJlZyk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZVJlcDo6bGF0ZVJlZyk6CisgICAg
ICAgIChKU0M6OkIzOjpWYWx1ZVJlcDo6c3RhY2spOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWVS
ZXA6Om9wZXJhdG9yPT0pOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWVSZXA6OmlzU29tZVJlZ2lz
dGVyKToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlUmVwOjppc1JlZyk6CisgICAgICAgICogYjMv
dGVzdGIzLmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OnRlc3RTcGlsbFVzZUxhcmdlclRoYW5EZWYp
OgorICAgICAgICAoSlNDOjpCMzo6dGVzdExhdGVSZWdpc3Rlcik6CisgICAgICAgIChKU0M6OkIz
Ojp6ZXJvKToKKyAgICAgICAgKEpTQzo6QjM6OnJ1bik6CisgICAgICAgICogZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6Omxvd2Vy
KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZUluKToKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Z2V0QnlJZCk6CisgICAgICAgIChK
U0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmVtaXRCaW5hcnlTbmlwcGV0KToKKyAgICAgICAg
KEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6ZW1pdEJpbmFyeUJpdE9wU25pcHBldCk6Cisg
ICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmVtaXRSaWdodFNoaWZ0U25pcHBl
dCk6CisKIDIwMTYtMDUtMTEgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4K
IAogICAgICAgICBJbXByb3ZlIGVycm9yIG1lc3NhZ2VzIGZvciBhY2Nlc3NpbmcgYXJndW1lbnRz
LmNhbGxlZSBhbmQgc2ltaWxhciBnZXR0ZXJzIGluIHN0cmljdCBtb2RlCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkocmV2aXNpb24gMjAwNjkzKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwMDUsNiArMTAwNSw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBjYXNlIFZhbHVlUmVw
OjpTb21lUmVnaXN0ZXI6CiAgICAgICAgICAgICAgICAgYXJnID0gdG1wKHZhbHVlLnZhbHVlKCkp
OwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBWYWx1ZVJlcDo6TGF0
ZVJlZ2lzdGVyOgogICAgICAgICAgICAgY2FzZSBWYWx1ZVJlcDo6UmVnaXN0ZXI6CiAgICAgICAg
ICAgICAgICAgc3RhY2ttYXAtPmVhcmx5Q2xvYmJlcmVkKCkuY2xlYXIodmFsdWUucmVwKCkucmVn
KCkpOwogICAgICAgICAgICAgICAgIGFyZyA9IFRtcCh2YWx1ZS5yZXAoKS5yZWcoKSk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBvaW50U3BlY2lhbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFNwZWNpYWwuY3Bw
CShyZXZpc2lvbiAyMDA2OTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNQYXRjaHBv
aW50U3BlY2lhbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMCw2ICsxMTAsNyBAQCBib29sIFBh
dGNocG9pbnRTcGVjaWFsOjphZG1pdHNTdGFjayhJbnN0CiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgY2FzZSBWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyOgogICAgICAgICBjYXNlIFZh
bHVlUmVwOjpSZWdpc3RlcjoKKyAgICAgICAgY2FzZSBWYWx1ZVJlcDo6TGF0ZVJlZ2lzdGVyOgog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9CM1N0YWNrbWFwU3BlY2lhbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL0IzU3RhY2ttYXBTcGVjaWFsLmNwcAkocmV2aXNpb24gMjAwNjkzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBTcGVjaWFsLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTA3LDYgKzEwNyw5IEBAIHZvaWQgU3RhY2ttYXBTcGVjaWFsOjpmb3JFYWNoQXJnSW1w
bCgKICAgICAgICAgICAgIGNhc2UgVmFsdWVSZXA6OkNvbnN0YW50OgogICAgICAgICAgICAgICAg
IHJvbGUgPSBBcmc6OlVzZTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgVmFsdWVSZXA6OkxhdGVSZWdpc3RlcjoKKyAgICAgICAgICAgICAgICByb2xlID0gQXJnOjpM
YXRlVXNlOworICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBWYWx1ZVJl
cDo6Q29sZEFueToKICAgICAgICAgICAgICAgICByb2xlID0gQXJnOjpDb2xkVXNlOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwpAQCAtMjI4LDYgKzIzMSw3IEBAIGJvb2wgU3RhY2ttYXBTcGVjaWFs
Ojppc0FyZ1ZhbGlkRm9yUmVwKEEKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgY2FzZSBWYWx1
ZVJlcDo6U29tZVJlZ2lzdGVyOgogICAgICAgICByZXR1cm4gYXJnLmlzVG1wKCk7CisgICAgY2Fz
ZSBWYWx1ZVJlcDo6TGF0ZVJlZ2lzdGVyOgogICAgIGNhc2UgVmFsdWVSZXA6OlJlZ2lzdGVyOgog
ICAgICAgICByZXR1cm4gYXJnID09IFRtcChyZXAucmVnKCkpOwogICAgIGNhc2UgVmFsdWVSZXA6
OlN0YWNrQXJndW1lbnQ6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxpZGF0
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsaWRhdGUu
Y3BwCShyZXZpc2lvbiAyMDA2OTMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWxp
ZGF0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxMSw2ICs0MTEsNyBAQCBwcml2YXRlOgogICAg
ICAgICBjYXNlIFZhbHVlUmVwOjpTdGFja0FyZ3VtZW50OgogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgVmFsdWVSZXA6OlJlZ2lzdGVyOgorICAgICAgICBjYXNlIFZhbHVlUmVwOjpM
YXRlUmVnaXN0ZXI6CiAgICAgICAgICAgICBpZiAodmFsdWUucmVwKCkucmVnKCkuaXNHUFIoKSkK
ICAgICAgICAgICAgICAgICBWQUxJREFURShpc0ludCh2YWx1ZS52YWx1ZSgpLT50eXBlKCkpLCAo
IkF0ICIsICpjb250ZXh0LCAiOiAiLCB2YWx1ZSkpOwogICAgICAgICAgICAgZWxzZQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlUmVwLmNwcAkocmV2aXNpb24gMjAwNjkzKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00Miw2ICs0Miw3IEBAIHZvaWQgVmFsdWVSZXA6OmFkZFVzZWRSZWdpc3RlcnNUbyhSZWdp
c3QKICAgICBjYXNlIFNvbWVSZWdpc3RlcjoKICAgICBjYXNlIENvbnN0YW50OgogICAgICAgICBy
ZXR1cm47CisgICAgY2FzZSBMYXRlUmVnaXN0ZXI6CiAgICAgY2FzZSBSZWdpc3RlcjoKICAgICAg
ICAgc2V0LnNldChyZWcoKSk7CiAgICAgICAgIHJldHVybjsKQEAgLTcwLDYgKzcxLDcgQEAgdm9p
ZCBWYWx1ZVJlcDo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjbwogICAgIGNhc2UgTGF0ZUNvbGRB
bnk6CiAgICAgY2FzZSBTb21lUmVnaXN0ZXI6CiAgICAgICAgIHJldHVybjsKKyAgICBjYXNlIExh
dGVSZWdpc3RlcjoKICAgICBjYXNlIFJlZ2lzdGVyOgogICAgICAgICBvdXQucHJpbnQoIigiLCBy
ZWcoKSwgIikiKTsKICAgICAgICAgcmV0dXJuOwpAQCAtOTAsNiArOTIsNyBAQCB2b2lkIFZhbHVl
UmVwOjplbWl0UmVzdG9yZShBc3NlbWJseUhlbHBlCiB7CiAgICAgaWYgKHJlZy5pc0dQUigpKSB7
CiAgICAgICAgIHN3aXRjaCAoa2luZCgpKSB7CisgICAgICAgIGNhc2UgTGF0ZVJlZ2lzdGVyOgog
ICAgICAgICBjYXNlIFJlZ2lzdGVyOgogICAgICAgICAgICAgaWYgKGlzR1BSKCkpCiAgICAgICAg
ICAgICAgICAgaml0Lm1vdmUoZ3ByKCksIHJlZy5ncHIoKSk7CkBAIC0xMTAsNiArMTEzLDcgQEAg
dm9pZCBWYWx1ZVJlcDo6ZW1pdFJlc3RvcmUoQXNzZW1ibHlIZWxwZQogICAgIH0KICAgICAKICAg
ICBzd2l0Y2ggKGtpbmQoKSkgeworICAgIGNhc2UgTGF0ZVJlZ2lzdGVyOgogICAgIGNhc2UgUmVn
aXN0ZXI6CiAgICAgICAgIGlmIChpc0dQUigpKQogICAgICAgICAgICAgaml0Lm1vdmU2NFRvRG91
YmxlKGdwcigpLCByZWcuZnByKCkpOwpAQCAtMTMyLDYgKzEzNiw3IEBAIHZvaWQgVmFsdWVSZXA6
OmVtaXRSZXN0b3JlKEFzc2VtYmx5SGVscGUKIFZhbHVlUmVjb3ZlcnkgVmFsdWVSZXA6OnJlY292
ZXJ5Rm9ySlNWYWx1ZSgpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChraW5kKCkpIHsKKyAgICBjYXNl
IExhdGVSZWdpc3RlcjoKICAgICBjYXNlIFJlZ2lzdGVyOgogICAgICAgICByZXR1cm4gVmFsdWVS
ZWNvdmVyeTo6aW5HUFIoZ3ByKCksIERhdGFGb3JtYXRKUyk7CiAgICAgY2FzZSBTdGFjazoKQEAg
LTE3MSw2ICsxNzYsOSBAQCB2b2lkIHByaW50SW50ZXJuYWwoUHJpbnRTdHJlYW0mIG91dCwgVmFs
CiAgICAgY2FzZSBWYWx1ZVJlcDo6UmVnaXN0ZXI6CiAgICAgICAgIG91dC5wcmludCgiUmVnaXN0
ZXIiKTsKICAgICAgICAgcmV0dXJuOworICAgIGNhc2UgVmFsdWVSZXA6OkxhdGVSZWdpc3RlcjoK
KyAgICAgICAgb3V0LnByaW50KCJMYXRlUmVnaXN0ZXIiKTsKKyAgICAgICAgcmV0dXJuOwogICAg
IGNhc2UgVmFsdWVSZXA6OlN0YWNrOgogICAgICAgICBvdXQucHJpbnQoIlN0YWNrIik7CiAgICAg
ICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1ZhbHVlUmVwLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuaAkocmV2
aXNpb24gMjAwNjkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuaAko
d29ya2luZyBjb3B5KQpAQCAtNzEsNiArNzEsMTIgQEAgcHVibGljOgogICAgICAgICAvLyByZXBy
ZXNlbnRhdGlvbiwgdGhpcyB0ZWxscyB1cyB3aGF0IHJlZ2lzdGVyIEIzIHBpY2tlZC4KICAgICAg
ICAgUmVnaXN0ZXIsCiAKKyAgICAgICAgLy8gQXMgYW4gaW5wdXQgcmVwcmVzZW50YXRpb24sIHRo
aXMgZm9yY2VzIGEgcGFydGljdWxhciByZWdpc3RlciBhbmQgc3RhdGVzIHRoYXQKKyAgICAgICAg
Ly8gdGhlIHJlZ2lzdGVyIGlzIHVzZWQgbGF0ZS4gVGhpcyBtZWFucyB0aGF0IHRoZSByZWdpc3Rl
ciBpcyB1c2VkIGFmdGVyIHRoZSByZXN1bHQKKyAgICAgICAgLy8gaXMgZGVmaW5lZCAoaS5lLCB0
aGUgcmVzdWx0IHdpbGwgaW50ZXJmZXJlIHdpdGggdGhpcyBhcyBhbiBpbnB1dCkuCisgICAgICAg
IC8vIEl0J3Mgbm90IHZhbGlkIGZvciB0aGlzIHRvIGJlIHVzZWQgYXMgYSByZXN1bHQga2luZC4K
KyAgICAgICAgTGF0ZVJlZ2lzdGVyLAorCiAgICAgICAgIC8vIEFzIGFuIG91dHB1dCByZXByZXNl
bnRhdGlvbiwgdGhpcyB0ZWxscyB1cyB3aGF0IHN0YWNrIHNsb3QgQjMgcGlja2VkLiBJdCdzIG5v
dCBhIHZhbGlkCiAgICAgICAgIC8vIGlucHV0IHJlcHJlc2VudGF0aW9uLgogICAgICAgICBTdGFj
aywKQEAgLTEwNSw2ICsxMTEsMTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gVmFsdWVSZXAo
cmVnKTsKICAgICB9CiAKKyAgICBzdGF0aWMgVmFsdWVSZXAgbGF0ZVJlZyhSZWcgcmVnKQorICAg
IHsKKyAgICAgICAgVmFsdWVSZXAgcmVzdWx0KHJlZyk7CisgICAgICAgIHJlc3VsdC5tX2tpbmQg
PSBMYXRlUmVnaXN0ZXI7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQorCiAgICAgc3Rh
dGljIFZhbHVlUmVwIHN0YWNrKGludHB0cl90IG9mZnNldEZyb21GUCkKICAgICB7CiAgICAgICAg
IFZhbHVlUmVwIHJlc3VsdDsKQEAgLTE0MSw2ICsxNTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlm
IChraW5kKCkgIT0gb3RoZXIua2luZCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICBzd2l0Y2ggKGtpbmQoKSkgeworICAgICAgICBjYXNlIExhdGVSZWdpc3RlcjoKICAgICAg
ICAgY2FzZSBSZWdpc3RlcjoKICAgICAgICAgICAgIHJldHVybiB1LnJlZyA9PSBvdGhlci51LnJl
ZzsKICAgICAgICAgY2FzZSBTdGFjazoKQEAgLTE2NSw3ICsxNzksNyBAQCBwdWJsaWM6CiAKICAg
ICBib29sIGlzU29tZVJlZ2lzdGVyKCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFNvbWVSZWdp
c3RlcjsgfQogICAgIAotICAgIGJvb2wgaXNSZWcoKSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0g
UmVnaXN0ZXI7IH0KKyAgICBib29sIGlzUmVnKCkgY29uc3QgeyByZXR1cm4ga2luZCgpID09IFJl
Z2lzdGVyIHx8IGtpbmQoKSA9PSBMYXRlUmVnaXN0ZXI7IH0KICAgICAKICAgICBSZWcgcmVnKCkg
Y29uc3QKICAgICB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIzLmNwcAkocmV2aXNp
b24gMjAwNjkzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTExNzc3LDYgKzExNzc3LDgzIEBAIHZvaWQgdGVzdFNwaWxsVXNlTGFyZ2Vy
VGhhbkRlZigpCiAKIH0KIAordm9pZCB0ZXN0TGF0ZVJlZ2lzdGVyKCkKK3sKKyAgICBQcm9jZWR1
cmUgcHJvYzsKKyAgICBCYXNpY0Jsb2NrKiByb290ID0gcHJvYy5hZGRCbG9jaygpOworCisgICAg
Ly8gVGhpcyB3b3JrcyBieSBtYWtpbmcgYWxsIGJ1dCAxIHJlZ2lzdGVyIGJlIGlucHV0IHRvIHRo
ZSBmaXJzdCBwYXRjaHBvaW50IGFzIExhdGVSZWdpc3Rlci4KKyAgICAvLyBUaGUgb3RoZXIgMSBy
ZWdpc3RlciBpcyBqdXN0IGEgcmVndWxhciBSZWdpc3RlciBpbnB1dC4gV2UgYXNzZXJ0IG91ciBy
ZXN1bHQgaXMgdGhlIHJlZ3VsYXIKKyAgICAvLyByZWdpc3RlciBpbnB1dC4gVGhlcmUgd291bGQg
YmUgbm8gb3RoZXIgd2F5IGZvciB0aGUgcmVnaXN0ZXIgYWxsb2NhdG9yIHRvIGFycmFuZ2UgdGhp
bmdzCisgICAgLy8gYmVjYXVzZSBMYXRlUmVnaXN0ZXIgaW50ZXJmZXJlcyB3aXRoIHRoZSByZXN1
bHQuCisgICAgLy8gVGhlbiwgdGhlIHNlY29uZCBwYXRjaHBvaW50IHRha2VzIHRoZSByZXN1bHQg
b2YgdGhlIGZpcnN0IGFzIGFuIGFyZ3VtZW50IGFuZCBhc2tzIGZvcgorICAgIC8vIGl0IGluIGEg
cmVnaXN0ZXIgdGhhdCB3YXMgYSBMYXRlUmVnaXN0ZXIuIFRoaXMgaXMgdG8gaW5jZW50aXZpemUg
dGhlIHJlZ2lzdGVyIGFsbG9jYXRvcgorICAgIC8vIHRvIHVzZSB0aGF0IExhdGVSZWdpc3RlciBh
cyB0aGUgcmVzdWx0IGZvciB0aGUgZmlyc3QgcGF0Y2hwb2ludC4gQnV0IG9mIGNvdXJzZSBpdCBj
YW4gbm90IGRvIHRoYXQuCisgICAgLy8gU28gaXQgbXVzdCBpc3N1ZSBhIG1vdiBhZnRlciB0aGUg
Zmlyc3QgcGF0Y2hwb2ludCBmcm9tIHRoZSBmaXJzdCdzIHJlc3VsdCBpbnRvIHRoZSBzZWNvbmQn
cyBpbnB1dC4KKworICAgIFJlZ2lzdGVyU2V0IHJlZ3MgPSBSZWdpc3RlclNldDo6YWxsR1BScygp
OworICAgIHJlZ3MuZXhjbHVkZShSZWdpc3RlclNldDo6c3RhY2tSZWdpc3RlcnMoKSk7CisgICAg
cmVncy5leGNsdWRlKFJlZ2lzdGVyU2V0OjpyZXNlcnZlZEhhcmR3YXJlUmVnaXN0ZXJzKCkpOwor
ICAgIFZlY3RvcjxWYWx1ZSo+IGxhdGVVc2VBcmdzOworICAgIHVuc2lnbmVkIHJlc3VsdCA9IDA7
CisgICAgZm9yIChHUFJSZWcgcmVnID0gQ0NhbGxIZWxwZXJzOjpmaXJzdFJlZ2lzdGVyKCk7IHJl
ZyA8PSBDQ2FsbEhlbHBlcnM6Omxhc3RSZWdpc3RlcigpOyByZWcgPSBDQ2FsbEhlbHBlcnM6Om5l
eHRSZWdpc3RlcihyZWcpKSB7CisgICAgICAgIGlmICghcmVncy5nZXQocmVnKSkKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICByZXN1bHQrKzsKKyAgICAgICAgaWYgKHJlZyA9PSBHUFJJ
bmZvOjpyZWdUMCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBWYWx1ZSogdmFsdWUg
PSByb290LT5hcHBlbmROZXc8Q29uc3Q2NFZhbHVlPihwcm9jLCBPcmlnaW4oKSwgMSk7CisgICAg
ICAgIGxhdGVVc2VBcmdzLmFwcGVuZCh2YWx1ZSk7CisgICAgfQorICAgIFZhbHVlKiByZWd1bGFy
VXNlID0gcm9vdC0+YXBwZW5kTmV3PENvbnN0NjRWYWx1ZT4ocHJvYywgT3JpZ2luKCksIDEpOwor
ICAgIFBhdGNocG9pbnRWYWx1ZSogZmlyc3RQYXRjaHBvaW50ID0gcm9vdC0+YXBwZW5kTmV3PFBh
dGNocG9pbnRWYWx1ZT4ocHJvYywgSW50NjQsIE9yaWdpbigpKTsKKyAgICB7CisgICAgICAgIHVu
c2lnbmVkIGkgPSAwOworICAgICAgICBmb3IgKEdQUlJlZyByZWcgPSBDQ2FsbEhlbHBlcnM6OmZp
cnN0UmVnaXN0ZXIoKTsgcmVnIDw9IENDYWxsSGVscGVyczo6bGFzdFJlZ2lzdGVyKCk7IHJlZyA9
IENDYWxsSGVscGVyczo6bmV4dFJlZ2lzdGVyKHJlZykpIHsKKyAgICAgICAgICAgIGlmICghcmVn
cy5nZXQocmVnKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGlmIChy
ZWcgPT0gR1BSSW5mbzo6cmVnVDApCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
ICAgICBWYWx1ZSogdmFsdWUgPSBsYXRlVXNlQXJnc1tpKytdOworICAgICAgICAgICAgZmlyc3RQ
YXRjaHBvaW50LT5hcHBlbmQodmFsdWUsIFZhbHVlUmVwOjpsYXRlUmVnKHJlZykpOworICAgICAg
ICB9CisgICAgICAgIGZpcnN0UGF0Y2hwb2ludC0+YXBwZW5kKHJlZ3VsYXJVc2UsIFZhbHVlUmVw
OjpyZWcoR1BSSW5mbzo6cmVnVDApKTsKKyAgICB9CisKKyAgICBmaXJzdFBhdGNocG9pbnQtPnNl
dEdlbmVyYXRvcigKKyAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2tt
YXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAgIEFsbG93TWFjcm9TY3Jh
dGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKKyAgICAgICAgICAgIENIRUNLKHBh
cmFtc1swXS5ncHIoKSA9PSBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICAvLyBOb3RlIHRo
YXQgcmVnVDAgc2hvdWxkIGFsc28gc3RhcnQgb2ZmIGFzIDEsIHNvIHdlJ3JlIGltcGxpY2l0bHkg
c3RhcnRpbmcgb3VyIGFkZCB3aXRoIDEsIHdoaWNoIGlzIGFsc28gYW4gYXJndW1lbnQuCisgICAg
ICAgICAgICB1bnNpZ25lZCBza2lwcGVkID0gMDsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDE7IGkgPCBwYXJhbXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgICAgICBpZiAocGFy
YW1zW2ldLmdwcigpID09IHBhcmFtc1swXS5ncHIoKSkgeworICAgICAgICAgICAgICAgICAgICBz
a2lwcGVkID0gaTsKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIGppdC5hZGQ2NChwYXJhbXNbaV0uZ3ByKCksIHBhcmFtc1sw
XS5ncHIoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBDSEVDSyghIXNraXBwZWQpOwor
ICAgICAgICB9KTsKKworICAgIFBhdGNocG9pbnRWYWx1ZSogc2Vjb25kUGF0Y2hwb2ludCA9IHJv
b3QtPmFwcGVuZE5ldzxQYXRjaHBvaW50VmFsdWU+KHByb2MsIEludDY0LCBPcmlnaW4oKSk7Cisg
ICAgc2Vjb25kUGF0Y2hwb2ludC0+YXBwZW5kKGZpcnN0UGF0Y2hwb2ludCwgVmFsdWVSZXA6OnJl
ZyhHUFJJbmZvOjpyZWdUMSkpOworICAgIHNlY29uZFBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigK
KyAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9u
UGFyYW1zJiBwYXJhbXMpIHsKKyAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJV
c2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKKyAgICAgICAgICAgIENIRUNLKHBhcmFtc1sxXS5ncHIo
KSA9PSBHUFJJbmZvOjpyZWdUMSk7CisgICAgICAgICAgICBqaXQubm9wKCk7CisgICAgICAgICAg
ICBqaXQubm9wKCk7CisgICAgICAgICAgICBqaXQubW92ZShwYXJhbXNbMV0uZ3ByKCksIHBhcmFt
c1swXS5ncHIoKSk7CisgICAgICAgICAgICBqaXQubm9wKCk7CisgICAgICAgICAgICBqaXQubm9w
KCk7CisgICAgICAgIH0pOworICAgIHJvb3QtPmFwcGVuZE5ldzxDb250cm9sVmFsdWU+KHByb2Ms
IFJldHVybiwgT3JpZ2luKCksIHNlY29uZFBhdGNocG9pbnQpOworICAgIAorICAgIGF1dG8gY29k
ZSA9IGNvbXBpbGUocHJvYyk7CisgICAgQ0hFQ0soaW52b2tlPHVpbnQ2NF90PigqY29kZSkgPT0g
cmVzdWx0KTsKK30KKwogLy8gTWFrZSBzdXJlIHRoZSBjb21waWxlciBkb2VzIG5vdCB0cnkgdG8g
b3B0aW1pemUgYW55dGhpbmcgb3V0LgogTkVWRVJfSU5MSU5FIGRvdWJsZSB6ZXJvKCkKIHsKQEAg
LTEzMTY1LDYgKzEzMjQyLDggQEAgdm9pZCBydW4oY29uc3QgY2hhciogZmlsdGVyKQogICAgIFJV
Tih0ZXN0U3BpbGxEZWZTbWFsbGVyVGhhblVzZSgpKTsKICAgICBSVU4odGVzdFNwaWxsVXNlTGFy
Z2VyVGhhbkRlZigpKTsKIAorICAgIFJVTih0ZXN0TGF0ZVJlZ2lzdGVyKCkpOworCiAgICAgaWYg
KHRhc2tzLmlzRW1wdHkoKSkKICAgICAgICAgdXNhZ2UoKTsKIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkocmV2aXNpb24gMjAwNjkzKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xODQsOSArMTg0LDYgQEAgcHVibGljOgogCiAgICAgICAgIGF1dG8gcHJlT3Jk
ZXIgPSBtX2dyYXBoLmJsb2Nrc0luUHJlT3JkZXIoKTsKIAotICAgICAgICAvLyBXZSBzaG91bGQg
bm90IGNyZWF0ZSBhbnkgYWxsb2NhJ3MgYWZ0ZXIgdGhpcyBwb2ludCwgc2luY2UgdGhleSB3aWxs
IGNlYXNlIHRvCi0gICAgICAgIC8vIGJlIG1lbTJyZWcgY2FuZGlkYXRlcy4KLSAgICAgICAgCiAg
ICAgICAgIG1fY2FsbEZyYW1lID0gbV9vdXQuZnJhbWVQb2ludGVyKCk7CiAgICAgICAgIG1fdGFn
VHlwZU51bWJlciA9IG1fb3V0LmNvbnN0SW50NjQoVGFnVHlwZU51bWJlcik7CiAgICAgICAgIG1f
dGFnTWFzayA9IG1fb3V0LmNvbnN0SW50NjQoVGFnTWFzayk7CkBAIC02MTQ2LDggKzYxNDMsOCBA
QCBwcml2YXRlOgogICAgICAgICAgICAgICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiBzdHIgPSBiaXR3
aXNlX2Nhc3Q8VW5pcXVlZFN0cmluZ0ltcGwqPihzdHJpbmctPnRyeUdldFZhbHVlSW1wbCgpKTsK
ICAgICAgICAgICAgICAgICBCMzo6UGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gbV9vdXQu
cGF0Y2hwb2ludChJbnQ2NCk7CiAgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kU29t
ZVJlZ2lzdGVyKGNlbGwpOwotICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3Rh
Z01hc2ssIFZhbHVlUmVwOjpyZWcoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKSk7Ci0gICAgICAg
ICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnVHlwZU51bWJlciwgVmFsdWVSZXA6OnJl
ZyhHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0ZXIpKTsKKyAgICAgICAgICAgICAgICBwYXRj
aHBvaW50LT5hcHBlbmQobV90YWdNYXNrLCBWYWx1ZVJlcDo6bGF0ZVJlZyhHUFJJbmZvOjp0YWdN
YXNrUmVnaXN0ZXIpKTsKKyAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdU
eXBlTnVtYmVyLCBWYWx1ZVJlcDo6bGF0ZVJlZyhHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0
ZXIpKTsKICAgICAgICAgICAgICAgICBwYXRjaHBvaW50LT5jbG9iYmVyKFJlZ2lzdGVyU2V0Ojpt
YWNyb1NjcmF0Y2hSZWdpc3RlcnMoKSk7CiAKICAgICAgICAgICAgICAgICBSZWZQdHI8UGF0Y2hw
b2ludEV4Y2VwdGlvbkhhbmRsZT4gZXhjZXB0aW9uSGFuZGxlID0gcHJlcGFyZVBhdGNocG9pbnRG
b3JFeGNlcHRpb25zKHBhdGNocG9pbnQpOwpAQCAtNzYxOSw4ICs3NjE2LDggQEAgcHJpdmF0ZToK
IAogICAgICAgICBCMzo6UGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gbV9vdXQucGF0Y2hw
b2ludChJbnQ2NCk7CiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihiYXNl
KTsKLSAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnTWFzaywgVmFsdWVSZXA6OnJlZyhH
UFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKLSAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1f
dGFnVHlwZU51bWJlciwgVmFsdWVSZXA6OnJlZyhHUFJJbmZvOjp0YWdUeXBlTnVtYmVyUmVnaXN0
ZXIpKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnTWFzaywgVmFsdWVSZXA6Omxh
dGVSZWcoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKSk7CisgICAgICAgIHBhdGNocG9pbnQtPmFw
cGVuZChtX3RhZ1R5cGVOdW1iZXIsIFZhbHVlUmVwOjpsYXRlUmVnKEdQUkluZm86OnRhZ1R5cGVO
dW1iZXJSZWdpc3RlcikpOwogCiAgICAgICAgIC8vIEZJWE1FOiBJZiB0aGlzIGlzIGEgR2V0QnlJ
ZEZsdXNoLCB3ZSBtaWdodCBnZXQgc29tZSBwZXJmb3JtYW5jZSBib29zdCBpZiB3ZSBjbGFpbSB0
aGF0IGl0CiAgICAgICAgIC8vIGNsb2JiZXJzIHZvbGF0aWxlIHJlZ2lzdGVycyBsYXRlLiBJdCdz
IG5vdCBuZWNlc3NhcnkgZm9yIGNvcnJlY3RuZXNzLCB0aG91Z2gsIHNpbmNlIHRoZQpAQCAtNzk3
Miw4ICs3OTY5LDggQEAgcHJpdmF0ZToKICAgICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBv
aW50ID0gbV9vdXQucGF0Y2hwb2ludChJbnQ2NCk7CiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVu
ZFNvbWVSZWdpc3RlcihsZWZ0KTsKICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lz
dGVyKHJpZ2h0KTsKLSAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnTWFzaywgVmFsdWVS
ZXA6OnJlZyhHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsKLSAgICAgICAgcGF0Y2hwb2ludC0+
YXBwZW5kKG1fdGFnVHlwZU51bWJlciwgVmFsdWVSZXA6OnJlZyhHUFJJbmZvOjp0YWdUeXBlTnVt
YmVyUmVnaXN0ZXIpKTsKKyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnTWFzaywgVmFs
dWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6dGFnTWFza1JlZ2lzdGVyKSk7CisgICAgICAgIHBhdGNo
cG9pbnQtPmFwcGVuZChtX3RhZ1R5cGVOdW1iZXIsIFZhbHVlUmVwOjpsYXRlUmVnKEdQUkluZm86
OnRhZ1R5cGVOdW1iZXJSZWdpc3RlcikpOwogICAgICAgICBSZWZQdHI8UGF0Y2hwb2ludEV4Y2Vw
dGlvbkhhbmRsZT4gZXhjZXB0aW9uSGFuZGxlID0KICAgICAgICAgICAgIHByZXBhcmVQYXRjaHBv
aW50Rm9yRXhjZXB0aW9ucyhwYXRjaHBvaW50KTsKICAgICAgICAgcGF0Y2hwb2ludC0+bnVtR1BT
Y3JhdGNoUmVnaXN0ZXJzID0gMTsKQEAgLTgwMjgsOSArODAyNSw2IEBAIHByaXZhdGU6CiAgICAg
ewogICAgICAgICBOb2RlKiBub2RlID0gbV9ub2RlOwogICAgICAgICAKLSAgICAgICAgLy8gRklY
TUU6IE1ha2UgdGhpcyBkbyBleGNlcHRpb25zLgotICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNjg2Ci0gICAgICAgICAgICAKICAgICAgICAgTFZh
bHVlIGxlZnQgPSBsb3dKU1ZhbHVlKG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgTFZhbHVlIHJp
Z2h0ID0gbG93SlNWYWx1ZShub2RlLT5jaGlsZDIoKSk7CiAKQEAgLTgwNDAsOCArODAzNCw4IEBA
IHByaXZhdGU6CiAgICAgICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2ludCA9IG1fb3V0LnBh
dGNocG9pbnQoSW50NjQpOwogICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmRTb21lUmVnaXN0ZXIo
bGVmdCk7CiAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihyaWdodCk7Ci0g
ICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ01hc2ssIFZhbHVlUmVwOjpyZWcoR1BSSW5m
bzo6dGFnTWFza1JlZ2lzdGVyKSk7Ci0gICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ1R5
cGVOdW1iZXIsIFZhbHVlUmVwOjpyZWcoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7
CisgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ01hc2ssIFZhbHVlUmVwOjpsYXRlUmVn
KEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQo
bV90YWdUeXBlTnVtYmVyLCBWYWx1ZVJlcDo6bGF0ZVJlZyhHUFJJbmZvOjp0YWdUeXBlTnVtYmVy
UmVnaXN0ZXIpKTsKICAgICAgICAgUmVmUHRyPFBhdGNocG9pbnRFeGNlcHRpb25IYW5kbGU+IGV4
Y2VwdGlvbkhhbmRsZSA9CiAgICAgICAgICAgICBwcmVwYXJlUGF0Y2hwb2ludEZvckV4Y2VwdGlv
bnMocGF0Y2hwb2ludCk7CiAgICAgICAgIHBhdGNocG9pbnQtPm51bUdQU2NyYXRjaFJlZ2lzdGVy
cyA9IDE7CkBAIC04MDk0LDggKzgwODgsOCBAQCBwcml2YXRlOgogICAgICAgICBQYXRjaHBvaW50
VmFsdWUqIHBhdGNocG9pbnQgPSBtX291dC5wYXRjaHBvaW50KEludDY0KTsKICAgICAgICAgcGF0
Y2hwb2ludC0+YXBwZW5kU29tZVJlZ2lzdGVyKGxlZnQpOwogICAgICAgICBwYXRjaHBvaW50LT5h
cHBlbmRTb21lUmVnaXN0ZXIocmlnaHQpOwotICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQobV90
YWdNYXNrLCBWYWx1ZVJlcDo6cmVnKEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOwotICAgICAg
ICBwYXRjaHBvaW50LT5hcHBlbmQobV90YWdUeXBlTnVtYmVyLCBWYWx1ZVJlcDo6cmVnKEdQUklu
Zm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlcikpOworICAgICAgICBwYXRjaHBvaW50LT5hcHBlbmQo
bV90YWdNYXNrLCBWYWx1ZVJlcDo6bGF0ZVJlZyhHUFJJbmZvOjp0YWdNYXNrUmVnaXN0ZXIpKTsK
KyAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnVHlwZU51bWJlciwgVmFsdWVSZXA6Omxh
dGVSZWcoR1BSSW5mbzo6dGFnVHlwZU51bWJlclJlZ2lzdGVyKSk7CiAgICAgICAgIFJlZlB0cjxQ
YXRjaHBvaW50RXhjZXB0aW9uSGFuZGxlPiBleGNlcHRpb25IYW5kbGUgPQogICAgICAgICAgICAg
cHJlcGFyZVBhdGNocG9pbnRGb3JFeGNlcHRpb25zKHBhdGNocG9pbnQpOwogICAgICAgICBwYXRj
aHBvaW50LT5udW1HUFNjcmF0Y2hSZWdpc3RlcnMgPSAxOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>