<?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>122418</bug_id>
          
          <creation_ts>2013-10-06 11:50:45 -0700</creation_ts>
          <short_desc>ASSERTION FAILED: bitwise_cast&lt;WriteBarrier&lt;Unknown&gt;*&gt;(callFrame) == m_registers in jsc-layout-tests.yaml/js/script-tests/dfg-inline-arguments-capture-throw-exception.js.layout-dfg-eager-no-cjit</short_desc>
          <delta_ts>2013-10-07 07:35:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>120696</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>936816</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-06 11:50:45 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936838</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-06 13:14:10 -0700</bug_when>
    <thetext>This is pretty awesome.  With stack compression, Arguments created in the DFG will point their m_registers pointers into a different slab of stack than they would have in byte code.

Hence OSR exit must repoint any Arguments objects&apos; m_registers pointers.  It neglects to do so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936839</commentid>
    <comment_count>2</comment_count>
      <attachid>213524</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-06 13:21:14 -0700</bug_when>
    <thetext>Created attachment 213524
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936841</commentid>
    <comment_count>3</comment_count>
      <attachid>213524</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-10-06 13:35:06 -0700</bug_when>
    <thetext>Comment on attachment 213524
the patch

If DFG function A calls non-DFG function B, and B throws, what prevents B from unwinding A&apos;s stack frame. and tearing off the arguments object incorrectly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936842</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-06 13:42:45 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 213524 [details])
&gt; If DFG function A calls non-DFG function B, and B throws, what prevents B from unwinding A&apos;s stack frame. and tearing off the arguments object incorrectly?

The code in Interpreter.cpp handles this directly and this has nothing to do with this bug.

See unwindCallFrame().  It calls StackVisitor::existingArguments().  This gets the right Arguments object.  It then tears off the Arguments correctly depending on the kind of Arguments that we have.

Note that there is no such thing as non-DFG function B doing unwinding any differently than it would have, if function B was a DFG function.  Everyone calls into the same unwinding machinery and that machinery decides what to do on a per-call-frame basis and it takes into account inlining.

Also it just so happens that for non-inlined code, DFG Arguments look the same as non-DFG Arguments.  That could change and if it did, we would edit the code in unwindCallFrame().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936846</commentid>
    <comment_count>5</comment_count>
      <attachid>213526</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-06 13:51:06 -0700</bug_when>
    <thetext>Created attachment 213526
more correcter patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936924</commentid>
    <comment_count>6</comment_count>
      <attachid>213551</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-06 19:22:43 -0700</bug_when>
    <thetext>Created attachment 213551
the patch

Fixed some more bugs - this needs rereview.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936925</commentid>
    <comment_count>7</comment_count>
      <attachid>213552</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-06 19:23:56 -0700</bug_when>
    <thetext>Created attachment 213552
the patch

Fix changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936936</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-06 20:26:40 -0700</bug_when>
    <thetext>*** Bug 122436 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>936944</commentid>
    <comment_count>9</comment_count>
      <attachid>213559</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-06 20:43:28 -0700</bug_when>
    <thetext>Created attachment 213559
the patch

Rebased.  Now unskipping more tests than ever!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>937040</commentid>
    <comment_count>10</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-10-07 07:35:42 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/157035</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213524</attachid>
            <date>2013-10-06 13:21:14 -0700</date>
            <delta_ts>2013-10-06 13:51:06 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>10751</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3MDA1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBA
CisyMDEzLTEwLTA2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QVNTRVJUSU9OIEZBSUxFRDogYml0d2lzZV9jYXN0PFdyaXRlQmFycmllcjxVbmtub3duPio+KGNh
bGxGcmFtZSkgPT0gbV9yZWdpc3RlcnMgaW4ganNjLWxheW91dC10ZXN0cy55YW1sL2pzL3Njcmlw
dC10ZXN0cy9kZmctaW5saW5lLWFyZ3VtZW50cy1jYXB0dXJlLXRocm93LWV4Y2VwdGlvbi5qcy5s
YXlvdXQtZGZnLWVhZ2VyLW5vLWNqaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyMjQxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBwcmV0dHkgYXdlc29tZS4gV2l0aCBzdGFj
ayBjb21wcmVzc2lvbiwgQXJndW1lbnRzIGNyZWF0ZWQgaW4gdGhlIERGRyB3aWxsIHBvaW50Cisg
ICAgICAgIHRoZWlyIG1fcmVnaXN0ZXJzIHBvaW50ZXJzIGludG8gYSBkaWZmZXJlbnQgc2xhYiBv
ZiBzdGFjayB0aGFuIHRoZXkgd291bGQgaGF2ZSBpbiBieXRlCisgICAgICAgIGNvZGUuCisKKyAg
ICAgICAgSGVuY2UgT1NSIGV4aXQgbXVzdCByZXBvaW50IGFueSBBcmd1bWVudHMgb2JqZWN0cycg
bV9yZWdpc3RlcnMgcG9pbnRlcnMuIEl0IHByZXZpb3VzbHkKKyAgICAgICAgbmVnbGVjdGVkIHRv
IGRvIHNvLiBUaGlzIHBhdGNoIGZpeGVzIHRoYXQuCisKKyAgICAgICAgKiBkZmcvREZHT1NSRXhp
dENvbXBpbGVyQ29tbW9uLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpyZWlmeUlubGluZWRDYWxs
RnJhbWVzKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkFyZ3VtZW50cyk6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRBcmd1bWVudHNMZW5n
dGgpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogcnVudGltZS9Bcmd1
bWVudHMuaDoKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpvZmZzZXRPZk51bUFyZ3VtZW50cyk6
CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6b2Zmc2V0T2ZSZWdpc3RlcnMpOgorICAgICAgICAo
SlNDOjpBcmd1bWVudHM6Om9mZnNldE9mU2xvd0FyZ3VtZW50RGF0YSk6CisgICAgICAgIChKU0M6
OkFyZ3VtZW50czo6b2Zmc2V0T2ZPdmVycm9kZUxlbmd0aCk6CisKIDIwMTMtMTAtMDUgIEFuZHJl
YXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFBhc3MgVk0gaW5zdGVhZCBv
ZiBFeGVjU3RhdGUgdG8gU3RyaW5nT2JqZWN0IGNvbnN0cnVjdG9yLgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNw
cAkocmV2aXNpb24gMTU3MDAzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JF
eGl0Q29tcGlsZXJDb21tb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgogI2luY2x1ZGUg
IkRGR09wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgogI2luY2x1
ZGUgIk9wZXJhdGlvbnMuaCIKQEAgLTk5LDcgKzEwMCw2IEBAIHZvaWQgcmVpZnlJbmxpbmVkQ2Fs
bEZyYW1lcyhDQ2FsbEhlbHBlcnMKICAgICAgICAgCiAgICAgICAgIHZvaWQqIGp1bXBUYXJnZXQg
PSBjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNzKCk7CiAK
LSNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBHUFJSZWcgY2FsbGVyRnJhbWVHUFI7CiAgICAg
ICAgIGlmIChpbmxpbmVDYWxsRnJhbWUtPmNhbGxlci5pbmxpbmVDYWxsRnJhbWUpIHsKICAgICAg
ICAgICAgIGppdC5hZGRQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoaW5saW5lQ2Fs
bEZyYW1lLT5jYWxsZXIuaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCAqIHNpemVvZihFbmNv
ZGVkSlNWYWx1ZSkpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDMp
OwpAQCAtMTA3LDYgKzEwNyw3IEBAIHZvaWQgcmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyhDQ2FsbEhl
bHBlcnMKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBjYWxsZXJGcmFtZUdQUiA9IEdQUklu
Zm86OmNhbGxGcmFtZVJlZ2lzdGVyOwogICAgICAgICAKKyNpZiBVU0UoSlNWQUxVRTY0KQogICAg
ICAgICBqaXQuc3RvcmVQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGJhc2VsaW5l
Q29kZUJsb2NrKSwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKChWaXJ0dWFsUmVnaXN0ZXIp
KGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBKU1N0YWNrOjpDb2RlQmxvY2spKSk7CiAg
ICAgICAgIGlmICghaW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsKQogICAgICAgICAgICAg
aml0LnN0b3JlNjQoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2Rl
KEpTVmFsdWUoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWVDb25zdGFudCgpLT5zY29wZSgpKSkpLCBB
c3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZy
YW1lLT5zdGFja09mZnNldCArIEpTU3RhY2s6OlNjb3BlQ2hhaW4pKSk7CkBAIC0xMTcsMTQgKzEx
OCwxMSBAQCB2b2lkIHJlaWZ5SW5saW5lZENhbGxGcmFtZXMoQ0NhbGxIZWxwZXJzCiAgICAgICAg
IGppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGlubGluZUNhbGxGcmFt
ZS0+YXJndW1lbnRzLnNpemUoKSksIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcigoVmlydHVh
bFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgSlNTdGFjazo6QXJndW1l
bnRDb3VudCkpKTsKICAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNhbGwp
CiAgICAgICAgICAgICBqaXQuc3RvcmU2NChBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW02NChK
U1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZUNvbnN0YW50KCkp
KSksIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVD
YWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgSlNTdGFjazo6Q2FsbGVlKSkpOwotI2Vsc2UgLy8gVVNF
KEpTVkFMVUU2NCkgLy8gc28gdGhpcyBpcyB0aGUgMzItYml0IHBhcnQKLSAgICAgICAgR1BSUmVn
IGNhbGxlckZyYW1lR1BSOwotICAgICAgICBpZiAoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZXIuaW5s
aW5lQ2FsbEZyYW1lKSB7Ci0gICAgICAgICAgICBqaXQuYWRkMzIoQXNzZW1ibHlIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZXIuaW5saW5lQ2FsbEZyYW1lLT5zdGFj
a09mZnNldCAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdp
c3RlciwgR1BSSW5mbzo6cmVnVDMpOwotICAgICAgICAgICAgY2FsbGVyRnJhbWVHUFIgPSBHUFJJ
bmZvOjpyZWdUMzsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBjYWxsZXJGcmFtZUdQUiA9
IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyOwogICAgICAgICAKKyAgICAgICAgLy8gTGVhdmUg
dGhlIGNhcHR1cmVkIGFyZ3VtZW50cyBpbiByZWdUMy4KKyAgICAgICAgaWYgKGJhc2VsaW5lQ29k
ZUJsb2NrLT51c2VzQXJndW1lbnRzKCkpCisgICAgICAgICAgICBqaXQubG9hZFB0cihBc3NlbWJs
eUhlbHBlcnM6OmFkZHJlc3NGb3IoVmlydHVhbFJlZ2lzdGVyKGlubGluZUNhbGxGcmFtZS0+c3Rh
Y2tPZmZzZXQgKyB1bm1vZGlmaWVkQXJndW1lbnRzUmVnaXN0ZXIoYmFzZWxpbmVDb2RlQmxvY2st
PmFyZ3VtZW50c1JlZ2lzdGVyKCkpLm9mZnNldCgpKSksIEdQUkluZm86OnJlZ1QzKTsKKyNlbHNl
IC8vIFVTRShKU1ZBTFVFNjQpIC8vIHNvIHRoaXMgaXMgdGhlIDMyLWJpdCBwYXJ0CiAgICAgICAg
IGppdC5zdG9yZVB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoYmFzZWxpbmVDb2Rl
QmxvY2spLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5s
aW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIEpTU3RhY2s6OkNvZGVCbG9jaykpKTsKICAgICAg
ICAgaml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6Q2Vs
bFRhZyksIEFzc2VtYmx5SGVscGVyczo6dGFnRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNh
bGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBKU1N0YWNrOjpTY29wZUNoYWluKSkpOwogICAgICAgICBp
ZiAoIWlubGluZUNhbGxGcmFtZS0+aXNDbG9zdXJlQ2FsbCkKQEAgLTEzOSw3ICsxMzcsMTggQEAg
dm9pZCByZWlmeUlubGluZWRDYWxsRnJhbWVzKENDYWxsSGVscGVycwogICAgICAgICBqaXQuc3Rv
cmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgQXNz
ZW1ibHlIZWxwZXJzOjp0YWdGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5z
dGFja09mZnNldCArIEpTU3RhY2s6OkNhbGxlZSkpKTsKICAgICAgICAgaWYgKCFpbmxpbmVDYWxs
RnJhbWUtPmlzQ2xvc3VyZUNhbGwpCiAgICAgICAgICAgICBqaXQuc3RvcmVQdHIoQXNzZW1ibHlI
ZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlQ29uc3RhbnQoKSks
IEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxs
RnJhbWUtPnN0YWNrT2Zmc2V0ICsgSlNTdGFjazo6Q2FsbGVlKSkpOworCisgICAgICAgIC8vIExl
YXZlIHRoZSBjYXB0dXJlZCBhcmd1bWVudHMgaW4gcmVnVDMuCisgICAgICAgIGlmIChiYXNlbGlu
ZUNvZGVCbG9jay0+dXNlc0FyZ3VtZW50cygpKQorICAgICAgICAgICAgaml0LmxvYWRQdHIoQXNz
ZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUt
PnN0YWNrT2Zmc2V0ICsgdW5tb2RpZmllZEFyZ3VtZW50c1JlZ2lzdGVyKGJhc2VsaW5lQ29kZUJs
b2NrLT5hcmd1bWVudHNSZWdpc3RlcigpKS5vZmZzZXQoKSkpLCBHUFJJbmZvOjpyZWdUMyk7CiAj
ZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkgLy8gZW5kaW5nIHRoZSAjZWxzZSBwYXJ0LCBzbyBkaXJl
Y3RseSBhYm92ZSBpcyB0aGUgMzItYml0IHBhcnQKKyAgICAgICAgCisgICAgICAgIGlmIChiYXNl
bGluZUNvZGVCbG9jay0+dXNlc0FyZ3VtZW50cygpKSB7CisgICAgICAgICAgICBBc3NlbWJseUhl
bHBlcnM6Okp1bXAgbm9Bcmd1bWVudHMgPSBqaXQuYnJhbmNoVGVzdFB0cihBc3NlbWJseUhlbHBl
cnM6Olplcm8sIEdQUkluZm86OnJlZ1QzKTsKKyAgICAgICAgICAgIGppdC5hZGRQdHIoQXNzZW1i
bHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCAqIHNp
emVvZihFbmNvZGVkSlNWYWx1ZSkpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5m
bzo6cmVnVDApOworICAgICAgICAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1QwLCBBc3Nl
bWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDMsIEFyZ3VtZW50czo6b2Zmc2V0T2ZS
ZWdpc3RlcnMoKSkpOworICAgICAgICAgICAgbm9Bcmd1bWVudHMubGluaygmaml0KTsKKyAgICAg
ICAgfQogICAgIH0KIAogI2lmIFVTRShKU1ZBTFVFNjQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9uIDE1NzAw
MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxNDUsMTggKzMxNDUsMTggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJ
VDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgICAgIFVuY291bnRhYmxlLCBKU1Zh
bHVlU291cmNlKCksIDAsCiAgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoMzIoCiAgICAgICAg
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5UmVnLAot
ICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBPQkpF
Q1RfT0ZGU0VUT0YoQXJndW1lbnRzLCBtX251bUFyZ3VtZW50cykpKSk7CisgICAgICAgICAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIEFyZ3VtZW50czo6b2Zmc2V0
T2ZOdW1Bcmd1bWVudHMoKSkpKTsKICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2soCiAgICAg
ICAgICAgICAgICAgVW5jb3VudGFibGUsIEpTVmFsdWVTb3VyY2UoKSwgMCwKICAgICAgICAgICAg
ICAgICBtX2ppdC5icmFuY2hUZXN0UHRyKAogICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Tm9uWmVybywKICAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MoCi0gICAgICAgICAgICAgICAgICAgICAgICBiYXNlUmVnLCBPQkpFQ1RfT0ZGU0VUT0YoQXJn
dW1lbnRzLCBtX3Nsb3dBcmd1bWVudERhdGEpKSkpOworICAgICAgICAgICAgICAgICAgICAgICAg
YmFzZVJlZywgQXJndW1lbnRzOjpvZmZzZXRPZlNsb3dBcmd1bWVudERhdGEoKSkpKTsKICAgICAK
ICAgICAgICAgICAgIG1faml0Lm1vdmUocHJvcGVydHlSZWcsIHNjcmF0Y2gyUmVnKTsKICAgICAg
ICAgICAgIG1faml0LnNpZ25FeHRlbmQzMlRvUHRyKHNjcmF0Y2gyUmVnLCBzY3JhdGNoMlJlZyk7
CiAgICAgICAgICAgICBtX2ppdC5sb2FkUHRyKAotICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKGJhc2VSZWcsIE9CSkVDVF9PRkZTRVRPRihBcmd1bWVudHMsIG1fcmVnaXN0
ZXJzKSksCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywg
QXJndW1lbnRzOjpvZmZzZXRPZlJlZ2lzdGVycygpKSwKICAgICAgICAgICAgICAgICBzY3JhdGNo
UmVnKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9qaXQuc3RvcmU2NCgKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZp
c2lvbiAxNTcwMDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDI1MSwxOCArNDI1MSwxOCBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkFyCiAgICAgICAgIFVuY291bnRhYmxlLCBKU1Zh
bHVlU291cmNlKCksIDAsCiAgICAgICAgIG1faml0LmJyYW5jaDMyKAogICAgICAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsCi0gICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBPQkpFQ1RfT0ZGU0VUT0YoQXJndW1lbnRzLCBt
X251bUFyZ3VtZW50cykpKSk7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhi
YXNlUmVnLCBBcmd1bWVudHM6Om9mZnNldE9mTnVtQXJndW1lbnRzKCkpKSk7CiAgICAgc3BlY3Vs
YXRpb25DaGVjaygKICAgICAgICAgVW5jb3VudGFibGUsIEpTVmFsdWVTb3VyY2UoKSwgMCwKICAg
ICAgICAgbV9qaXQuYnJhbmNoVGVzdFB0cigKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpO
b25aZXJvLAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoCi0gICAgICAgICAg
ICAgICAgYmFzZVJlZywgT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9zbG93QXJndW1lbnRE
YXRhKSkpKTsKKyAgICAgICAgICAgICAgICBiYXNlUmVnLCBBcmd1bWVudHM6Om9mZnNldE9mU2xv
d0FyZ3VtZW50RGF0YSgpKSkpOwogICAgIAogICAgIG1faml0Lm1vdmUocHJvcGVydHlSZWcsIHJl
c3VsdFJlZyk7CiAgICAgbV9qaXQuc2lnbkV4dGVuZDMyVG9QdHIocmVzdWx0UmVnLCByZXN1bHRS
ZWcpOwogICAgIG1faml0LmxvYWRQdHIoCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNz
KGJhc2VSZWcsIE9CSkVDVF9PRkZTRVRPRihBcmd1bWVudHMsIG1fcmVnaXN0ZXJzKSksCisgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIEFyZ3VtZW50czo6b2Zmc2V0T2ZS
ZWdpc3RlcnMoKSksCiAgICAgICAgIHNjcmF0Y2hSZWcpOwogICAgIAogI2lmIFVTRShKU1ZBTFVF
MzJfNjQpCkBAIC00MzA2LDEwICs0MzA2LDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVHZXRBcmd1bWVudHMKICAgICAgICAgVW5jb3VudGFibGUsIEpTVmFsdWVTb3VyY2UoKSwgMCwK
ICAgICAgICAgbV9qaXQuYnJhbmNoVGVzdDgoCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
Tm9uWmVybywKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIE9C
SkVDVF9PRkZTRVRPRihBcmd1bWVudHMsIG1fb3ZlcnJvZGVMZW5ndGgpKSkpOworICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgQXJndW1lbnRzOjpvZmZzZXRPZk92
ZXJyb2RlTGVuZ3RoKCkpKSk7CiAgICAgCiAgICAgbV9qaXQubG9hZDMyKAotICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBPQkpFQ1RfT0ZGU0VUT0YoQXJndW1lbnRzLCBt
X251bUFyZ3VtZW50cykpLAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVn
LCBBcmd1bWVudHM6Om9mZnNldE9mTnVtQXJndW1lbnRzKCkpLAogICAgICAgICByZXN1bHRSZWcp
OwogICAgIGludDMyUmVzdWx0KHJlc3VsdFJlZywgbm9kZSk7CiB9CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAkocmV2aXNpb24gMTU3MDAzKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM3LDcgKzM3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEFyZ3VtZW50cyA6IHB1Ymxp
YyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAgICAgZnJpZW5kIGNsYXNzIEpJVDsKLSAgICBmcmll
bmQgY2xhc3MgREZHOjpTcGVjdWxhdGl2ZUpJVDsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEpTRGVz
dHJ1Y3RpYmxlT2JqZWN0IEJhc2U7CiAKQEAgLTg3LDcgKzg2LDEyIEBAIHB1YmxpYzoKICAgICB7
IAogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJv
dG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7IAog
ICAgIH0KLSAgICAgICAgCisgICAgCisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZk51bUFy
Z3VtZW50cygpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihBcmd1bWVudHMsIG1fbnVtQXJndW1l
bnRzKTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZSZWdpc3RlcnMoKSB7IHJldHVy
biBPQkpFQ1RfT0ZGU0VUT0YoQXJndW1lbnRzLCBtX3JlZ2lzdGVycyk7IH0KKyAgICBzdGF0aWMg
cHRyZGlmZl90IG9mZnNldE9mU2xvd0FyZ3VtZW50RGF0YSgpIHsgcmV0dXJuIE9CSkVDVF9PRkZT
RVRPRihBcmd1bWVudHMsIG1fc2xvd0FyZ3VtZW50RGF0YSk7IH0KKyAgICBzdGF0aWMgcHRyZGlm
Zl90IG9mZnNldE9mT3ZlcnJvZGVMZW5ndGgoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoQXJn
dW1lbnRzLCBtX292ZXJyb2RlTGVuZ3RoKTsgfQorICAgIAogcHJvdGVjdGVkOgogICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCB8IEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJ
c05vdFplcm8gfCBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlO
YW1lcyB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKIAo=
</data>
<flag name="review"
          id="235894"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213526</attachid>
            <date>2013-10-06 13:51:06 -0700</date>
            <delta_ts>2013-10-06 19:22:43 -0700</delta_ts>
            <desc>more correcter patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>13621</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3MDA1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBA
CisyMDEzLTEwLTA2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QVNTRVJUSU9OIEZBSUxFRDogYml0d2lzZV9jYXN0PFdyaXRlQmFycmllcjxVbmtub3duPio+KGNh
bGxGcmFtZSkgPT0gbV9yZWdpc3RlcnMgaW4ganNjLWxheW91dC10ZXN0cy55YW1sL2pzL3Njcmlw
dC10ZXN0cy9kZmctaW5saW5lLWFyZ3VtZW50cy1jYXB0dXJlLXRocm93LWV4Y2VwdGlvbi5qcy5s
YXlvdXQtZGZnLWVhZ2VyLW5vLWNqaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyMjQxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgaXMgcHJldHR5IGF3ZXNvbWUuIFdpdGggc3RhY2sgY29tcHJl
c3Npb24sIEFyZ3VtZW50cyBjcmVhdGVkIGluIHRoZSBERkcgd2lsbCBwb2ludAorICAgICAgICB0
aGVpciBtX3JlZ2lzdGVycyBwb2ludGVycyBpbnRvIGEgZGlmZmVyZW50IHNsYWIgb2Ygc3RhY2sg
dGhhbiB0aGV5IHdvdWxkIGhhdmUgaW4gYnl0ZQorICAgICAgICBjb2RlLgorCisgICAgICAgIEhl
bmNlIE9TUiBleGl0IG11c3QgcmVwb2ludCBhbnkgQXJndW1lbnRzIG9iamVjdHMnIG1fcmVnaXN0
ZXJzIHBvaW50ZXJzLiBJdCBwcmV2aW91c2x5CisgICAgICAgIG5lZ2xlY3RlZCB0byBkbyBzby4g
VGhpcyBwYXRjaCBmaXhlcyB0aGF0LgorICAgICAgICAKKyAgICAgICAgRml4aW5nIHRoaXMgdW52
ZWlsZWQgYW5vdGhlciBidWc6IHRoZSBzdGFjayByZXZlcnNhbCBicm9rZSB0aGUgcmVpZmljYXRp
b24gb2YgaW5saW5lZAorICAgICAgICBwaGFudG9tIGFyZ3VtZW50cy4KKyAgICAgICAgCisgICAg
ICAgIEFsbCBvZiB0aGlzIGdldHMgdGVzdCBjb3ZlcmFnZSBmcm9tIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA2OTYuCisgICAgICAgIFJpZ2h0IG5vdyB0aGlzIGhh
cyBubyB0ZXN0IGNvdmVyYWdlLgorICAgICAgICAKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENv
bXBpbGVyMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6Ok9TUkV4aXRDb21waWxlcjo6Y29t
cGlsZUV4aXQpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6T1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdCk6CisgICAgICAgICog
ZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6cmVp
ZnlJbmxpbmVkQ2FsbEZyYW1lcyk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25B
cmd1bWVudHMpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0
QXJndW1lbnRzTGVuZ3RoKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAq
IHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6b2Zmc2V0T2ZO
dW1Bcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6Om9mZnNldE9mUmVnaXN0ZXJz
KToKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpvZmZzZXRPZlNsb3dBcmd1bWVudERhdGEpOgor
ICAgICAgICAoSlNDOjpBcmd1bWVudHM6Om9mZnNldE9mT3ZlcnJvZGVMZW5ndGgpOgorCiAyMDEz
LTEwLTA1ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXNz
IFZNIGluc3RlYWQgb2YgRXhlY1N0YXRlIHRvIFN0cmluZ09iamVjdCBjb25zdHJ1Y3Rvci4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyMzJfNjQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBp
bGVyMzJfNjQuY3BwCShyZXZpc2lvbiAxNTcwMDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUzLDYg
KzM1MywxMiBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAgICAg
ICAgICAgICAKICAgICAgICAgY2FzZSBBcmd1bWVudHNUaGF0V2VyZU5vdENyZWF0ZWQ6CiAgICAg
ICAgICAgICBoYXZlQXJndW1lbnRzID0gdHJ1ZTsKKyAgICAgICAgICAgIG1faml0LnN0b3JlMzIo
CisgICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZSgp
LnRhZygpKSwKKyAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OnRhZ0ZvcihvcGVyYW5k
KSk7CisgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKAorICAgICAgICAgICAgICAgIEFzc2VtYmx5
SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWUoKS5wYXlsb2FkKCkpLAorICAgICAgICAgICAg
ICAgIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihvcGVyYW5kKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIAogICAgICAgICBkZWZhdWx0OgpAQCAtNDE5LDcgKzQyNSw3IEBA
IHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdChjb25zdCAKICAgICAgICAgICAgIGZv
ciAoSW5saW5lQ2FsbEZyYW1lKiBjdXJyZW50ID0gZXhpdC5tX2NvZGVPcmlnaW4uaW5saW5lQ2Fs
bEZyYW1lOwogICAgICAgICAgICAgICAgICBjdXJyZW50OwogICAgICAgICAgICAgICAgICBjdXJy
ZW50ID0gY3VycmVudC0+Y2FsbGVyLmlubGluZUNhbGxGcmFtZSkgewotICAgICAgICAgICAgICAg
IGlmIChjdXJyZW50LT5zdGFja09mZnNldCA8PSBvcGVyYW5kKSB7CisgICAgICAgICAgICAgICAg
aWYgKGN1cnJlbnQtPnN0YWNrT2Zmc2V0ID49IG9wZXJhbmQpIHsKICAgICAgICAgICAgICAgICAg
ICAgaW5saW5lQ2FsbEZyYW1lID0gY3VycmVudDsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFeGl0Q29tcGlsZXI2NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAJKHJldmlzaW9uIDE1NzAwMykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyNjQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMTcsNiArMzE3LDExIEBAIHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhp
dChjb25zdCAKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEFyZ3VtZW50c1RoYXRXZXJlTm90
Q3JlYXRlZDoKICAgICAgICAgICAgIGhhdmVBcmd1bWVudHMgPSB0cnVlOworICAgICAgICAgICAg
Ly8gV2UgY2FuJ3QgcmVzdG9yZSB0aGlzIHlldCBidXQgd2UgY2FuIG1ha2Ugc3VyZSB0aGF0IHRo
ZSBzdGFjayBhcHBlYXJzCisgICAgICAgICAgICAvLyBzYW5lLgorICAgICAgICAgICAgbV9qaXQu
c3RvcmU2NCgKKyAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW02NChK
U1ZhbHVlOjplbmNvZGUoSlNWYWx1ZSgpKSksCisgICAgICAgICAgICAgICAgQXNzZW1ibHlIZWxw
ZXJzOjphZGRyZXNzRm9yKG9wZXJhbmQpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgCiAgICAgICAgIGRlZmF1bHQ6CkBAIC0zODMsNyArMzg4LDcgQEAgdm9pZCBPU1JFeGl0Q29t
cGlsZXI6OmNvbXBpbGVFeGl0KGNvbnN0IAogICAgICAgICAgICAgZm9yIChJbmxpbmVDYWxsRnJh
bWUqIGN1cnJlbnQgPSBleGl0Lm1fY29kZU9yaWdpbi5pbmxpbmVDYWxsRnJhbWU7CiAgICAgICAg
ICAgICAgICAgIGN1cnJlbnQ7CiAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT5j
YWxsZXIuaW5saW5lQ2FsbEZyYW1lKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQtPnN0
YWNrT2Zmc2V0IDw9IG9wZXJhbmQpIHsKKyAgICAgICAgICAgICAgICBpZiAoY3VycmVudC0+c3Rh
Y2tPZmZzZXQgPj0gb3BlcmFuZCkgewogICAgICAgICAgICAgICAgICAgICBpbmxpbmVDYWxsRnJh
bWUgPSBjdXJyZW50OwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNv
bW1vbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JF
eGl0Q29tcGlsZXJDb21tb24uY3BwCShyZXZpc2lvbiAxNTcwMDMpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShERkdfSklUKQogCisjaW5jbHVkZSAiQXJn
dW1lbnRzLmgiCiAjaW5jbHVkZSAiREZHT3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTQ0pTVmFs
dWVJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT3BlcmF0aW9ucy5oIgpAQCAtOTksNyArMTAwLDYgQEAg
dm9pZCByZWlmeUlubGluZWRDYWxsRnJhbWVzKENDYWxsSGVscGVycwogICAgICAgICAKICAgICAg
ICAgdm9pZCoganVtcFRhcmdldCA9IGNhbGxMaW5rSW5mby5jYWxsUmV0dXJuTG9jYXRpb24uZXhl
Y3V0YWJsZUFkZHJlc3MoKTsKIAotI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIEdQUlJlZyBj
YWxsZXJGcmFtZUdQUjsKICAgICAgICAgaWYgKGlubGluZUNhbGxGcmFtZS0+Y2FsbGVyLmlubGlu
ZUNhbGxGcmFtZSkgewogICAgICAgICAgICAgaml0LmFkZFB0cihBc3NlbWJseUhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihpbmxpbmVDYWxsRnJhbWUtPmNhbGxlci5pbmxpbmVDYWxsRnJhbWUtPnN0YWNr
T2Zmc2V0ICogc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSksIEdQUkluZm86OmNhbGxGcmFtZVJlZ2lz
dGVyLCBHUFJJbmZvOjpyZWdUMyk7CkBAIC0xMDcsNiArMTA3LDcgQEAgdm9pZCByZWlmeUlubGlu
ZWRDYWxsRnJhbWVzKENDYWxsSGVscGVycwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGNh
bGxlckZyYW1lR1BSID0gR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXI7CiAgICAgICAgIAorI2lm
IFVTRShKU1ZBTFVFNjQpCiAgICAgICAgIGppdC5zdG9yZVB0cihBc3NlbWJseUhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIoYmFzZWxpbmVDb2RlQmxvY2spLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NG
b3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIEpTU3Rh
Y2s6OkNvZGVCbG9jaykpKTsKICAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3Vy
ZUNhbGwpCiAgICAgICAgICAgICBqaXQuc3RvcmU2NChBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJ
bW02NChKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZUNvbnN0
YW50KCktPnNjb3BlKCkpKSksIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcigoVmlydHVhbFJl
Z2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgSlNTdGFjazo6U2NvcGVDaGFp
bikpKTsKQEAgLTExNywxNCArMTE4LDExIEBAIHZvaWQgcmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyhD
Q2FsbEhlbHBlcnMKICAgICAgICAgaml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVk
SW1tMzIoaW5saW5lQ2FsbEZyYW1lLT5hcmd1bWVudHMuc2l6ZSgpKSwgQXNzZW1ibHlIZWxwZXJz
OjpwYXlsb2FkRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZz
ZXQgKyBKU1N0YWNrOjpBcmd1bWVudENvdW50KSkpOwogICAgICAgICBpZiAoIWlubGluZUNhbGxG
cmFtZS0+aXNDbG9zdXJlQ2FsbCkKICAgICAgICAgICAgIGppdC5zdG9yZTY0KEFzc2VtYmx5SGVs
cGVyczo6VHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKGlubGluZUNhbGxGcmFt
ZS0+Y2FsbGVlQ29uc3RhbnQoKSkpKSwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKChWaXJ0
dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBKU1N0YWNrOjpDYWxs
ZWUpKSk7Ci0jZWxzZSAvLyBVU0UoSlNWQUxVRTY0KSAvLyBzbyB0aGlzIGlzIHRoZSAzMi1iaXQg
cGFydAotICAgICAgICBHUFJSZWcgY2FsbGVyRnJhbWVHUFI7Ci0gICAgICAgIGlmIChpbmxpbmVD
YWxsRnJhbWUtPmNhbGxlci5pbmxpbmVDYWxsRnJhbWUpIHsKLSAgICAgICAgICAgIGppdC5hZGQz
MihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihpbmxpbmVDYWxsRnJhbWUtPmNhbGxlci5p
bmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICogc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSksIEdQ
UkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMyk7Ci0gICAgICAgICAgICBj
YWxsZXJGcmFtZUdQUiA9IEdQUkluZm86OnJlZ1QzOwotICAgICAgICB9IGVsc2UKLSAgICAgICAg
ICAgIGNhbGxlckZyYW1lR1BSID0gR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXI7CiAgICAgICAg
IAorICAgICAgICAvLyBMZWF2ZSB0aGUgY2FwdHVyZWQgYXJndW1lbnRzIGluIHJlZ1QzLgorICAg
ICAgICBpZiAoYmFzZWxpbmVDb2RlQmxvY2stPnVzZXNBcmd1bWVudHMoKSkKKyAgICAgICAgICAg
IGppdC5sb2FkUHRyKEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcihWaXJ0dWFsUmVnaXN0ZXIo
aW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIHVubW9kaWZpZWRBcmd1bWVudHNSZWdpc3Rl
cihiYXNlbGluZUNvZGVCbG9jay0+YXJndW1lbnRzUmVnaXN0ZXIoKSkub2Zmc2V0KCkpKSwgR1BS
SW5mbzo6cmVnVDMpOworI2Vsc2UgLy8gVVNFKEpTVkFMVUU2NCkgLy8gc28gdGhpcyBpcyB0aGUg
MzItYml0IHBhcnQKICAgICAgICAgaml0LnN0b3JlUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3Rl
ZEltbVB0cihiYXNlbGluZUNvZGVCbG9jayksIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0Zvcigo
VmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgSlNTdGFjazo6
Q29kZUJsb2NrKSkpOwogICAgICAgICBqaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0
ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFnKSwgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3IoKFZpcnR1
YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIEpTU3RhY2s6OlNjb3Bl
Q2hhaW4pKSk7CiAgICAgICAgIGlmICghaW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsKQpA
QCAtMTM5LDcgKzEzNywxOCBAQCB2b2lkIHJlaWZ5SW5saW5lZENhbGxGcmFtZXMoQ0NhbGxIZWxw
ZXJzCiAgICAgICAgIGppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpT
VmFsdWU6OkNlbGxUYWcpLCBBc3NlbWJseUhlbHBlcnM6OnRhZ0ZvcigoVmlydHVhbFJlZ2lzdGVy
KShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgSlNTdGFjazo6Q2FsbGVlKSkpOwogICAg
ICAgICBpZiAoIWlubGluZUNhbGxGcmFtZS0+aXNDbG9zdXJlQ2FsbCkKICAgICAgICAgICAgIGpp
dC5zdG9yZVB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoaW5saW5lQ2FsbEZyYW1l
LT5jYWxsZWVDb25zdGFudCgpKSwgQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKChWaXJ0dWFs
UmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBKU1N0YWNrOjpDYWxsZWUp
KSk7CisKKyAgICAgICAgLy8gTGVhdmUgdGhlIGNhcHR1cmVkIGFyZ3VtZW50cyBpbiByZWdUMy4K
KyAgICAgICAgaWYgKGJhc2VsaW5lQ29kZUJsb2NrLT51c2VzQXJndW1lbnRzKCkpCisgICAgICAg
ICAgICBqaXQubG9hZFB0cihBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3IoVmlydHVhbFJlZ2lz
dGVyKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyB1bm1vZGlmaWVkQXJndW1lbnRzUmVn
aXN0ZXIoYmFzZWxpbmVDb2RlQmxvY2stPmFyZ3VtZW50c1JlZ2lzdGVyKCkpLm9mZnNldCgpKSks
IEdQUkluZm86OnJlZ1QzKTsKICNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KSAvLyBlbmRpbmcgdGhl
ICNlbHNlIHBhcnQsIHNvIGRpcmVjdGx5IGFib3ZlIGlzIHRoZSAzMi1iaXQgcGFydAorICAgICAg
ICAKKyAgICAgICAgaWYgKGJhc2VsaW5lQ29kZUJsb2NrLT51c2VzQXJndW1lbnRzKCkpIHsKKyAg
ICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6SnVtcCBub0FyZ3VtZW50cyA9IGppdC5icmFuY2hU
ZXN0UHRyKEFzc2VtYmx5SGVscGVyczo6WmVybywgR1BSSW5mbzo6cmVnVDMpOworICAgICAgICAg
ICAgaml0LmFkZFB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihpbmxpbmVDYWxsRnJh
bWUtPnN0YWNrT2Zmc2V0ICogc2l6ZW9mKEVuY29kZWRKU1ZhbHVlKSksIEdQUkluZm86OmNhbGxG
cmFtZVJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMCk7CisgICAgICAgICAgICBqaXQuc3RvcmVQdHIo
R1BSSW5mbzo6cmVnVDAsIEFzc2VtYmx5SGVscGVyczo6QWRkcmVzcyhHUFJJbmZvOjpyZWdUMywg
QXJndW1lbnRzOjpvZmZzZXRPZlJlZ2lzdGVycygpKSk7CisgICAgICAgICAgICBub0FyZ3VtZW50
cy5saW5rKCZqaXQpOworICAgICAgICB9CiAgICAgfQogCiAjaWYgVVNFKEpTVkFMVUU2NCkKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcAkocmV2aXNpb24gMTU3MDAzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzE0NSwxOCArMzE0NSwxOCBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAg
ICAgVW5jb3VudGFibGUsIEpTVmFsdWVTb3VyY2UoKSwgMCwKICAgICAgICAgICAgICAgICBtX2pp
dC5icmFuY2gzMigKICAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JF
cXVhbCwgcHJvcGVydHlSZWcsCi0gICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKGJhc2VSZWcsIE9CSkVDVF9PRkZTRVRPRihBcmd1bWVudHMsIG1fbnVtQXJndW1lbnRz
KSkpKTsKKyAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJl
ZywgQXJndW1lbnRzOjpvZmZzZXRPZk51bUFyZ3VtZW50cygpKSkpOwogICAgICAgICAgICAgc3Bl
Y3VsYXRpb25DaGVjaygKICAgICAgICAgICAgICAgICBVbmNvdW50YWJsZSwgSlNWYWx1ZVNvdXJj
ZSgpLCAwLAogICAgICAgICAgICAgICAgIG1faml0LmJyYW5jaFRlc3RQdHIoCiAgICAgICAgICAg
ICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLAogICAgICAgICAgICAgICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6QWRkcmVzcygKLSAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VSZWcs
IE9CSkVDVF9PRkZTRVRPRihBcmd1bWVudHMsIG1fc2xvd0FyZ3VtZW50RGF0YSkpKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBiYXNlUmVnLCBBcmd1bWVudHM6Om9mZnNldE9mU2xvd0FyZ3Vt
ZW50RGF0YSgpKSkpOwogICAgIAogICAgICAgICAgICAgbV9qaXQubW92ZShwcm9wZXJ0eVJlZywg
c2NyYXRjaDJSZWcpOwogICAgICAgICAgICAgbV9qaXQuc2lnbkV4dGVuZDMyVG9QdHIoc2NyYXRj
aDJSZWcsIHNjcmF0Y2gyUmVnKTsKICAgICAgICAgICAgIG1faml0LmxvYWRQdHIoCi0gICAgICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgT0JKRUNUX09GRlNFVE9G
KEFyZ3VtZW50cywgbV9yZWdpc3RlcnMpKSwKKyAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhiYXNlUmVnLCBBcmd1bWVudHM6Om9mZnNldE9mUmVnaXN0ZXJzKCkpLAogICAg
ICAgICAgICAgICAgIHNjcmF0Y2hSZWcpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBtX2pp
dC5zdG9yZTY0KApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHAJKHJldmlzaW9uIDE1NzAwMykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjUxLDE4ICs0
MjUxLDE4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbE9uQXIKICAgICAg
ICAgVW5jb3VudGFibGUsIEpTVmFsdWVTb3VyY2UoKSwgMCwKICAgICAgICAgbV9qaXQuYnJhbmNo
MzIoCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJl
ZywKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIE9CSkVDVF9P
RkZTRVRPRihBcmd1bWVudHMsIG1fbnVtQXJndW1lbnRzKSkpKTsKKyAgICAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIEFyZ3VtZW50czo6b2Zmc2V0T2ZOdW1Bcmd1bWVu
dHMoKSkpKTsKICAgICBzcGVjdWxhdGlvbkNoZWNrKAogICAgICAgICBVbmNvdW50YWJsZSwgSlNW
YWx1ZVNvdXJjZSgpLCAwLAogICAgICAgICBtX2ppdC5icmFuY2hUZXN0UHRyKAogICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sCiAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
QWRkcmVzcygKLSAgICAgICAgICAgICAgICBiYXNlUmVnLCBPQkpFQ1RfT0ZGU0VUT0YoQXJndW1l
bnRzLCBtX3Nsb3dBcmd1bWVudERhdGEpKSkpOworICAgICAgICAgICAgICAgIGJhc2VSZWcsIEFy
Z3VtZW50czo6b2Zmc2V0T2ZTbG93QXJndW1lbnREYXRhKCkpKSk7CiAgICAgCiAgICAgbV9qaXQu
bW92ZShwcm9wZXJ0eVJlZywgcmVzdWx0UmVnKTsKICAgICBtX2ppdC5zaWduRXh0ZW5kMzJUb1B0
cihyZXN1bHRSZWcsIHJlc3VsdFJlZyk7CiAgICAgbV9qaXQubG9hZFB0cigKLSAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywg
bV9yZWdpc3RlcnMpKSwKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywg
QXJndW1lbnRzOjpvZmZzZXRPZlJlZ2lzdGVycygpKSwKICAgICAgICAgc2NyYXRjaFJlZyk7CiAg
ICAgCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKQEAgLTQzMDYsMTAgKzQzMDYsMTAgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEFyZ3VtZW50cwogICAgICAgICBVbmNvdW50YWJsZSwg
SlNWYWx1ZVNvdXJjZSgpLCAwLAogICAgICAgICBtX2ppdC5icmFuY2hUZXN0OCgKICAgICAgICAg
ICAgIE1hY3JvQXNzZW1ibGVyOjpOb25aZXJvLAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3MoYmFzZVJlZywgT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9vdmVycm9kZUxl
bmd0aCkpKSk7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBB
cmd1bWVudHM6Om9mZnNldE9mT3ZlcnJvZGVMZW5ndGgoKSkpKTsKICAgICAKICAgICBtX2ppdC5s
b2FkMzIoCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIE9CSkVDVF9P
RkZTRVRPRihBcmd1bWVudHMsIG1fbnVtQXJndW1lbnRzKSksCisgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpBZGRyZXNzKGJhc2VSZWcsIEFyZ3VtZW50czo6b2Zmc2V0T2ZOdW1Bcmd1bWVudHMoKSks
CiAgICAgICAgIHJlc3VsdFJlZyk7CiAgICAgaW50MzJSZXN1bHQocmVzdWx0UmVnLCBub2RlKTsK
IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0FyZ3VtZW50cy5oCShyZXZp
c2lvbiAxNTcwMDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMu
aAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNiBAQCBuYW1lc3BhY2UgSlNDIHsKIAogY2xh
c3MgQXJndW1lbnRzIDogcHVibGljIEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IHsKICAgICBmcmllbmQg
Y2xhc3MgSklUOwotICAgIGZyaWVuZCBjbGFzcyBERkc6OlNwZWN1bGF0aXZlSklUOwogcHVibGlj
OgogICAgIHR5cGVkZWYgSlNEZXN0cnVjdGlibGVPYmplY3QgQmFzZTsKIApAQCAtODcsNyArODYs
MTIgQEAgcHVibGljOgogICAgIHsgCiAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgaW5mbygpKTsgCiAgICAgfQotICAgICAgICAKKyAgICAKKyAgICBzdGF0aWMgcHRy
ZGlmZl90IG9mZnNldE9mTnVtQXJndW1lbnRzKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEFy
Z3VtZW50cywgbV9udW1Bcmd1bWVudHMpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRP
ZlJlZ2lzdGVycygpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihBcmd1bWVudHMsIG1fcmVnaXN0
ZXJzKTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZTbG93QXJndW1lbnREYXRhKCkg
eyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9zbG93QXJndW1lbnREYXRhKTsg
fQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZPdmVycm9kZUxlbmd0aCgpIHsgcmV0dXJu
IE9CSkVDVF9PRkZTRVRPRihBcmd1bWVudHMsIG1fb3ZlcnJvZGVMZW5ndGgpOyB9CisgICAgCiBw
cm90ZWN0ZWQ6CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3Zl
cnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5
SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBP
dmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213551</attachid>
            <date>2013-10-06 19:22:43 -0700</date>
            <delta_ts>2013-10-06 19:23:56 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>14901</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3MDE1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBA
CisyMDEzLTEwLTA2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QVNTRVJUSU9OIEZBSUxFRDogYml0d2lzZV9jYXN0PFdyaXRlQmFycmllcjxVbmtub3duPio+KGNh
bGxGcmFtZSkgPT0gbV9yZWdpc3RlcnMgaW4ganNjLWxheW91dC10ZXN0cy55YW1sL2pzL3Njcmlw
dC10ZXN0cy9kZmctaW5saW5lLWFyZ3VtZW50cy1jYXB0dXJlLXRocm93LWV4Y2VwdGlvbi5qcy5s
YXlvdXQtZGZnLWVhZ2VyLW5vLWNqaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyMjQxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgaXMgcHJldHR5IGF3ZXNvbWUuIFdpdGggc3RhY2sgY29tcHJl
c3Npb24sIEFyZ3VtZW50cyBjcmVhdGVkIGluIHRoZSBERkcgd2lsbCBwb2ludAorICAgICAgICB0
aGVpciBtX3JlZ2lzdGVycyBwb2ludGVycyBpbnRvIGEgZGlmZmVyZW50IHNsYWIgb2Ygc3RhY2sg
dGhhbiB0aGV5IHdvdWxkIGhhdmUgaW4gYnl0ZQorICAgICAgICBjb2RlLgorCisgICAgICAgIEhl
bmNlIE9TUiBleGl0IG11c3QgcmVwb2ludCBhbnkgQXJndW1lbnRzIG9iamVjdHMnIG1fcmVnaXN0
ZXJzIHBvaW50ZXJzLiBJdCBwcmV2aW91c2x5CisgICAgICAgIG5lZ2xlY3RlZCB0byBkbyBzby4g
VGhpcyBwYXRjaCBmaXhlcyB0aGF0LgorICAgICAgICAKKyAgICAgICAgRml4aW5nIHRoaXMgdW52
ZWlsZWQgYW5vdGhlciBidWc6IHRoZSBzdGFjayByZXZlcnNhbCBicm9rZSB0aGUgcmVpZmljYXRp
b24gb2YgaW5saW5lZAorICAgICAgICBwaGFudG9tIGFyZ3VtZW50cy4KKyAgICAgICAgCisgICAg
ICAgIEFsbCBvZiB0aGlzIGdldHMgdGVzdCBjb3ZlcmFnZSBmcm9tIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjA2OTYuCisgICAgICAgIFJpZ2h0IG5vdyB0aGlzIGhh
cyBubyB0ZXN0IGNvdmVyYWdlLgorICAgICAgICAKKyAgICAgICAgKiBkZmcvREZHT1NSRXhpdENv
bXBpbGVyMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6Ok9TUkV4aXRDb21waWxlcjo6Y29t
cGlsZUV4aXQpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6T1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdCk6CisgICAgICAgICog
ZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6cmVp
ZnlJbmxpbmVkQ2FsbEZyYW1lcyk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25B
cmd1bWVudHMpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0
QXJndW1lbnRzTGVuZ3RoKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAq
IHJ1bnRpbWUvQXJndW1lbnRzLmg6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6b2Zmc2V0T2ZO
dW1Bcmd1bWVudHMpOgorICAgICAgICAoSlNDOjpBcmd1bWVudHM6Om9mZnNldE9mUmVnaXN0ZXJz
KToKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpvZmZzZXRPZlNsb3dBcmd1bWVudERhdGEpOgor
ICAgICAgICAoSlNDOjpBcmd1bWVudHM6Om9mZnNldE9mT3ZlcnJvZGVMZW5ndGgpOgorCiAyMDEz
LTEwLTA2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5pZmll
ZCB0ZXN0IGluZnJhc3RydWN0dXJlIHZpYSB0aGUganNjIHNoZWxsCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcAko
cmV2aXNpb24gMTU3MDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0
Q29tcGlsZXIzMl82NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1Myw2ICszNTMsMTIgQEAgdm9p
ZCBPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KGNvbnN0IAogICAgICAgICAgICAgCiAgICAg
ICAgIGNhc2UgQXJndW1lbnRzVGhhdFdlcmVOb3RDcmVhdGVkOgogICAgICAgICAgICAgaGF2ZUFy
Z3VtZW50cyA9IHRydWU7CisgICAgICAgICAgICBtX2ppdC5zdG9yZTMyKAorICAgICAgICAgICAg
ICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKEpTVmFsdWUoKS50YWcoKSksCisgICAg
ICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3Iob3BlcmFuZCkpOworICAgICAgICAg
ICAgbV9qaXQuc3RvcmUzMigKKyAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0
ZWRJbW0zMihKU1ZhbHVlKCkucGF5bG9hZCgpKSwKKyAgICAgICAgICAgICAgICBBc3NlbWJseUhl
bHBlcnM6OnBheWxvYWRGb3Iob3BlcmFuZCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICAKICAgICAgICAgZGVmYXVsdDoKQEAgLTQxOSw3ICs0MjUsNyBAQCB2b2lkIE9TUkV4aXRD
b21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAgICAgICAgICAgICBmb3IgKElubGluZUNhbGxG
cmFtZSogY3VycmVudCA9IGV4aXQubV9jb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZTsKICAgICAg
ICAgICAgICAgICAgY3VycmVudDsKICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGN1cnJlbnQt
PmNhbGxlci5pbmxpbmVDYWxsRnJhbWUpIHsKLSAgICAgICAgICAgICAgICBpZiAoY3VycmVudC0+
c3RhY2tPZmZzZXQgPD0gb3BlcmFuZCkgeworICAgICAgICAgICAgICAgIGlmIChjdXJyZW50LT5z
dGFja09mZnNldCA+PSBvcGVyYW5kKSB7CiAgICAgICAgICAgICAgICAgICAgIGlubGluZUNhbGxG
cmFtZSA9IGN1cnJlbnQ7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
ICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVy
NjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhp
dENvbXBpbGVyNjQuY3BwCShyZXZpc2lvbiAxNTcwMTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzE3LDYg
KzMxNywxMSBAQCB2b2lkIE9TUkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAgICAg
ICAgICAgICAKICAgICAgICAgY2FzZSBBcmd1bWVudHNUaGF0V2VyZU5vdENyZWF0ZWQ6CiAgICAg
ICAgICAgICBoYXZlQXJndW1lbnRzID0gdHJ1ZTsKKyAgICAgICAgICAgIC8vIFdlIGNhbid0IHJl
c3RvcmUgdGhpcyB5ZXQgYnV0IHdlIGNhbiBtYWtlIHN1cmUgdGhhdCB0aGUgc3RhY2sgYXBwZWFy
cworICAgICAgICAgICAgLy8gc2FuZS4KKyAgICAgICAgICAgIG1faml0LnN0b3JlNjQoCisgICAg
ICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2Rl
KEpTVmFsdWUoKSkpLAorICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0Zv
cihvcGVyYW5kKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAogICAgICAgICBk
ZWZhdWx0OgpAQCAtMzgzLDcgKzM4OCw3IEBAIHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21waWxl
RXhpdChjb25zdCAKICAgICAgICAgICAgIGZvciAoSW5saW5lQ2FsbEZyYW1lKiBjdXJyZW50ID0g
ZXhpdC5tX2NvZGVPcmlnaW4uaW5saW5lQ2FsbEZyYW1lOwogICAgICAgICAgICAgICAgICBjdXJy
ZW50OwogICAgICAgICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudC0+Y2FsbGVyLmlubGluZUNh
bGxGcmFtZSkgewotICAgICAgICAgICAgICAgIGlmIChjdXJyZW50LT5zdGFja09mZnNldCA8PSBv
cGVyYW5kKSB7CisgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQtPnN0YWNrT2Zmc2V0ID49IG9w
ZXJhbmQpIHsKICAgICAgICAgICAgICAgICAgICAgaW5saW5lQ2FsbEZyYW1lID0gY3VycmVudDsK
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29t
bW9uLmNwcAkocmV2aXNpb24gMTU3MDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpZiBFTkFCTEUoREZHX0pJVCkKIAorI2luY2x1ZGUgIkFyZ3VtZW50cy5oIgogI2lu
Y2x1ZGUgIkRGR09wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0NKU1ZhbHVlSW5saW5lcy5oIgog
I2luY2x1ZGUgIk9wZXJhdGlvbnMuaCIKQEAgLTk5LDcgKzEwMCw2IEBAIHZvaWQgcmVpZnlJbmxp
bmVkQ2FsbEZyYW1lcyhDQ2FsbEhlbHBlcnMKICAgICAgICAgCiAgICAgICAgIHZvaWQqIGp1bXBU
YXJnZXQgPSBjYWxsTGlua0luZm8uY2FsbFJldHVybkxvY2F0aW9uLmV4ZWN1dGFibGVBZGRyZXNz
KCk7CiAKLSNpZiBVU0UoSlNWQUxVRTY0KQogICAgICAgICBHUFJSZWcgY2FsbGVyRnJhbWVHUFI7
CiAgICAgICAgIGlmIChpbmxpbmVDYWxsRnJhbWUtPmNhbGxlci5pbmxpbmVDYWxsRnJhbWUpIHsK
ICAgICAgICAgICAgIGppdC5hZGRQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoaW5s
aW5lQ2FsbEZyYW1lLT5jYWxsZXIuaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCAqIHNpemVv
ZihFbmNvZGVkSlNWYWx1ZSkpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlciwgR1BSSW5mbzo6
cmVnVDMpOwpAQCAtMTA3LDYgKzEwNyw3IEBAIHZvaWQgcmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyhD
Q2FsbEhlbHBlcnMKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBjYWxsZXJGcmFtZUdQUiA9
IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyOwogICAgICAgICAKKyNpZiBVU0UoSlNWQUxVRTY0
KQogICAgICAgICBqaXQuc3RvcmVQdHIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGJh
c2VsaW5lQ29kZUJsb2NrKSwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKChWaXJ0dWFsUmVn
aXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBKU1N0YWNrOjpDb2RlQmxvY2sp
KSk7CiAgICAgICAgIGlmICghaW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsKQogICAgICAg
ICAgICAgaml0LnN0b3JlNjQoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6
ZW5jb2RlKEpTVmFsdWUoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZWVDb25zdGFudCgpLT5zY29wZSgp
KSkpLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5l
Q2FsbEZyYW1lLT5zdGFja09mZnNldCArIEpTU3RhY2s6OlNjb3BlQ2hhaW4pKSk7CkBAIC0xMTcs
MTQgKzExOCwxMSBAQCB2b2lkIHJlaWZ5SW5saW5lZENhbGxGcmFtZXMoQ0NhbGxIZWxwZXJzCiAg
ICAgICAgIGppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGlubGluZUNh
bGxGcmFtZS0+YXJndW1lbnRzLnNpemUoKSksIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcigo
VmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgSlNTdGFjazo6
QXJndW1lbnRDb3VudCkpKTsKICAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3Vy
ZUNhbGwpCiAgICAgICAgICAgICBqaXQuc3RvcmU2NChBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJ
bW02NChKU1ZhbHVlOjplbmNvZGUoSlNWYWx1ZShpbmxpbmVDYWxsRnJhbWUtPmNhbGxlZUNvbnN0
YW50KCkpKSksIEFzc2VtYmx5SGVscGVyczo6YWRkcmVzc0ZvcigoVmlydHVhbFJlZ2lzdGVyKShp
bmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgSlNTdGFjazo6Q2FsbGVlKSkpOwotI2Vsc2Ug
Ly8gVVNFKEpTVkFMVUU2NCkgLy8gc28gdGhpcyBpcyB0aGUgMzItYml0IHBhcnQKLSAgICAgICAg
R1BSUmVnIGNhbGxlckZyYW1lR1BSOwotICAgICAgICBpZiAoaW5saW5lQ2FsbEZyYW1lLT5jYWxs
ZXIuaW5saW5lQ2FsbEZyYW1lKSB7Ci0gICAgICAgICAgICBqaXQuYWRkMzIoQXNzZW1ibHlIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoaW5saW5lQ2FsbEZyYW1lLT5jYWxsZXIuaW5saW5lQ2FsbEZyYW1l
LT5zdGFja09mZnNldCAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpLCBHUFJJbmZvOjpjYWxsRnJh
bWVSZWdpc3RlciwgR1BSSW5mbzo6cmVnVDMpOwotICAgICAgICAgICAgY2FsbGVyRnJhbWVHUFIg
PSBHUFJJbmZvOjpyZWdUMzsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBjYWxsZXJGcmFt
ZUdQUiA9IEdQUkluZm86OmNhbGxGcmFtZVJlZ2lzdGVyOwogICAgICAgICAKKyAgICAgICAgLy8g
TGVhdmUgdGhlIGNhcHR1cmVkIGFyZ3VtZW50cyBpbiByZWdUMy4KKyAgICAgICAgaWYgKGJhc2Vs
aW5lQ29kZUJsb2NrLT51c2VzQXJndW1lbnRzKCkpCisgICAgICAgICAgICBqaXQubG9hZFB0cihB
c3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IoVmlydHVhbFJlZ2lzdGVyKGlubGluZUNhbGxGcmFt
ZS0+c3RhY2tPZmZzZXQgKyB1bm1vZGlmaWVkQXJndW1lbnRzUmVnaXN0ZXIoYmFzZWxpbmVDb2Rl
QmxvY2stPmFyZ3VtZW50c1JlZ2lzdGVyKCkpLm9mZnNldCgpKSksIEdQUkluZm86OnJlZ1QzKTsK
KyNlbHNlIC8vIFVTRShKU1ZBTFVFNjQpIC8vIHNvIHRoaXMgaXMgdGhlIDMyLWJpdCBwYXJ0CiAg
ICAgICAgIGppdC5zdG9yZVB0cihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoYmFzZWxp
bmVDb2RlQmxvY2spLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NGb3IoKFZpcnR1YWxSZWdpc3Rl
cikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIEpTU3RhY2s6OkNvZGVCbG9jaykpKTsK
ICAgICAgICAgaml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1
ZTo6Q2VsbFRhZyksIEFzc2VtYmx5SGVscGVyczo6dGFnRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlu
bGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBKU1N0YWNrOjpTY29wZUNoYWluKSkpOwogICAg
ICAgICBpZiAoIWlubGluZUNhbGxGcmFtZS0+aXNDbG9zdXJlQ2FsbCkKQEAgLTEzOSw3ICsxMzcs
MTggQEAgdm9pZCByZWlmeUlubGluZWRDYWxsRnJhbWVzKENDYWxsSGVscGVycwogICAgICAgICBq
aXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihKU1ZhbHVlOjpDZWxsVGFn
KSwgQXNzZW1ibHlIZWxwZXJzOjp0YWdGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZy
YW1lLT5zdGFja09mZnNldCArIEpTU3RhY2s6OkNhbGxlZSkpKTsKICAgICAgICAgaWYgKCFpbmxp
bmVDYWxsRnJhbWUtPmlzQ2xvc3VyZUNhbGwpCiAgICAgICAgICAgICBqaXQuc3RvcmVQdHIoQXNz
ZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGlubGluZUNhbGxGcmFtZS0+Y2FsbGVlQ29uc3Rh
bnQoKSksIEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxp
bmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgSlNTdGFjazo6Q2FsbGVlKSkpOworCisgICAgICAg
IC8vIExlYXZlIHRoZSBjYXB0dXJlZCBhcmd1bWVudHMgaW4gcmVnVDMuCisgICAgICAgIGlmIChi
YXNlbGluZUNvZGVCbG9jay0+dXNlc0FyZ3VtZW50cygpKQorICAgICAgICAgICAgaml0LmxvYWRQ
dHIoQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKFZpcnR1YWxSZWdpc3RlcihpbmxpbmVDYWxs
RnJhbWUtPnN0YWNrT2Zmc2V0ICsgdW5tb2RpZmllZEFyZ3VtZW50c1JlZ2lzdGVyKGJhc2VsaW5l
Q29kZUJsb2NrLT5hcmd1bWVudHNSZWdpc3RlcigpKS5vZmZzZXQoKSkpLCBHUFJJbmZvOjpyZWdU
Myk7CiAjZW5kaWYgLy8gVVNFKEpTVkFMVUU2NCkgLy8gZW5kaW5nIHRoZSAjZWxzZSBwYXJ0LCBz
byBkaXJlY3RseSBhYm92ZSBpcyB0aGUgMzItYml0IHBhcnQKKyAgICAgICAgCisgICAgICAgIGlm
IChiYXNlbGluZUNvZGVCbG9jay0+dXNlc0FyZ3VtZW50cygpKSB7CisgICAgICAgICAgICBBc3Nl
bWJseUhlbHBlcnM6Okp1bXAgbm9Bcmd1bWVudHMgPSBqaXQuYnJhbmNoVGVzdFB0cihBc3NlbWJs
eUhlbHBlcnM6Olplcm8sIEdQUkluZm86OnJlZ1QzKTsKKyAgICAgICAgICAgIGppdC5hZGRQdHIo
QXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNl
dCAqIHNpemVvZihFbmNvZGVkSlNWYWx1ZSkpLCBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3Rlciwg
R1BSSW5mbzo6cmVnVDApOworICAgICAgICAgICAgaml0LnN0b3JlUHRyKEdQUkluZm86OnJlZ1Qw
LCBBc3NlbWJseUhlbHBlcnM6OkFkZHJlc3MoR1BSSW5mbzo6cmVnVDMsIEFyZ3VtZW50czo6b2Zm
c2V0T2ZSZWdpc3RlcnMoKSkpOworICAgICAgICAgICAgbm9Bcmd1bWVudHMubGluaygmaml0KTsK
KyAgICAgICAgfQogICAgIH0KIAogI2lmIFVTRShKU1ZBTFVFNjQpCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHJldmlzaW9u
IDE1NzAxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxNDUsMTggKzMxNDUsMTggQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgICAgIFVuY291bnRhYmxl
LCBKU1ZhbHVlU291cmNlKCksIDAsCiAgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoMzIoCiAg
ICAgICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5
UmVnLAotICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVn
LCBPQkpFQ1RfT0ZGU0VUT0YoQXJndW1lbnRzLCBtX251bUFyZ3VtZW50cykpKSk7CisgICAgICAg
ICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIEFyZ3VtZW50czo6
b2Zmc2V0T2ZOdW1Bcmd1bWVudHMoKSkpKTsKICAgICAgICAgICAgIHNwZWN1bGF0aW9uQ2hlY2so
CiAgICAgICAgICAgICAgICAgVW5jb3VudGFibGUsIEpTVmFsdWVTb3VyY2UoKSwgMCwKICAgICAg
ICAgICAgICAgICBtX2ppdC5icmFuY2hUZXN0UHRyKAogICAgICAgICAgICAgICAgICAgICBNYWNy
b0Fzc2VtYmxlcjo6Tm9uWmVybywKICAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
OkFkZHJlc3MoCi0gICAgICAgICAgICAgICAgICAgICAgICBiYXNlUmVnLCBPQkpFQ1RfT0ZGU0VU
T0YoQXJndW1lbnRzLCBtX3Nsb3dBcmd1bWVudERhdGEpKSkpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYmFzZVJlZywgQXJndW1lbnRzOjpvZmZzZXRPZlNsb3dBcmd1bWVudERhdGEoKSkpKTsK
ICAgICAKICAgICAgICAgICAgIG1faml0Lm1vdmUocHJvcGVydHlSZWcsIHNjcmF0Y2gyUmVnKTsK
ICAgICAgICAgICAgIG1faml0LnNpZ25FeHRlbmQzMlRvUHRyKHNjcmF0Y2gyUmVnLCBzY3JhdGNo
MlJlZyk7CiAgICAgICAgICAgICBtX2ppdC5sb2FkUHRyKAotICAgICAgICAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIE9CSkVDVF9PRkZTRVRPRihBcmd1bWVudHMsIG1f
cmVnaXN0ZXJzKSksCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFz
ZVJlZywgQXJndW1lbnRzOjpvZmZzZXRPZlJlZ2lzdGVycygpKSwKICAgICAgICAgICAgICAgICBz
Y3JhdGNoUmVnKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9qaXQuc3RvcmU2NCgKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3Bw
CShyZXZpc2lvbiAxNTcwMTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDI1NywxOCArNDI1NywxOCBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWxPbkFyCiAgICAgICAgIFVuY291bnRhYmxl
LCBKU1ZhbHVlU291cmNlKCksIDAsCiAgICAgICAgIG1faml0LmJyYW5jaDMyKAogICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlSZWcsCi0gICAgICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBPQkpFQ1RfT0ZGU0VUT0YoQXJndW1l
bnRzLCBtX251bUFyZ3VtZW50cykpKSk7CisgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRk
cmVzcyhiYXNlUmVnLCBBcmd1bWVudHM6Om9mZnNldE9mTnVtQXJndW1lbnRzKCkpKSk7CiAgICAg
c3BlY3VsYXRpb25DaGVjaygKICAgICAgICAgVW5jb3VudGFibGUsIEpTVmFsdWVTb3VyY2UoKSwg
MCwKICAgICAgICAgbV9qaXQuYnJhbmNoVGVzdFB0cigKICAgICAgICAgICAgIE1hY3JvQXNzZW1i
bGVyOjpOb25aZXJvLAogICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoCi0gICAg
ICAgICAgICAgICAgYmFzZVJlZywgT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9zbG93QXJn
dW1lbnREYXRhKSkpKTsKKyAgICAgICAgICAgICAgICBiYXNlUmVnLCBBcmd1bWVudHM6Om9mZnNl
dE9mU2xvd0FyZ3VtZW50RGF0YSgpKSkpOwogICAgIAogICAgIG1faml0Lm1vdmUocHJvcGVydHlS
ZWcsIHJlc3VsdFJlZyk7CiAgICAgbV9qaXQuc2lnbkV4dGVuZDMyVG9QdHIocmVzdWx0UmVnLCBy
ZXN1bHRSZWcpOwogICAgIG1faml0LmxvYWRQdHIoCi0gICAgICAgIE1hY3JvQXNzZW1ibGVyOjpB
ZGRyZXNzKGJhc2VSZWcsIE9CSkVDVF9PRkZTRVRPRihBcmd1bWVudHMsIG1fcmVnaXN0ZXJzKSks
CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIEFyZ3VtZW50czo6b2Zm
c2V0T2ZSZWdpc3RlcnMoKSksCiAgICAgICAgIHNjcmF0Y2hSZWcpOwogICAgIAogI2lmIFVTRShK
U1ZBTFVFMzJfNjQpCkBAIC00MzEyLDEwICs0MzEyLDEwIEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVHZXRBcmd1bWVudHMKICAgICAgICAgVW5jb3VudGFibGUsIEpTVmFsdWVTb3VyY2Uo
KSwgMCwKICAgICAgICAgbV9qaXQuYnJhbmNoVGVzdDgoCiAgICAgICAgICAgICBNYWNyb0Fzc2Vt
Ymxlcjo6Tm9uWmVybywKLSAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VS
ZWcsIE9CSkVDVF9PRkZTRVRPRihBcmd1bWVudHMsIG1fb3ZlcnJvZGVMZW5ndGgpKSkpOworICAg
ICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgQXJndW1lbnRzOjpvZmZz
ZXRPZk92ZXJyb2RlTGVuZ3RoKCkpKSk7CiAgICAgCiAgICAgbV9qaXQubG9hZDMyKAotICAgICAg
ICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBPQkpFQ1RfT0ZGU0VUT0YoQXJndW1l
bnRzLCBtX251bUFyZ3VtZW50cykpLAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhi
YXNlUmVnLCBBcmd1bWVudHM6Om9mZnNldE9mTnVtQXJndW1lbnRzKCkpLAogICAgICAgICByZXN1
bHRSZWcpOwogICAgIGludDMyUmVzdWx0KHJlc3VsdFJlZywgbm9kZSk7CiB9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Bcmd1bWVudHMuaAkocmV2aXNpb24gMTU3MDE1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTM3LDcgKzM3LDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIGNsYXNzIEFyZ3VtZW50cyA6
IHB1YmxpYyBKU0Rlc3RydWN0aWJsZU9iamVjdCB7CiAgICAgZnJpZW5kIGNsYXNzIEpJVDsKLSAg
ICBmcmllbmQgY2xhc3MgREZHOjpTcGVjdWxhdGl2ZUpJVDsKIHB1YmxpYzoKICAgICB0eXBlZGVm
IEpTRGVzdHJ1Y3RpYmxlT2JqZWN0IEJhc2U7CiAKQEAgLTg3LDcgKzg2LDEyIEBAIHB1YmxpYzoK
ICAgICB7IAogICAgICAgICByZXR1cm4gU3RydWN0dXJlOjpjcmVhdGUodm0sIGdsb2JhbE9iamVj
dCwgcHJvdG90eXBlLCBUeXBlSW5mbyhPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8o
KSk7IAogICAgIH0KLSAgICAgICAgCisgICAgCisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRP
Zk51bUFyZ3VtZW50cygpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihBcmd1bWVudHMsIG1fbnVt
QXJndW1lbnRzKTsgfQorICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZSZWdpc3RlcnMoKSB7
IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoQXJndW1lbnRzLCBtX3JlZ2lzdGVycyk7IH0KKyAgICBz
dGF0aWMgcHRyZGlmZl90IG9mZnNldE9mU2xvd0FyZ3VtZW50RGF0YSgpIHsgcmV0dXJuIE9CSkVD
VF9PRkZTRVRPRihBcmd1bWVudHMsIG1fc2xvd0FyZ3VtZW50RGF0YSk7IH0KKyAgICBzdGF0aWMg
cHRyZGlmZl90IG9mZnNldE9mT3ZlcnJvZGVMZW5ndGgoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VU
T0YoQXJndW1lbnRzLCBtX292ZXJyb2RlTGVuZ3RoKTsgfQorICAgIAogcHJvdGVjdGVkOgogICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRlc0dldE93blBy
b3BlcnR5U2xvdCB8IEludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5M
ZW5ndGhJc05vdFplcm8gfCBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0UHJv
cGVydHlOYW1lcyB8IEpTT2JqZWN0OjpTdHJ1Y3R1cmVGbGFnczsKIApJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMTU3MDE1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMTMtMTAtMDYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4K
KworICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiBiaXR3aXNlX2Nhc3Q8V3JpdGVCYXJyaWVyPFVu
a25vd24+Kj4oY2FsbEZyYW1lKSA9PSBtX3JlZ2lzdGVycyBpbiBqc2MtbGF5b3V0LXRlc3RzLnlh
bWwvanMvc2NyaXB0LXRlc3RzL2RmZy1pbmxpbmUtYXJndW1lbnRzLWNhcHR1cmUtdGhyb3ctZXhj
ZXB0aW9uLmpzLmxheW91dC1kZmctZWFnZXItbm8tY2ppdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyNDE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvZGZnLWlubGluZS1h
cmd1bWVudHMtY2FwdHVyZS10aHJvdy1leGNlcHRpb24uanM6CisKIDIwMTMtMTAtMDYgIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBVbmlmaWVkIHRlc3QgaW5mcmFz
dHJ1Y3R1cmUgdmlhIHRoZSBqc2Mgc2hlbGwKSW5kZXg6IExheW91dFRlc3RzL2pzL3NjcmlwdC10
ZXN0cy9kZmctaW5saW5lLWFyZ3VtZW50cy1jYXB0dXJlLXRocm93LWV4Y2VwdGlvbi5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZGZnLWlubGluZS1hcmd1bWVu
dHMtY2FwdHVyZS10aHJvdy1leGNlcHRpb24uanMJKHJldmlzaW9uIDE1NzAxNSkKKysrIExheW91
dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9kZmctaW5saW5lLWFyZ3VtZW50cy1jYXB0dXJlLXRocm93
LWV4Y2VwdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDMgQEAKLS8vIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjI0MTgKLS8vQCBydW5MYXlvdXRUZXN0
RGVmYXVsdAotCiBkZXNjcmlwdGlvbigKICJUZXN0cyB3aGF0IGhhcHBlbnMgd2hlbiB5b3UgaGF2
ZSBhbiBpbmxpbmVkIGZ1bmN0aW9uIHRoYXQgY2FwdHVyZXMgYXJndW1lbnRzIGFuZCB0aGVuIHRo
cm93cyBhbiBleGNlcHRpb24uIgogKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213552</attachid>
            <date>2013-10-06 19:23:56 -0700</date>
            <delta_ts>2013-10-06 20:43:28 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>14752</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3MDE1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDEzLTEwLTA2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QVNTRVJUSU9OIEZBSUxFRDogYml0d2lzZV9jYXN0PFdyaXRlQmFycmllcjxVbmtub3duPio+KGNh
bGxGcmFtZSkgPT0gbV9yZWdpc3RlcnMgaW4ganNjLWxheW91dC10ZXN0cy55YW1sL2pzL3Njcmlw
dC10ZXN0cy9kZmctaW5saW5lLWFyZ3VtZW50cy1jYXB0dXJlLXRocm93LWV4Y2VwdGlvbi5qcy5s
YXlvdXQtZGZnLWVhZ2VyLW5vLWNqaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyMjQxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgaXMgcHJldHR5IGF3ZXNvbWUuIFdpdGggc3RhY2sgY29tcHJl
c3Npb24sIEFyZ3VtZW50cyBjcmVhdGVkIGluIHRoZSBERkcgd2lsbCBwb2ludAorICAgICAgICB0
aGVpciBtX3JlZ2lzdGVycyBwb2ludGVycyBpbnRvIGEgZGlmZmVyZW50IHNsYWIgb2Ygc3RhY2sg
dGhhbiB0aGV5IHdvdWxkIGhhdmUgaW4gYnl0ZQorICAgICAgICBjb2RlLgorCisgICAgICAgIEhl
bmNlIE9TUiBleGl0IG11c3QgcmVwb2ludCBhbnkgQXJndW1lbnRzIG9iamVjdHMnIG1fcmVnaXN0
ZXJzIHBvaW50ZXJzLiBJdCBwcmV2aW91c2x5CisgICAgICAgIG5lZ2xlY3RlZCB0byBkbyBzby4g
VGhpcyBwYXRjaCBmaXhlcyB0aGF0LgorICAgICAgICAKKyAgICAgICAgRml4aW5nIHRoaXMgdW52
ZWlsZWQgYW5vdGhlciBidWc6IHRoZSBzdGFjayByZXZlcnNhbCBicm9rZSB0aGUgcmVpZmljYXRp
b24gb2YgaW5saW5lZAorICAgICAgICBwaGFudG9tIGFyZ3VtZW50cy4KKyAgICAgICAgCisgICAg
ICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhp
dENvbXBpbGVyNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6Ok9TUkV4aXRDb21waWxlcjo6Y29t
cGlsZUV4aXQpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OnJlaWZ5SW5saW5lZENhbGxGcmFtZXMpOgorICAgICAgICAqIGRm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRCeVZhbE9uQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUdldEFyZ3VtZW50c0xlbmd0aCk6CisgICAgICAgICogZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAgICAgICAoSlND
OjpBcmd1bWVudHM6Om9mZnNldE9mTnVtQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6QXJndW1l
bnRzOjpvZmZzZXRPZlJlZ2lzdGVycyk6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6b2Zmc2V0
T2ZTbG93QXJndW1lbnREYXRhKToKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpvZmZzZXRPZk92
ZXJyb2RlTGVuZ3RoKToKKwogMjAxMy0xMC0wNiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUu
Y29tPgogCiAgICAgICAgIFVuaWZpZWQgdGVzdCBpbmZyYXN0cnVjdHVyZSB2aWEgdGhlIGpzYyBz
aGVsbApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIz
Ml82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JF
eGl0Q29tcGlsZXIzMl82NC5jcHAJKHJldmlzaW9uIDE1NzAxNSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNTMsNiArMzUzLDEyIEBAIHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdChjb25z
dCAKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEFyZ3VtZW50c1RoYXRXZXJlTm90Q3JlYXRl
ZDoKICAgICAgICAgICAgIGhhdmVBcmd1bWVudHMgPSB0cnVlOworICAgICAgICAgICAgbV9qaXQu
c3RvcmUzMigKKyAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihK
U1ZhbHVlKCkudGFnKCkpLAorICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6dGFnRm9y
KG9wZXJhbmQpKTsKKyAgICAgICAgICAgIG1faml0LnN0b3JlMzIoCisgICAgICAgICAgICAgICAg
QXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZSgpLnBheWxvYWQoKSksCisgICAg
ICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKG9wZXJhbmQpKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6CkBAIC00MTksNyAr
NDI1LDcgQEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KGNvbnN0IAogICAgICAg
ICAgICAgZm9yIChJbmxpbmVDYWxsRnJhbWUqIGN1cnJlbnQgPSBleGl0Lm1fY29kZU9yaWdpbi5p
bmxpbmVDYWxsRnJhbWU7CiAgICAgICAgICAgICAgICAgIGN1cnJlbnQ7CiAgICAgICAgICAgICAg
ICAgIGN1cnJlbnQgPSBjdXJyZW50LT5jYWxsZXIuaW5saW5lQ2FsbEZyYW1lKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKGN1cnJlbnQtPnN0YWNrT2Zmc2V0IDw9IG9wZXJhbmQpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoY3VycmVudC0+c3RhY2tPZmZzZXQgPj0gb3BlcmFuZCkgewogICAgICAgICAg
ICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUgPSBjdXJyZW50OwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAkocmV2aXNpb24gMTU3MDE1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMxNyw2ICszMTcsMTEgQEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNv
bXBpbGVFeGl0KGNvbnN0IAogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJndW1lbnRzVGhh
dFdlcmVOb3RDcmVhdGVkOgogICAgICAgICAgICAgaGF2ZUFyZ3VtZW50cyA9IHRydWU7CisgICAg
ICAgICAgICAvLyBXZSBjYW4ndCByZXN0b3JlIHRoaXMgeWV0IGJ1dCB3ZSBjYW4gbWFrZSBzdXJl
IHRoYXQgdGhlIHN0YWNrIGFwcGVhcnMKKyAgICAgICAgICAgIC8vIHNhbmUuCisgICAgICAgICAg
ICBtX2ppdC5zdG9yZTY0KAorICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3Rl
ZEltbTY0KEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpKSwKKyAgICAgICAgICAgICAgICBBc3Nl
bWJseUhlbHBlcnM6OmFkZHJlc3NGb3Iob3BlcmFuZCkpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKQEAgLTM4Myw3ICszODgsNyBAQCB2b2lkIE9T
UkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAgICAgICAgICAgICBmb3IgKElubGlu
ZUNhbGxGcmFtZSogY3VycmVudCA9IGV4aXQubV9jb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZTsK
ICAgICAgICAgICAgICAgICAgY3VycmVudDsKICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGN1
cnJlbnQtPmNhbGxlci5pbmxpbmVDYWxsRnJhbWUpIHsKLSAgICAgICAgICAgICAgICBpZiAoY3Vy
cmVudC0+c3RhY2tPZmZzZXQgPD0gb3BlcmFuZCkgeworICAgICAgICAgICAgICAgIGlmIChjdXJy
ZW50LT5zdGFja09mZnNldCA+PSBvcGVyYW5kKSB7CiAgICAgICAgICAgICAgICAgICAgIGlubGlu
ZUNhbGxGcmFtZSA9IGN1cnJlbnQ7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENv
bXBpbGVyQ29tbW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAJKHJldmlzaW9uIDE1NzAxNSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKKyNpbmNs
dWRlICJBcmd1bWVudHMuaCIKICNpbmNsdWRlICJERkdPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
SlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCkBAIC05OSw3ICsx
MDAsNiBAQCB2b2lkIHJlaWZ5SW5saW5lZENhbGxGcmFtZXMoQ0NhbGxIZWxwZXJzCiAgICAgICAg
IAogICAgICAgICB2b2lkKiBqdW1wVGFyZ2V0ID0gY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2Nh
dGlvbi5leGVjdXRhYmxlQWRkcmVzcygpOwogCi0jaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAg
R1BSUmVnIGNhbGxlckZyYW1lR1BSOwogICAgICAgICBpZiAoaW5saW5lQ2FsbEZyYW1lLT5jYWxs
ZXIuaW5saW5lQ2FsbEZyYW1lKSB7CiAgICAgICAgICAgICBqaXQuYWRkUHRyKEFzc2VtYmx5SGVs
cGVyczo6VHJ1c3RlZEltbTMyKGlubGluZUNhbGxGcmFtZS0+Y2FsbGVyLmlubGluZUNhbGxGcmFt
ZS0+c3RhY2tPZmZzZXQgKiBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSwgR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QzKTsKQEAgLTEwNyw2ICsxMDcsNyBAQCB2b2lkIHJl
aWZ5SW5saW5lZENhbGxGcmFtZXMoQ0NhbGxIZWxwZXJzCiAgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgY2FsbGVyRnJhbWVHUFIgPSBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlcjsKICAgICAg
ICAgCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgaml0LnN0b3JlUHRyKEFzc2VtYmx5SGVs
cGVyczo6VHJ1c3RlZEltbVB0cihiYXNlbGluZUNvZGVCbG9jayksIEFzc2VtYmx5SGVscGVyczo6
YWRkcmVzc0ZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0
ICsgSlNTdGFjazo6Q29kZUJsb2NrKSkpOwogICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZS0+
aXNDbG9zdXJlQ2FsbCkKICAgICAgICAgICAgIGppdC5zdG9yZTY0KEFzc2VtYmx5SGVscGVyczo6
VHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKGlubGluZUNhbGxGcmFtZS0+Y2Fs
bGVlQ29uc3RhbnQoKS0+c2NvcGUoKSkpKSwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKChW
aXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBKU1N0YWNrOjpT
Y29wZUNoYWluKSkpOwpAQCAtMTE3LDE0ICsxMTgsMTEgQEAgdm9pZCByZWlmeUlubGluZWRDYWxs
RnJhbWVzKENDYWxsSGVscGVycwogICAgICAgICBqaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6
OlRydXN0ZWRJbW0zMihpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCkpLCBBc3NlbWJs
eUhlbHBlcnM6OnBheWxvYWRGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5z
dGFja09mZnNldCArIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKSk7CiAgICAgICAgIGlmICghaW5s
aW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsKQogICAgICAgICAgICAgaml0LnN0b3JlNjQoQXNz
ZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoaW5saW5l
Q2FsbEZyYW1lLT5jYWxsZWVDb25zdGFudCgpKSkpLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NG
b3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIEpTU3Rh
Y2s6OkNhbGxlZSkpKTsKLSNlbHNlIC8vIFVTRShKU1ZBTFVFNjQpIC8vIHNvIHRoaXMgaXMgdGhl
IDMyLWJpdCBwYXJ0Ci0gICAgICAgIEdQUlJlZyBjYWxsZXJGcmFtZUdQUjsKLSAgICAgICAgaWYg
KGlubGluZUNhbGxGcmFtZS0+Y2FsbGVyLmlubGluZUNhbGxGcmFtZSkgewotICAgICAgICAgICAg
aml0LmFkZDMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGlubGluZUNhbGxGcmFtZS0+
Y2FsbGVyLmlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKiBzaXplb2YoRW5jb2RlZEpTVmFs
dWUpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QzKTsKLSAgICAg
ICAgICAgIGNhbGxlckZyYW1lR1BSID0gR1BSSW5mbzo6cmVnVDM7Ci0gICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgY2FsbGVyRnJhbWVHUFIgPSBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlcjsK
ICAgICAgICAgCisgICAgICAgIC8vIExlYXZlIHRoZSBjYXB0dXJlZCBhcmd1bWVudHMgaW4gcmVn
VDMuCisgICAgICAgIGlmIChiYXNlbGluZUNvZGVCbG9jay0+dXNlc0FyZ3VtZW50cygpKQorICAg
ICAgICAgICAgaml0LmxvYWRQdHIoQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKFZpcnR1YWxS
ZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgdW5tb2RpZmllZEFyZ3VtZW50
c1JlZ2lzdGVyKGJhc2VsaW5lQ29kZUJsb2NrLT5hcmd1bWVudHNSZWdpc3RlcigpKS5vZmZzZXQo
KSkpLCBHUFJJbmZvOjpyZWdUMyk7CisjZWxzZSAvLyBVU0UoSlNWQUxVRTY0KSAvLyBzbyB0aGlz
IGlzIHRoZSAzMi1iaXQgcGFydAogICAgICAgICBqaXQuc3RvcmVQdHIoQXNzZW1ibHlIZWxwZXJz
OjpUcnVzdGVkSW1tUHRyKGJhc2VsaW5lQ29kZUJsb2NrKSwgQXNzZW1ibHlIZWxwZXJzOjphZGRy
ZXNzRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBK
U1N0YWNrOjpDb2RlQmxvY2spKSk7CiAgICAgICAgIGppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVy
czo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBBc3NlbWJseUhlbHBlcnM6OnRhZ0Zv
cigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgSlNTdGFj
azo6U2NvcGVDaGFpbikpKTsKICAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3Vy
ZUNhbGwpCkBAIC0xMzksNyArMTM3LDE4IEBAIHZvaWQgcmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyhD
Q2FsbEhlbHBlcnMKICAgICAgICAgaml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVk
SW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIEFzc2VtYmx5SGVscGVyczo6dGFnRm9yKChWaXJ0dWFs
UmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBKU1N0YWNrOjpDYWxsZWUp
KSk7CiAgICAgICAgIGlmICghaW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsKQogICAgICAg
ICAgICAgaml0LnN0b3JlUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0cihpbmxpbmVD
YWxsRnJhbWUtPmNhbGxlZUNvbnN0YW50KCkpLCBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3Io
KFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIEpTU3RhY2s6
OkNhbGxlZSkpKTsKKworICAgICAgICAvLyBMZWF2ZSB0aGUgY2FwdHVyZWQgYXJndW1lbnRzIGlu
IHJlZ1QzLgorICAgICAgICBpZiAoYmFzZWxpbmVDb2RlQmxvY2stPnVzZXNBcmd1bWVudHMoKSkK
KyAgICAgICAgICAgIGppdC5sb2FkUHRyKEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihWaXJ0
dWFsUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIHVubW9kaWZpZWRBcmd1
bWVudHNSZWdpc3RlcihiYXNlbGluZUNvZGVCbG9jay0+YXJndW1lbnRzUmVnaXN0ZXIoKSkub2Zm
c2V0KCkpKSwgR1BSSW5mbzo6cmVnVDMpOwogI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpIC8vIGVu
ZGluZyB0aGUgI2Vsc2UgcGFydCwgc28gZGlyZWN0bHkgYWJvdmUgaXMgdGhlIDMyLWJpdCBwYXJ0
CisgICAgICAgIAorICAgICAgICBpZiAoYmFzZWxpbmVDb2RlQmxvY2stPnVzZXNBcmd1bWVudHMo
KSkgeworICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpKdW1wIG5vQXJndW1lbnRzID0gaml0
LmJyYW5jaFRlc3RQdHIoQXNzZW1ibHlIZWxwZXJzOjpaZXJvLCBHUFJJbmZvOjpyZWdUMyk7Cisg
ICAgICAgICAgICBqaXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGlubGlu
ZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKiBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSwgR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgICAgIGppdC5z
dG9yZVB0cihHUFJJbmZvOjpyZWdUMCwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86
OnJlZ1QzLCBBcmd1bWVudHM6Om9mZnNldE9mUmVnaXN0ZXJzKCkpKTsKKyAgICAgICAgICAgIG5v
QXJndW1lbnRzLmxpbmsoJmppdCk7CisgICAgICAgIH0KICAgICB9CiAKICNpZiBVU0UoSlNWQUxV
RTY0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCShyZXZpc2lvbiAxNTcwMTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTQ1LDE4ICsz
MTQ1LDE4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAg
ICAgICAgICAgICBVbmNvdW50YWJsZSwgSlNWYWx1ZVNvdXJjZSgpLCAwLAogICAgICAgICAgICAg
ICAgIG1faml0LmJyYW5jaDMyKAogICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywKLSAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9udW1B
cmd1bWVudHMpKSkpOworICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhiYXNlUmVnLCBBcmd1bWVudHM6Om9mZnNldE9mTnVtQXJndW1lbnRzKCkpKSk7CiAgICAgICAg
ICAgICBzcGVjdWxhdGlvbkNoZWNrKAogICAgICAgICAgICAgICAgIFVuY291bnRhYmxlLCBKU1Zh
bHVlU291cmNlKCksIDAsCiAgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoVGVzdFB0cigKICAg
ICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sCiAgICAgICAgICAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKAotICAgICAgICAgICAgICAgICAgICAgICAg
YmFzZVJlZywgT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9zbG93QXJndW1lbnREYXRhKSkp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VSZWcsIEFyZ3VtZW50czo6b2Zmc2V0T2ZT
bG93QXJndW1lbnREYXRhKCkpKSk7CiAgICAgCiAgICAgICAgICAgICBtX2ppdC5tb3ZlKHByb3Bl
cnR5UmVnLCBzY3JhdGNoMlJlZyk7CiAgICAgICAgICAgICBtX2ppdC5zaWduRXh0ZW5kMzJUb1B0
cihzY3JhdGNoMlJlZywgc2NyYXRjaDJSZWcpOwogICAgICAgICAgICAgbV9qaXQubG9hZFB0cigK
LSAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBPQkpFQ1Rf
T0ZGU0VUT0YoQXJndW1lbnRzLCBtX3JlZ2lzdGVycykpLAorICAgICAgICAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIEFyZ3VtZW50czo6b2Zmc2V0T2ZSZWdpc3RlcnMo
KSksCiAgICAgICAgICAgICAgICAgc2NyYXRjaFJlZyk7CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIG1faml0LnN0b3JlNjQoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gMTU3MDE1KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQy
NTcsMTggKzQyNTcsMTggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25B
cgogICAgICAgICBVbmNvdW50YWJsZSwgSlNWYWx1ZVNvdXJjZSgpLCAwLAogICAgICAgICBtX2pp
dC5icmFuY2gzMigKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHBy
b3BlcnR5UmVnLAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywg
T0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9udW1Bcmd1bWVudHMpKSkpOworICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgQXJndW1lbnRzOjpvZmZzZXRPZk51
bUFyZ3VtZW50cygpKSkpOwogICAgIHNwZWN1bGF0aW9uQ2hlY2soCiAgICAgICAgIFVuY291bnRh
YmxlLCBKU1ZhbHVlU291cmNlKCksIDAsCiAgICAgICAgIG1faml0LmJyYW5jaFRlc3RQdHIoCiAg
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywKICAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKAotICAgICAgICAgICAgICAgIGJhc2VSZWcsIE9CSkVDVF9PRkZTRVRP
RihBcmd1bWVudHMsIG1fc2xvd0FyZ3VtZW50RGF0YSkpKSk7CisgICAgICAgICAgICAgICAgYmFz
ZVJlZywgQXJndW1lbnRzOjpvZmZzZXRPZlNsb3dBcmd1bWVudERhdGEoKSkpKTsKICAgICAKICAg
ICBtX2ppdC5tb3ZlKHByb3BlcnR5UmVnLCByZXN1bHRSZWcpOwogICAgIG1faml0LnNpZ25FeHRl
bmQzMlRvUHRyKHJlc3VsdFJlZywgcmVzdWx0UmVnKTsKICAgICBtX2ppdC5sb2FkUHRyKAotICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBPQkpFQ1RfT0ZGU0VUT0YoQXJn
dW1lbnRzLCBtX3JlZ2lzdGVycykpLAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhi
YXNlUmVnLCBBcmd1bWVudHM6Om9mZnNldE9mUmVnaXN0ZXJzKCkpLAogICAgICAgICBzY3JhdGNo
UmVnKTsKICAgICAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQpAQCAtNDMxMiwxMCArNDMxMiwxMCBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QXJndW1lbnRzCiAgICAgICAgIFVuY291
bnRhYmxlLCBKU1ZhbHVlU291cmNlKCksIDAsCiAgICAgICAgIG1faml0LmJyYW5jaFRlc3Q4KAog
ICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sCi0gICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBPQkpFQ1RfT0ZGU0VUT0YoQXJndW1lbnRzLCBtX292
ZXJyb2RlTGVuZ3RoKSkpKTsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJh
c2VSZWcsIEFyZ3VtZW50czo6b2Zmc2V0T2ZPdmVycm9kZUxlbmd0aCgpKSkpOwogICAgIAogICAg
IG1faml0LmxvYWQzMigKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywg
T0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9udW1Bcmd1bWVudHMpKSwKKyAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgQXJndW1lbnRzOjpvZmZzZXRPZk51bUFyZ3Vt
ZW50cygpKSwKICAgICAgICAgcmVzdWx0UmVnKTsKICAgICBpbnQzMlJlc3VsdChyZXN1bHRSZWcs
IG5vZGUpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRz
LmgJKHJldmlzaW9uIDE1NzAxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
Z3VtZW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiBjbGFzcyBBcmd1bWVudHMgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogICAg
IGZyaWVuZCBjbGFzcyBKSVQ7Ci0gICAgZnJpZW5kIGNsYXNzIERGRzo6U3BlY3VsYXRpdmVKSVQ7
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0Rlc3RydWN0aWJsZU9iamVjdCBCYXNlOwogCkBAIC04
Nyw3ICs4NiwxMiBAQCBwdWJsaWM6CiAgICAgeyAKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKICAgICB9Ci0gICAgICAgIAorICAgIAorICAgIHN0
YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZOdW1Bcmd1bWVudHMoKSB7IHJldHVybiBPQkpFQ1RfT0ZG
U0VUT0YoQXJndW1lbnRzLCBtX251bUFyZ3VtZW50cyk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90
IG9mZnNldE9mUmVnaXN0ZXJzKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywg
bV9yZWdpc3RlcnMpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlNsb3dBcmd1bWVu
dERhdGEoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoQXJndW1lbnRzLCBtX3Nsb3dBcmd1bWVu
dERhdGEpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZk92ZXJyb2RlTGVuZ3RoKCkg
eyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9vdmVycm9kZUxlbmd0aCk7IH0K
KyAgICAKIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVy
dHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgT3ZlcnJpZGVzVmlzaXRDaGls
ZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU09iamVjdDo6U3RydWN0dXJlRmxh
Z3M7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzAxNSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEzLTEwLTA2ICBGaWxpcCBQaXps
byAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDogYml0d2lz
ZV9jYXN0PFdyaXRlQmFycmllcjxVbmtub3duPio+KGNhbGxGcmFtZSkgPT0gbV9yZWdpc3RlcnMg
aW4ganNjLWxheW91dC10ZXN0cy55YW1sL2pzL3NjcmlwdC10ZXN0cy9kZmctaW5saW5lLWFyZ3Vt
ZW50cy1jYXB0dXJlLXRocm93LWV4Y2VwdGlvbi5qcy5sYXlvdXQtZGZnLWVhZ2VyLW5vLWNqaXQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjQxOAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganMvc2Ny
aXB0LXRlc3RzL2RmZy1pbmxpbmUtYXJndW1lbnRzLWNhcHR1cmUtdGhyb3ctZXhjZXB0aW9uLmpz
OgorCiAyMDEzLTEwLTA2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgVW5pZmllZCB0ZXN0IGluZnJhc3RydWN0dXJlIHZpYSB0aGUganNjIHNoZWxsCkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZGZnLWlubGluZS1hcmd1bWVudHMtY2FwdHVyZS10
aHJvdy1leGNlcHRpb24uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRl
c3RzL2RmZy1pbmxpbmUtYXJndW1lbnRzLWNhcHR1cmUtdGhyb3ctZXhjZXB0aW9uLmpzCShyZXZp
c2lvbiAxNTcwMTUpCisrKyBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZGZnLWlubGluZS1h
cmd1bWVudHMtY2FwdHVyZS10aHJvdy1leGNlcHRpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTEs
NiArMSwzIEBACi0vLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIy
NDE4Ci0vL0AgcnVuTGF5b3V0VGVzdERlZmF1bHQKLQogZGVzY3JpcHRpb24oCiAiVGVzdHMgd2hh
dCBoYXBwZW5zIHdoZW4geW91IGhhdmUgYW4gaW5saW5lZCBmdW5jdGlvbiB0aGF0IGNhcHR1cmVz
IGFyZ3VtZW50cyBhbmQgdGhlbiB0aHJvd3MgYW4gZXhjZXB0aW9uLiIKICk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>213559</attachid>
            <date>2013-10-06 20:43:28 -0700</date>
            <delta_ts>2013-10-06 22:57:28 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>16769</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU3MDE3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBA
CisyMDEzLTEwLTA2ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QVNTRVJUSU9OIEZBSUxFRDogYml0d2lzZV9jYXN0PFdyaXRlQmFycmllcjxVbmtub3duPio+KGNh
bGxGcmFtZSkgPT0gbV9yZWdpc3RlcnMgaW4ganNjLWxheW91dC10ZXN0cy55YW1sL2pzL3Njcmlw
dC10ZXN0cy9kZmctaW5saW5lLWFyZ3VtZW50cy1jYXB0dXJlLXRocm93LWV4Y2VwdGlvbi5qcy5s
YXlvdXQtZGZnLWVhZ2VyLW5vLWNqaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyMjQxOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgaXMgcHJldHR5IGF3ZXNvbWUuIFdpdGggc3RhY2sgY29tcHJl
c3Npb24sIEFyZ3VtZW50cyBjcmVhdGVkIGluIHRoZSBERkcgd2lsbCBwb2ludAorICAgICAgICB0
aGVpciBtX3JlZ2lzdGVycyBwb2ludGVycyBpbnRvIGEgZGlmZmVyZW50IHNsYWIgb2Ygc3RhY2sg
dGhhbiB0aGV5IHdvdWxkIGhhdmUgaW4gYnl0ZQorICAgICAgICBjb2RlLgorCisgICAgICAgIEhl
bmNlIE9TUiBleGl0IG11c3QgcmVwb2ludCBhbnkgQXJndW1lbnRzIG9iamVjdHMnIG1fcmVnaXN0
ZXJzIHBvaW50ZXJzLiBJdCBwcmV2aW91c2x5CisgICAgICAgIG5lZ2xlY3RlZCB0byBkbyBzby4g
VGhpcyBwYXRjaCBmaXhlcyB0aGF0LgorICAgICAgICAKKyAgICAgICAgRml4aW5nIHRoaXMgdW52
ZWlsZWQgYW5vdGhlciBidWc6IHRoZSBzdGFjayByZXZlcnNhbCBicm9rZSB0aGUgcmVpZmljYXRp
b24gb2YgaW5saW5lZAorICAgICAgICBwaGFudG9tIGFyZ3VtZW50cy4KKyAgICAgICAgCisgICAg
ICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlcjMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZH
OjpPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KToKKyAgICAgICAgKiBkZmcvREZHT1NSRXhp
dENvbXBpbGVyNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6Ok9TUkV4aXRDb21waWxlcjo6Y29t
cGlsZUV4aXQpOgorICAgICAgICAqIGRmZy9ERkdPU1JFeGl0Q29tcGlsZXJDb21tb24uY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OnJlaWZ5SW5saW5lZENhbGxGcmFtZXMpOgorICAgICAgICAqIGRm
Zy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRCeVZhbE9uQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUdldEFyZ3VtZW50c0xlbmd0aCk6CisgICAgICAgICogZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKToKKyAgICAgICAgKiBydW50aW1lL0FyZ3VtZW50cy5oOgorICAgICAgICAoSlND
OjpBcmd1bWVudHM6Om9mZnNldE9mTnVtQXJndW1lbnRzKToKKyAgICAgICAgKEpTQzo6QXJndW1l
bnRzOjpvZmZzZXRPZlJlZ2lzdGVycyk6CisgICAgICAgIChKU0M6OkFyZ3VtZW50czo6b2Zmc2V0
T2ZTbG93QXJndW1lbnREYXRhKToKKyAgICAgICAgKEpTQzo6QXJndW1lbnRzOjpvZmZzZXRPZk92
ZXJyb2RlTGVuZ3RoKToKKwogMjAxMy0xMC0wNiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUu
Y29tPgogCiAgICAgICAgIFVuaWZpZWQgdGVzdCBpbmZyYXN0cnVjdHVyZSB2aWEgdGhlIGpzYyBz
aGVsbApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIz
Ml82NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JF
eGl0Q29tcGlsZXIzMl82NC5jcHAJKHJldmlzaW9uIDE1NzAxNykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyMzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNTMsNiArMzUzLDEyIEBAIHZvaWQgT1NSRXhpdENvbXBpbGVyOjpjb21waWxlRXhpdChjb25z
dCAKICAgICAgICAgICAgIAogICAgICAgICBjYXNlIEFyZ3VtZW50c1RoYXRXZXJlTm90Q3JlYXRl
ZDoKICAgICAgICAgICAgIGhhdmVBcmd1bWVudHMgPSB0cnVlOworICAgICAgICAgICAgbV9qaXQu
c3RvcmUzMigKKyAgICAgICAgICAgICAgICBBc3NlbWJseUhlbHBlcnM6OlRydXN0ZWRJbW0zMihK
U1ZhbHVlKCkudGFnKCkpLAorICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6dGFnRm9y
KG9wZXJhbmQpKTsKKyAgICAgICAgICAgIG1faml0LnN0b3JlMzIoCisgICAgICAgICAgICAgICAg
QXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tMzIoSlNWYWx1ZSgpLnBheWxvYWQoKSksCisgICAg
ICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpwYXlsb2FkRm9yKG9wZXJhbmQpKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCiAgICAgICAgIGRlZmF1bHQ6CkBAIC00MTksNyAr
NDI1LDcgQEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNvbXBpbGVFeGl0KGNvbnN0IAogICAgICAg
ICAgICAgZm9yIChJbmxpbmVDYWxsRnJhbWUqIGN1cnJlbnQgPSBleGl0Lm1fY29kZU9yaWdpbi5p
bmxpbmVDYWxsRnJhbWU7CiAgICAgICAgICAgICAgICAgIGN1cnJlbnQ7CiAgICAgICAgICAgICAg
ICAgIGN1cnJlbnQgPSBjdXJyZW50LT5jYWxsZXIuaW5saW5lQ2FsbEZyYW1lKSB7Ci0gICAgICAg
ICAgICAgICAgaWYgKGN1cnJlbnQtPnN0YWNrT2Zmc2V0IDw9IG9wZXJhbmQpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoY3VycmVudC0+c3RhY2tPZmZzZXQgPj0gb3BlcmFuZCkgewogICAgICAgICAg
ICAgICAgICAgICBpbmxpbmVDYWxsRnJhbWUgPSBjdXJyZW50OwogICAgICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09TUkV4aXRDb21waWxlcjY0LmNwcAkocmV2aXNpb24gMTU3MDE3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXI2NC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMxNyw2ICszMTcsMTEgQEAgdm9pZCBPU1JFeGl0Q29tcGlsZXI6OmNv
bXBpbGVFeGl0KGNvbnN0IAogICAgICAgICAgICAgCiAgICAgICAgIGNhc2UgQXJndW1lbnRzVGhh
dFdlcmVOb3RDcmVhdGVkOgogICAgICAgICAgICAgaGF2ZUFyZ3VtZW50cyA9IHRydWU7CisgICAg
ICAgICAgICAvLyBXZSBjYW4ndCByZXN0b3JlIHRoaXMgeWV0IGJ1dCB3ZSBjYW4gbWFrZSBzdXJl
IHRoYXQgdGhlIHN0YWNrIGFwcGVhcnMKKyAgICAgICAgICAgIC8vIHNhbmUuCisgICAgICAgICAg
ICBtX2ppdC5zdG9yZTY0KAorICAgICAgICAgICAgICAgIEFzc2VtYmx5SGVscGVyczo6VHJ1c3Rl
ZEltbTY0KEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKCkpKSwKKyAgICAgICAgICAgICAgICBBc3Nl
bWJseUhlbHBlcnM6OmFkZHJlc3NGb3Iob3BlcmFuZCkpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAKICAgICAgICAgZGVmYXVsdDoKQEAgLTM4Myw3ICszODgsNyBAQCB2b2lkIE9T
UkV4aXRDb21waWxlcjo6Y29tcGlsZUV4aXQoY29uc3QgCiAgICAgICAgICAgICBmb3IgKElubGlu
ZUNhbGxGcmFtZSogY3VycmVudCA9IGV4aXQubV9jb2RlT3JpZ2luLmlubGluZUNhbGxGcmFtZTsK
ICAgICAgICAgICAgICAgICAgY3VycmVudDsKICAgICAgICAgICAgICAgICAgY3VycmVudCA9IGN1
cnJlbnQtPmNhbGxlci5pbmxpbmVDYWxsRnJhbWUpIHsKLSAgICAgICAgICAgICAgICBpZiAoY3Vy
cmVudC0+c3RhY2tPZmZzZXQgPD0gb3BlcmFuZCkgeworICAgICAgICAgICAgICAgIGlmIChjdXJy
ZW50LT5zdGFja09mZnNldCA+PSBvcGVyYW5kKSB7CiAgICAgICAgICAgICAgICAgICAgIGlubGlu
ZUNhbGxGcmFtZSA9IGN1cnJlbnQ7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENv
bXBpbGVyQ29tbW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAJKHJldmlzaW9uIDE1NzAxNykKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKERGR19KSVQpCiAKKyNpbmNs
dWRlICJBcmd1bWVudHMuaCIKICNpbmNsdWRlICJERkdPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
SlNDSlNWYWx1ZUlubGluZXMuaCIKICNpbmNsdWRlICJPcGVyYXRpb25zLmgiCkBAIC05OSw3ICsx
MDAsNiBAQCB2b2lkIHJlaWZ5SW5saW5lZENhbGxGcmFtZXMoQ0NhbGxIZWxwZXJzCiAgICAgICAg
IAogICAgICAgICB2b2lkKiBqdW1wVGFyZ2V0ID0gY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2Nh
dGlvbi5leGVjdXRhYmxlQWRkcmVzcygpOwogCi0jaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAg
R1BSUmVnIGNhbGxlckZyYW1lR1BSOwogICAgICAgICBpZiAoaW5saW5lQ2FsbEZyYW1lLT5jYWxs
ZXIuaW5saW5lQ2FsbEZyYW1lKSB7CiAgICAgICAgICAgICBqaXQuYWRkUHRyKEFzc2VtYmx5SGVs
cGVyczo6VHJ1c3RlZEltbTMyKGlubGluZUNhbGxGcmFtZS0+Y2FsbGVyLmlubGluZUNhbGxGcmFt
ZS0+c3RhY2tPZmZzZXQgKiBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSwgR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QzKTsKQEAgLTEwNyw2ICsxMDcsNyBAQCB2b2lkIHJl
aWZ5SW5saW5lZENhbGxGcmFtZXMoQ0NhbGxIZWxwZXJzCiAgICAgICAgIH0gZWxzZQogICAgICAg
ICAgICAgY2FsbGVyRnJhbWVHUFIgPSBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlcjsKICAgICAg
ICAgCisjaWYgVVNFKEpTVkFMVUU2NCkKICAgICAgICAgaml0LnN0b3JlUHRyKEFzc2VtYmx5SGVs
cGVyczo6VHJ1c3RlZEltbVB0cihiYXNlbGluZUNvZGVCbG9jayksIEFzc2VtYmx5SGVscGVyczo6
YWRkcmVzc0ZvcigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0
ICsgSlNTdGFjazo6Q29kZUJsb2NrKSkpOwogICAgICAgICBpZiAoIWlubGluZUNhbGxGcmFtZS0+
aXNDbG9zdXJlQ2FsbCkKICAgICAgICAgICAgIGppdC5zdG9yZTY0KEFzc2VtYmx5SGVscGVyczo6
VHJ1c3RlZEltbTY0KEpTVmFsdWU6OmVuY29kZShKU1ZhbHVlKGlubGluZUNhbGxGcmFtZS0+Y2Fs
bGVlQ29uc3RhbnQoKS0+c2NvcGUoKSkpKSwgQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKChW
aXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBKU1N0YWNrOjpT
Y29wZUNoYWluKSkpOwpAQCAtMTE3LDE0ICsxMTgsMTEgQEAgdm9pZCByZWlmeUlubGluZWRDYWxs
RnJhbWVzKENDYWxsSGVscGVycwogICAgICAgICBqaXQuc3RvcmUzMihBc3NlbWJseUhlbHBlcnM6
OlRydXN0ZWRJbW0zMihpbmxpbmVDYWxsRnJhbWUtPmFyZ3VtZW50cy5zaXplKCkpLCBBc3NlbWJs
eUhlbHBlcnM6OnBheWxvYWRGb3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5z
dGFja09mZnNldCArIEpTU3RhY2s6OkFyZ3VtZW50Q291bnQpKSk7CiAgICAgICAgIGlmICghaW5s
aW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsKQogICAgICAgICAgICAgaml0LnN0b3JlNjQoQXNz
ZW1ibHlIZWxwZXJzOjpUcnVzdGVkSW1tNjQoSlNWYWx1ZTo6ZW5jb2RlKEpTVmFsdWUoaW5saW5l
Q2FsbEZyYW1lLT5jYWxsZWVDb25zdGFudCgpKSkpLCBBc3NlbWJseUhlbHBlcnM6OmFkZHJlc3NG
b3IoKFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIEpTU3Rh
Y2s6OkNhbGxlZSkpKTsKLSNlbHNlIC8vIFVTRShKU1ZBTFVFNjQpIC8vIHNvIHRoaXMgaXMgdGhl
IDMyLWJpdCBwYXJ0Ci0gICAgICAgIEdQUlJlZyBjYWxsZXJGcmFtZUdQUjsKLSAgICAgICAgaWYg
KGlubGluZUNhbGxGcmFtZS0+Y2FsbGVyLmlubGluZUNhbGxGcmFtZSkgewotICAgICAgICAgICAg
aml0LmFkZDMyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGlubGluZUNhbGxGcmFtZS0+
Y2FsbGVyLmlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKiBzaXplb2YoRW5jb2RlZEpTVmFs
dWUpKSwgR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QzKTsKLSAgICAg
ICAgICAgIGNhbGxlckZyYW1lR1BSID0gR1BSSW5mbzo6cmVnVDM7Ci0gICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgY2FsbGVyRnJhbWVHUFIgPSBHUFJJbmZvOjpjYWxsRnJhbWVSZWdpc3RlcjsK
ICAgICAgICAgCisgICAgICAgIC8vIExlYXZlIHRoZSBjYXB0dXJlZCBhcmd1bWVudHMgaW4gcmVn
VDMuCisgICAgICAgIGlmIChiYXNlbGluZUNvZGVCbG9jay0+dXNlc0FyZ3VtZW50cygpKQorICAg
ICAgICAgICAgaml0LmxvYWRQdHIoQXNzZW1ibHlIZWxwZXJzOjphZGRyZXNzRm9yKFZpcnR1YWxS
ZWdpc3RlcihpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgdW5tb2RpZmllZEFyZ3VtZW50
c1JlZ2lzdGVyKGJhc2VsaW5lQ29kZUJsb2NrLT5hcmd1bWVudHNSZWdpc3RlcigpKS5vZmZzZXQo
KSkpLCBHUFJJbmZvOjpyZWdUMyk7CisjZWxzZSAvLyBVU0UoSlNWQUxVRTY0KSAvLyBzbyB0aGlz
IGlzIHRoZSAzMi1iaXQgcGFydAogICAgICAgICBqaXQuc3RvcmVQdHIoQXNzZW1ibHlIZWxwZXJz
OjpUcnVzdGVkSW1tUHRyKGJhc2VsaW5lQ29kZUJsb2NrKSwgQXNzZW1ibHlIZWxwZXJzOjphZGRy
ZXNzRm9yKChWaXJ0dWFsUmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBK
U1N0YWNrOjpDb2RlQmxvY2spKSk7CiAgICAgICAgIGppdC5zdG9yZTMyKEFzc2VtYmx5SGVscGVy
czo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6OkNlbGxUYWcpLCBBc3NlbWJseUhlbHBlcnM6OnRhZ0Zv
cigoVmlydHVhbFJlZ2lzdGVyKShpbmxpbmVDYWxsRnJhbWUtPnN0YWNrT2Zmc2V0ICsgSlNTdGFj
azo6U2NvcGVDaGFpbikpKTsKICAgICAgICAgaWYgKCFpbmxpbmVDYWxsRnJhbWUtPmlzQ2xvc3Vy
ZUNhbGwpCkBAIC0xMzksNyArMTM3LDE4IEBAIHZvaWQgcmVpZnlJbmxpbmVkQ2FsbEZyYW1lcyhD
Q2FsbEhlbHBlcnMKICAgICAgICAgaml0LnN0b3JlMzIoQXNzZW1ibHlIZWxwZXJzOjpUcnVzdGVk
SW1tMzIoSlNWYWx1ZTo6Q2VsbFRhZyksIEFzc2VtYmx5SGVscGVyczo6dGFnRm9yKChWaXJ0dWFs
UmVnaXN0ZXIpKGlubGluZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKyBKU1N0YWNrOjpDYWxsZWUp
KSk7CiAgICAgICAgIGlmICghaW5saW5lQ2FsbEZyYW1lLT5pc0Nsb3N1cmVDYWxsKQogICAgICAg
ICAgICAgaml0LnN0b3JlUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbVB0cihpbmxpbmVD
YWxsRnJhbWUtPmNhbGxlZUNvbnN0YW50KCkpLCBBc3NlbWJseUhlbHBlcnM6OnBheWxvYWRGb3Io
KFZpcnR1YWxSZWdpc3RlcikoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIEpTU3RhY2s6
OkNhbGxlZSkpKTsKKworICAgICAgICAvLyBMZWF2ZSB0aGUgY2FwdHVyZWQgYXJndW1lbnRzIGlu
IHJlZ1QzLgorICAgICAgICBpZiAoYmFzZWxpbmVDb2RlQmxvY2stPnVzZXNBcmd1bWVudHMoKSkK
KyAgICAgICAgICAgIGppdC5sb2FkUHRyKEFzc2VtYmx5SGVscGVyczo6cGF5bG9hZEZvcihWaXJ0
dWFsUmVnaXN0ZXIoaW5saW5lQ2FsbEZyYW1lLT5zdGFja09mZnNldCArIHVubW9kaWZpZWRBcmd1
bWVudHNSZWdpc3RlcihiYXNlbGluZUNvZGVCbG9jay0+YXJndW1lbnRzUmVnaXN0ZXIoKSkub2Zm
c2V0KCkpKSwgR1BSSW5mbzo6cmVnVDMpOwogI2VuZGlmIC8vIFVTRShKU1ZBTFVFNjQpIC8vIGVu
ZGluZyB0aGUgI2Vsc2UgcGFydCwgc28gZGlyZWN0bHkgYWJvdmUgaXMgdGhlIDMyLWJpdCBwYXJ0
CisgICAgICAgIAorICAgICAgICBpZiAoYmFzZWxpbmVDb2RlQmxvY2stPnVzZXNBcmd1bWVudHMo
KSkgeworICAgICAgICAgICAgQXNzZW1ibHlIZWxwZXJzOjpKdW1wIG5vQXJndW1lbnRzID0gaml0
LmJyYW5jaFRlc3RQdHIoQXNzZW1ibHlIZWxwZXJzOjpaZXJvLCBHUFJJbmZvOjpyZWdUMyk7Cisg
ICAgICAgICAgICBqaXQuYWRkUHRyKEFzc2VtYmx5SGVscGVyczo6VHJ1c3RlZEltbTMyKGlubGlu
ZUNhbGxGcmFtZS0+c3RhY2tPZmZzZXQgKiBzaXplb2YoRW5jb2RlZEpTVmFsdWUpKSwgR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OnJlZ1QwKTsKKyAgICAgICAgICAgIGppdC5z
dG9yZVB0cihHUFJJbmZvOjpyZWdUMCwgQXNzZW1ibHlIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86
OnJlZ1QzLCBBcmd1bWVudHM6Om9mZnNldE9mUmVnaXN0ZXJzKCkpKTsKKyAgICAgICAgICAgIG5v
QXJndW1lbnRzLmxpbmsoJmppdCk7CisgICAgICAgIH0KICAgICB9CiAKICNpZiBVU0UoSlNWQUxV
RTY0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCShyZXZpc2lvbiAxNTcwMTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTQ1LDE4ICsz
MTQ1LDE4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAg
ICAgICAgICAgICBVbmNvdW50YWJsZSwgSlNWYWx1ZVNvdXJjZSgpLCAwLAogICAgICAgICAgICAg
ICAgIG1faml0LmJyYW5jaDMyKAogICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6
QWJvdmVPckVxdWFsLCBwcm9wZXJ0eVJlZywKLSAgICAgICAgICAgICAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9udW1B
cmd1bWVudHMpKSkpOworICAgICAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVz
cyhiYXNlUmVnLCBBcmd1bWVudHM6Om9mZnNldE9mTnVtQXJndW1lbnRzKCkpKSk7CiAgICAgICAg
ICAgICBzcGVjdWxhdGlvbkNoZWNrKAogICAgICAgICAgICAgICAgIFVuY291bnRhYmxlLCBKU1Zh
bHVlU291cmNlKCksIDAsCiAgICAgICAgICAgICAgICAgbV9qaXQuYnJhbmNoVGVzdFB0cigKICAg
ICAgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sCiAgICAgICAgICAgICAg
ICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKAotICAgICAgICAgICAgICAgICAgICAgICAg
YmFzZVJlZywgT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9zbG93QXJndW1lbnREYXRhKSkp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VSZWcsIEFyZ3VtZW50czo6b2Zmc2V0T2ZT
bG93QXJndW1lbnREYXRhKCkpKSk7CiAgICAgCiAgICAgICAgICAgICBtX2ppdC5tb3ZlKHByb3Bl
cnR5UmVnLCBzY3JhdGNoMlJlZyk7CiAgICAgICAgICAgICBtX2ppdC5zaWduRXh0ZW5kMzJUb1B0
cihzY3JhdGNoMlJlZywgc2NyYXRjaDJSZWcpOwogICAgICAgICAgICAgbV9qaXQubG9hZFB0cigK
LSAgICAgICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBPQkpFQ1Rf
T0ZGU0VUT0YoQXJndW1lbnRzLCBtX3JlZ2lzdGVycykpLAorICAgICAgICAgICAgICAgIE1hY3Jv
QXNzZW1ibGVyOjpBZGRyZXNzKGJhc2VSZWcsIEFyZ3VtZW50czo6b2Zmc2V0T2ZSZWdpc3RlcnMo
KSksCiAgICAgICAgICAgICAgICAgc2NyYXRjaFJlZyk7CiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIG1faml0LnN0b3JlNjQoCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gMTU3MDE3KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQy
NTcsMTggKzQyNTcsMTggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsT25B
cgogICAgICAgICBVbmNvdW50YWJsZSwgSlNWYWx1ZVNvdXJjZSgpLCAwLAogICAgICAgICBtX2pp
dC5icmFuY2gzMigKICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBYm92ZU9yRXF1YWwsIHBy
b3BlcnR5UmVnLAotICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywg
T0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9udW1Bcmd1bWVudHMpKSkpOworICAgICAgICAg
ICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgQXJndW1lbnRzOjpvZmZzZXRPZk51
bUFyZ3VtZW50cygpKSkpOwogICAgIHNwZWN1bGF0aW9uQ2hlY2soCiAgICAgICAgIFVuY291bnRh
YmxlLCBKU1ZhbHVlU291cmNlKCksIDAsCiAgICAgICAgIG1faml0LmJyYW5jaFRlc3RQdHIoCiAg
ICAgICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6Tm9uWmVybywKICAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpBZGRyZXNzKAotICAgICAgICAgICAgICAgIGJhc2VSZWcsIE9CSkVDVF9PRkZTRVRP
RihBcmd1bWVudHMsIG1fc2xvd0FyZ3VtZW50RGF0YSkpKSk7CisgICAgICAgICAgICAgICAgYmFz
ZVJlZywgQXJndW1lbnRzOjpvZmZzZXRPZlNsb3dBcmd1bWVudERhdGEoKSkpKTsKICAgICAKICAg
ICBtX2ppdC5tb3ZlKHByb3BlcnR5UmVnLCByZXN1bHRSZWcpOwogICAgIG1faml0LnNpZ25FeHRl
bmQzMlRvUHRyKHJlc3VsdFJlZywgcmVzdWx0UmVnKTsKICAgICBtX2ppdC5sb2FkUHRyKAotICAg
ICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBPQkpFQ1RfT0ZGU0VUT0YoQXJn
dW1lbnRzLCBtX3JlZ2lzdGVycykpLAorICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhi
YXNlUmVnLCBBcmd1bWVudHM6Om9mZnNldE9mUmVnaXN0ZXJzKCkpLAogICAgICAgICBzY3JhdGNo
UmVnKTsKICAgICAKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQpAQCAtNDMxMiwxMCArNDMxMiwxMCBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QXJndW1lbnRzCiAgICAgICAgIFVuY291
bnRhYmxlLCBKU1ZhbHVlU291cmNlKCksIDAsCiAgICAgICAgIG1faml0LmJyYW5jaFRlc3Q4KAog
ICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Ok5vblplcm8sCi0gICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6QWRkcmVzcyhiYXNlUmVnLCBPQkpFQ1RfT0ZGU0VUT0YoQXJndW1lbnRzLCBtX292
ZXJyb2RlTGVuZ3RoKSkpKTsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKGJh
c2VSZWcsIEFyZ3VtZW50czo6b2Zmc2V0T2ZPdmVycm9kZUxlbmd0aCgpKSkpOwogICAgIAogICAg
IG1faml0LmxvYWQzMigKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywg
T0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9udW1Bcmd1bWVudHMpKSwKKyAgICAgICAgTWFj
cm9Bc3NlbWJsZXI6OkFkZHJlc3MoYmFzZVJlZywgQXJndW1lbnRzOjpvZmZzZXRPZk51bUFyZ3Vt
ZW50cygpKSwKICAgICAgICAgcmVzdWx0UmVnKTsKICAgICBpbnQzMlJlc3VsdChyZXN1bHRSZWcs
IG5vZGUpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQXJndW1lbnRz
LmgJKHJldmlzaW9uIDE1NzAxNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Fy
Z3VtZW50cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogCiBjbGFzcyBBcmd1bWVudHMgOiBwdWJsaWMgSlNEZXN0cnVjdGlibGVPYmplY3QgewogICAg
IGZyaWVuZCBjbGFzcyBKSVQ7Ci0gICAgZnJpZW5kIGNsYXNzIERGRzo6U3BlY3VsYXRpdmVKSVQ7
CiBwdWJsaWM6CiAgICAgdHlwZWRlZiBKU0Rlc3RydWN0aWJsZU9iamVjdCBCYXNlOwogCkBAIC04
Nyw3ICs4NiwxMiBAQCBwdWJsaWM6CiAgICAgeyAKICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwg
U3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOyAKICAgICB9Ci0gICAgICAgIAorICAgIAorICAgIHN0
YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZOdW1Bcmd1bWVudHMoKSB7IHJldHVybiBPQkpFQ1RfT0ZG
U0VUT0YoQXJndW1lbnRzLCBtX251bUFyZ3VtZW50cyk7IH0KKyAgICBzdGF0aWMgcHRyZGlmZl90
IG9mZnNldE9mUmVnaXN0ZXJzKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywg
bV9yZWdpc3RlcnMpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZlNsb3dBcmd1bWVu
dERhdGEoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoQXJndW1lbnRzLCBtX3Nsb3dBcmd1bWVu
dERhdGEpOyB9CisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZk92ZXJyb2RlTGVuZ3RoKCkg
eyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKEFyZ3VtZW50cywgbV9vdmVycm9kZUxlbmd0aCk7IH0K
KyAgICAKIHByb3RlY3RlZDoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJlRmxh
Z3MgPSBPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBJbnRlcmNlcHRzR2V0T3duUHJvcGVy
dHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIHwgT3ZlcnJpZGVzVmlzaXRDaGls
ZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBKU09iamVjdDo6U3RydWN0dXJlRmxh
Z3M7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1NzAxNykKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEzLTEwLTA2ICBGaWxpcCBQaXps
byAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDogYml0d2lz
ZV9jYXN0PFdyaXRlQmFycmllcjxVbmtub3duPio+KGNhbGxGcmFtZSkgPT0gbV9yZWdpc3RlcnMg
aW4ganNjLWxheW91dC10ZXN0cy55YW1sL2pzL3NjcmlwdC10ZXN0cy9kZmctaW5saW5lLWFyZ3Vt
ZW50cy1jYXB0dXJlLXRocm93LWV4Y2VwdGlvbi5qcy5sYXlvdXQtZGZnLWVhZ2VyLW5vLWNqaXQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMjQxOAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICoganMvc2Ny
aXB0LXRlc3RzL2RmZy1hcmd1bWVudHMtb3NyLWV4aXQtbXVsdGlwbGUtYmxvY2tzLWJlZm9yZS1l
eGl0LmpzOgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9kZmctYXJndW1lbnRzLW9zci1leGl0
LW11bHRpcGxlLWJsb2Nrcy5qczoKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvZGZnLWFyZ3Vt
ZW50cy1vc3ItZXhpdC5qczoKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvZGZnLWlubGluZS1h
cmd1bWVudHMtY2FwdHVyZS10aHJvdy1leGNlcHRpb24uanM6CisKIDIwMTMtMTAtMDYgIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBqc2MtbGF5b3V0LXRlc3RzLnlh
bWwvanMvc2NyaXB0LXRlc3RzL2RmZy1hcmd1bWVudHMtb3NyLWV4aXQuanMubGF5b3V0LWRmZy1l
YWdlci1uby1jaml0IGZhaWxzIGluIHJlbGVhc2UgbW9kZSBvbiB0aGUgYm90cwpJbmRleDogTGF5
b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2RmZy1hcmd1bWVudHMtb3NyLWV4aXQtbXVsdGlwbGUt
YmxvY2tzLWJlZm9yZS1leGl0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Njcmlw
dC10ZXN0cy9kZmctYXJndW1lbnRzLW9zci1leGl0LW11bHRpcGxlLWJsb2Nrcy1iZWZvcmUtZXhp
dC5qcwkocmV2aXNpb24gMTU3MDE3KQorKysgTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2Rm
Zy1hcmd1bWVudHMtb3NyLWV4aXQtbXVsdGlwbGUtYmxvY2tzLWJlZm9yZS1leGl0LmpzCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDYgKzEsMyBAQAotLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyMjQzNgotLy9AIHJ1bkxheW91dFRlc3REZWZhdWx0Ci0KIGRlc2NyaXB0
aW9uKAogIlRlc3RzIGFsaWFzZWQgdXNlcyBvZiAnYXJndW1lbnRzJyB0aGF0IHJlcXVpcmUgcmVp
ZmljYXRpb24gb2YgdGhlIEFyZ3VtZW50cyBvYmplY3Qgb24gT1NSIGV4aXQsIGluIHRoZSBjYXNl
IHRoYXQgdGhlcmUgaXMgc29tZSBpbnRlcmVzdGluZyBjb250cm9sIGZsb3cgcHJpb3IgdG8gdGhl
IGV4aXQuIgogKTsKSW5kZXg6IExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9kZmctYXJndW1l
bnRzLW9zci1leGl0LW11bHRpcGxlLWJsb2Nrcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9qcy9zY3JpcHQtdGVzdHMvZGZnLWFyZ3VtZW50cy1vc3ItZXhpdC1tdWx0aXBsZS1ibG9ja3Mu
anMJKHJldmlzaW9uIDE1NzAxNykKKysrIExheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9kZmct
YXJndW1lbnRzLW9zci1leGl0LW11bHRpcGxlLWJsb2Nrcy5qcwkod29ya2luZyBjb3B5KQpAQCAt
MSw2ICsxLDMgQEAKLS8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjI0MzYKLS8vQCBydW5MYXlvdXRUZXN0RGVmYXVsdAotCiBkZXNjcmlwdGlvbigKICJUZXN0cyBh
bGlhc2VkIHVzZXMgb2YgJ2FyZ3VtZW50cycgdGhhdCByZXF1aXJlIHJlaWZpY2F0aW9uIG9mIHRo
ZSBBcmd1bWVudHMgb2JqZWN0IG9uIE9TUiBleGl0LCBpbiB0aGUgY2FzZSB0aGF0IHRoZXJlIGlz
IHNvbWUgaW50ZXJlc3RpbmcgY29udHJvbCBmbG93LiIKICk7CkluZGV4OiBMYXlvdXRUZXN0cy9q
cy9zY3JpcHQtdGVzdHMvZGZnLWFyZ3VtZW50cy1vc3ItZXhpdC5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvZGZnLWFyZ3VtZW50cy1vc3ItZXhpdC5qcwkocmV2
aXNpb24gMTU3MDE3KQorKysgTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2RmZy1hcmd1bWVu
dHMtb3NyLWV4aXQuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSwzIEBACi0vLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIyNDM2Ci0vL0AgcnVuTGF5b3V0VGVz
dERlZmF1bHQKLQogZGVzY3JpcHRpb24oCiAiVGVzdHMgYWxpYXNlZCB1c2VzIG9mICdhcmd1bWVu
dHMnIHRoYXQgcmVxdWlyZSByZWlmaWNhdGlvbiBvZiB0aGUgQXJndW1lbnRzIG9iamVjdCBvbiBP
U1IgZXhpdC4iCiApOwpJbmRleDogTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2RmZy1pbmxp
bmUtYXJndW1lbnRzLWNhcHR1cmUtdGhyb3ctZXhjZXB0aW9uLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9kZmctaW5saW5lLWFyZ3VtZW50cy1jYXB0dXJlLXRo
cm93LWV4Y2VwdGlvbi5qcwkocmV2aXNpb24gMTU3MDE3KQorKysgTGF5b3V0VGVzdHMvanMvc2Ny
aXB0LXRlc3RzL2RmZy1pbmxpbmUtYXJndW1lbnRzLWNhcHR1cmUtdGhyb3ctZXhjZXB0aW9uLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsMyBAQAotLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyMjQxOAotLy9AIHJ1bkxheW91dFRlc3REZWZhdWx0Ci0KIGRl
c2NyaXB0aW9uKAogIlRlc3RzIHdoYXQgaGFwcGVucyB3aGVuIHlvdSBoYXZlIGFuIGlubGluZWQg
ZnVuY3Rpb24gdGhhdCBjYXB0dXJlcyBhcmd1bWVudHMgYW5kIHRoZW4gdGhyb3dzIGFuIGV4Y2Vw
dGlvbi4iCiApOwo=
</data>
<flag name="review"
          id="235926"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>