<?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>144971</bug_id>
          
          <creation_ts>2015-05-13 14:23:44 -0700</creation_ts>
          <short_desc>Networking process on iOS can be suspended and never exit</short_desc>
          <delta_ts>2015-05-18 15:10:23 -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>WebKit2</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>145030</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>andersca</cc>
    
    <cc>barraclough</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1094587</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-13 14:23:44 -0700</bug_when>
    <thetext>Networking process on iOS can be suspended and never exit

This is for apps that use multiple WKProcessPools and sometimes deallocate a WKProcessPool that had an active Networking process.

In those cases, the Networking process can be suspended instead of terminated, and once suspended it can no longer respond to further messages.

Furthermore, calling RunLoop::main().stop() is not aggressive enough to actually terminate the process - _exit is bulletproof.

rdar://problem/20368630</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094588</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-13 14:24:40 -0700</bug_when>
    <thetext>Note: The bug exists on iOS, but the fix of having the Networking process explicitly kill itself instead of implicitly noticing an IPC::Connection close is reasonable to implement cross-platform</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094590</commentid>
    <comment_count>2</comment_count>
      <attachid>253060</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-13 14:32:55 -0700</bug_when>
    <thetext>Created attachment 253060
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094592</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-13 14:38:27 -0700</bug_when>
    <thetext>Apparently big changes to ProcessThrottler in the last couple of days. Updating and fixing the build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094603</commentid>
    <comment_count>4</comment_count>
      <attachid>253063</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-13 15:15:36 -0700</bug_when>
    <thetext>Created attachment 253063
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094620</commentid>
    <comment_count>5</comment_count>
      <attachid>253067</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-13 15:32:59 -0700</bug_when>
    <thetext>Created attachment 253067
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094855</commentid>
    <comment_count>6</comment_count>
      <attachid>253067</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-14 11:37:36 -0700</bug_when>
    <thetext>Comment on attachment 253067
Patch v3

Sam, Gavin, and I looked at this in person and came up with a plan for even more changes.  Removing r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095286</commentid>
    <comment_count>7</comment_count>
      <attachid>253235</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-15 16:11:05 -0700</bug_when>
    <thetext>Created attachment 253235
New patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095482</commentid>
    <comment_count>8</comment_count>
      <attachid>253235</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-05-17 10:03:15 -0700</bug_when>
    <thetext>Comment on attachment 253235
New patch v1

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

r=me assuming you have a good way to test the new behavior

&gt; Source/WebKit2/Shared/ChildProcess.cpp:166
&gt; +    // FIXME: Subclasses of ChildProcess should all have a chance to do some explicit cleanup
&gt; +    // before the process is terminated.

I think this FIXME is too vague. What kinds of cleanup specifically are you thinking about? While this comment may be correct, I’m not sure we should have a FIXME here unless we know of some specific cleanup that is not being done at this time. We don’t need a FIXME about having a hook that we wouldn’t have a reason to do at this time.

&gt; Source/WebKit2/Shared/ChildProcess.h:100
&gt; +    virtual void didReceiveMessage(IPC::Connection&amp;, IPC::MessageDecoder&amp;) override;

Can this override be private instead of protected?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095627</commentid>
    <comment_count>9</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-18 09:26:01 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 253235 [details]
&gt; New patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=253235&amp;action=review
&gt; 
&gt; r=me assuming you have a good way to test the new behavior

Indeed.

&gt; 
&gt; &gt; Source/WebKit2/Shared/ChildProcess.cpp:166
&gt; &gt; +    // FIXME: Subclasses of ChildProcess should all have a chance to do some explicit cleanup
&gt; &gt; +    // before the process is terminated.
&gt; 
&gt; I think this FIXME is too vague. What kinds of cleanup specifically are you
&gt; thinking about? While this comment may be correct, I’m not sure we should
&gt; have a FIXME here unless we know of some specific cleanup that is not being
&gt; done at this time. We don’t need a FIXME about having a hook that we
&gt; wouldn’t have a reason to do at this time.

Fair enough.

&gt; &gt; Source/WebKit2/Shared/ChildProcess.h:100
&gt; &gt; +    virtual void didReceiveMessage(IPC::Connection&amp;, IPC::MessageDecoder&amp;) override;
&gt; 
&gt; Can this override be private instead of protected?

Nope - For now, the subclasses NetworkProcess and WebProcess call it directly from within their didReceiveMessage.

We&apos;ll be working on a way to make that unnecessary in the future, at which point it can be private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095640</commentid>
    <comment_count>10</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-18 10:55:08 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/184503</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095697</commentid>
    <comment_count>11</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-05-18 15:10:23 -0700</bug_when>
    <thetext>Fixed broken API tests in followup: http://trac.webkit.org/changeset/184514</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253060</attachid>
            <date>2015-05-13 14:32:55 -0700</date>
            <delta_ts>2015-05-13 15:15:36 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>12658</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzMDM3NTc0Li42ZTkwYmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTUtMDUtMTMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE5ldHdvcmtpbmcgcHJvY2VzcyBvbiBpT1MgY2FuIGJlIHN1c3BlbmRlZCBhbmQgbmV2ZXIg
ZXhpdAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjAzNjg2MzA+IGFuZCBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0OTcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWRDbG9zZSk6IEV4aXQg
d2l0aCBhIGZhaWx1cmUgY29kZS4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRp
ZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6IEV4aXQgd2l0aCBhIGZhaWx1cmUgY29kZS4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNodXRkb3duKTogRXhpdCB3aXRoIGEgc3VjY2Vz
cyBjb2RlLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGVyZm9ybVNodXRkb3du
KTogQ2FsbCBfZXhpdCB0byBmb3JjZWZ1bGx5IHRlcm1pbmF0ZSB0aGUgcHJvY2Vzcy4KKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorCisgICAgICAgICogVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6Ok5ldHdvcmtQcm9jZXNzUHJveHkpOiBDcmVhdGUgdGhlIFdlYWtQdHIg
Zm9yIHRoZSBwcm9jZXNzIHBvb2wuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJv
eHk6OmNyZWF0ZURvd25sb2FkUHJveHkpOiBOdWxsIGNoZWNrIHRoZSBwcm9jZXNzIHBvb2wuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Om5ldHdvcmtQcm9jZXNzQ3Jhc2hl
ZE9yRmFpbGVkVG9MYXVuY2gpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ2xvc2UpOiBEaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSBuZXR3
b3JrIHByb2Nlc3MgY29ubmVjdGlvbiBnb2luZyBhd2F5IAorICAgICAgICAgIHVuZXhwZWN0ZWRs
eSBmcm9tIGl0IGdvaW5nIGF3YXkgYmVjYXVzZSB3ZSBhc2tlZCBpdCB0by4KKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKTogTnVsbCBjaGVj
ayB0aGUgcHJvY2VzcyBwb29sLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5
Ojpwcm9jZXNzUG9vbERlc3Ryb3llZCk6IFRha2UgYSBzZWxmLXJlZiwgYW4gYWN0aXZpdHkgdG9r
ZW4sIGFuZCB0aGVuCisgICAgICAgICAgdGVsbCB0aGUgTmV0d29yayBQcm9jZXNzIHRvIHNodXRk
b3duLgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoK
KworICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6ZGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24pOiBSZW1v
dmUgYm9ndXMgY29kZSByZWxhdGVkIHRvIGRlY3JlbWVudGluZworICAgICAgICAgIG1fc3VzcGVu
ZE1lc3NhZ2VDb3VudCwgYXMgaXQgaXMgbm90IGluY3JlbWVudGVkIHdoZW4gdGhlIENhbmNlbFBy
b2Nlc3NTdXNwZW5zaW9uIG1lc3NhZ2UgaXMgc2VudC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpXZWJQ
cm9jZXNzUG9vbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp+V2ViUHJvY2Vz
c1Bvb2wpOiBOb3RpZnkgdGhlIE5ldHdvcmtQcm9jZXNzUHJveHkgdGhhdCBpdHMgcHJvY2VzcyBw
b29sIGlzIGdvbmUuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisKIDIw
MTUtMDUtMTEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUGFnZSBvdmVybGF5IGFjdGlvbiBjb250ZXh0IG92ZXJyaWRlIHNob3VsZCBpbmRpY2F0ZSB0
aGUgc291cmNlIG9mIHRoZSByZXF1ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggZjhiZDYxZi4uYmExZmFlMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMTQw
LDEzICsxNDAsMTIgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXMKIAogdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKIHsKLSAgICAvLyBUaGUgVUlQcm9jZXNz
IGp1c3QgZXhpdGVkLgotICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS5zdG9wKCk7CisgICAgcGVyZm9y
bVNodXRkb3duKGZhbHNlKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUlu
dmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlLCBJUEM6
OlN0cmluZ1JlZmVyZW5jZSkKIHsKLSAgICBSdW5Mb29wOjpjdXJyZW50KCkuc3RvcCgpOworICAg
IHBlcmZvcm1TaHV0ZG93bihmYWxzZSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZENy
ZWF0ZURvd25sb2FkKCkKQEAgLTUyOSw2ICs1MjgsMTkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6
cHJvY2Vzc0RpZFJlc3VtZSgpCiB7CiB9CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdtaXNzaW5nLW5vcmV0dXJuIgor
dm9pZCBOZXR3b3JrUHJvY2Vzczo6c2h1dGRvd24oKQoreworICAgIHBlcmZvcm1TaHV0ZG93bih0
cnVlKTsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6cGVyZm9ybVNodXRkb3duKGJvb2wgY2xl
YW5TaHV0ZG93bikKK3sKKyAgICBfZXhpdChjbGVhblNodXRkb3duID8gRVhJVF9TVUNDRVNTIDog
RVhJVF9GQUlMVVJFKTsKK30KKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKwogI2lmICFQ
TEFURk9STShDT0NPQSkKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNv
bnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAxNmZiMjY5Li5m
ZjhlZmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmgKQEAgLTEyOCw3ICsxMjgsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKTsKICAgICB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2lu
Z1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklEKTsKICAgICB2b2lkIGRlc3Ryb3lQcml2YXRlQnJv
d3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25JRCk7Ci0KKyAgICB2b2lkIHNodXRkb3duKCk7
CisgICAgdm9pZCBwZXJmb3JtU2h1dGRvd24oYm9vbCBjbGVhblNodXRkb3duKTsKKyAgICAKICAg
ICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCB1aW50NjRfdCB3ZWJz
aXRlRGF0YVR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNp
dGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwgdWludDY0X3Qgd2Vic2l0ZURhdGFUeXBlcywgc3Rk
OjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRf
dCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJD
b3JlOjpTZXNzaW9uSUQsIHVpbnQ2NF90IHdlYnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxT
ZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5zLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2ll
SG9zdE5hbWVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZDVj
YTYwNC4uNmQyMDkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTYyLDYgKzYyLDggQEAgbWVzc2Fn
ZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFByb2Nlc3NXaWxsU3Vz
cGVuZCgpCiAgICAgQ2FuY2VsUHJvY2Vzc1dpbGxTdXNwZW5kKCkKICAgICBQcm9jZXNzRGlkUmVz
dW1lKCkKKworICAgIFNodXRkb3duKCkKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BS
T0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDMzNGMyYjYuLjgzNzVmYWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwCkBAIC02NSw3ICs2NSw3IEBAIFBhc3NSZWZQdHI8TmV0d29ya1Byb2Nlc3NQcm94eT4g
TmV0d29ya1Byb2Nlc3NQcm94eTo6Y3JlYXRlKFdlYlByb2Nlc3NQb29sJiBwcm9jCiB9CiAKIE5l
dHdvcmtQcm9jZXNzUHJveHk6Ok5ldHdvcmtQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHBy
b2Nlc3NQb29sKQotICAgIDogbV9wcm9jZXNzUG9vbChwcm9jZXNzUG9vbCkKKyAgICA6IG1fcHJv
Y2Vzc1Bvb2wocHJvY2Vzc1Bvb2wuY3JlYXRlV2Vha1B0cigpKQogICAgICwgbV9udW1QZW5kaW5n
Q29ubmVjdGlvblJlcXVlc3RzKDApCiAgICAgLCBtX2N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5
KHRoaXMsIHByb2Nlc3NQb29sKQogICAgICwgbV90aHJvdHRsZXIoc3RkOjptYWtlX3VuaXF1ZTxQ
cm9jZXNzVGhyb3R0bGVyPih0aGlzKSkKQEAgLTExMiw3ICsxMTIsOCBAQCBEb3dubG9hZFByb3h5
KiBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjcmVhdGVEb3dubG9hZFByb3h5KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcgogICAgIGlmICghbV9kb3dubG9hZFByb3h5TWFwKQogICAgICAgICBtX2Rvd25s
b2FkUHJveHlNYXAgPSBzdGQ6Om1ha2VfdW5pcXVlPERvd25sb2FkUHJveHlNYXA+KHRoaXMpOwog
Ci0gICAgcmV0dXJuIG1fZG93bmxvYWRQcm94eU1hcC0+Y3JlYXRlRG93bmxvYWRQcm94eShtX3By
b2Nlc3NQb29sLCByZXNvdXJjZVJlcXVlc3QpOworICAgIFJFTEVBU0VfQVNTRVJUKG1fcHJvY2Vz
c1Bvb2wpOworICAgIHJldHVybiBtX2Rvd25sb2FkUHJveHlNYXAtPmNyZWF0ZURvd25sb2FkUHJv
eHkoKm1fcHJvY2Vzc1Bvb2wuZ2V0KCksIHJlc291cmNlUmVxdWVzdCk7CiB9CiAKIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJzaXRlRGF0YVR5cGVzIGRhdGFUeXBlcywgc3RkOjpmdW5jdGlvbjx2b2lkIChXZWJzaXRlRGF0
YSk+IGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTc1LDcgKzE3Niw4IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6bmV0d29ya1Byb2Nlc3NDcmFzaGVkT3JGYWlsZWRUb0xhdW5jaCgpCiAgICAg
bV9wZW5kaW5nRGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zQ2FsbGJhY2tzLmNsZWFyKCk7CiAK
ICAgICAvLyBUZWxsIHRoZSBuZXR3b3JrIHByb2Nlc3MgbWFuYWdlciB0byBmb3JnZXQgYWJvdXQg
dGhpcyBuZXR3b3JrIHByb2Nlc3MgcHJveHkuIFRoaXMgbWF5IGNhdXNlIHVzIHRvIGJlIGRlbGV0
ZWQuCi0gICAgbV9wcm9jZXNzUG9vbC5uZXR3b3JrUHJvY2Vzc0NyYXNoZWQodGhpcyk7CisgICAg
aWYgKG1fcHJvY2Vzc1Bvb2wpCisgICAgICAgIG1fcHJvY2Vzc1Bvb2wtPm5ldHdvcmtQcm9jZXNz
Q3Jhc2hlZCh0aGlzKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZURlY29kZXIm
IGRlY29kZXIpCkBAIC0xODMsNyArMTg1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWUKICAg
ICBpZiAoZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBpZiAobV9wcm9jZXNzUG9vbC5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwg
ZGVjb2RlcikpCisgICAgaWYgKG1fcHJvY2Vzc1Bvb2wgJiYgbV9wcm9jZXNzUG9vbC0+ZGlzcGF0
Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpKQogICAgICAgICByZXR1cm47CiAKICAgICBk
aWRSZWNlaXZlTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7
CkBAIC0yMDMsOSArMjA1LDE2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ2xvc2Uo
SVBDOjpDb25uZWN0aW9uJikKICAgICAgICAgbV9kb3dubG9hZFByb3h5TWFwLT5wcm9jZXNzRGlk
Q2xvc2UoKTsKIAogICAgIG1fdG9rZW5Gb3JIb2xkaW5nTG9ja2VkRmlsZXMgPSBudWxscHRyOwot
Ci0gICAgLy8gVGhpcyBtYXkgY2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KLSAgICBuZXR3b3JrUHJv
Y2Vzc0NyYXNoZWRPckZhaWxlZFRvTGF1bmNoKCk7CisgICAgbV90b2tlbkZvclNodXR0aW5nRG93
biA9IG51bGxwdHI7CisKKyAgICBpZiAoIW1fc2VsZlJlZkZvclNodXR0aW5nRG93bikgeworICAg
ICAgICAvLyBJZiB3ZSdyZSBub3QgaG9sZGluZyB0aGUgc2VsZiByZWYgZm9yIHNodXR0aW5nIGRv
d24sIHRoZW4gdGhlIGNoaWxkIHByb2Nlc3MgY3Jhc2hlZC4KKyAgICAgICAgLy8gVGhpcyBtYXkg
Y2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KKyAgICAgICAgbmV0d29ya1Byb2Nlc3NDcmFzaGVkT3JG
YWlsZWRUb0xhdW5jaCgpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIFRoaXMgc2hvdWxkIGNh
dXNlIHVzIHRvIGJlIGRlbGV0ZWQuCisgICAgICAgIG1fc2VsZlJlZkZvclNodXR0aW5nRG93biA9
IG51bGxwdHI7CisgICAgfQogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2Vp
dmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSwg
SVBDOjpTdHJpbmdSZWZlcmVuY2UpCkBAIC0yNzAsNyArMjc5LDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwg
SVBDOjpDb24KICAgICBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMgPSAwOwogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCi0gICAgaWYgKG1fcHJvY2Vzc1Bvb2wucHJvY2Vzc1N1cHByZXNzaW9u
RW5hYmxlZCgpKQorICAgIGlmIChtX3Byb2Nlc3NQb29sICYmIG1fcHJvY2Vzc1Bvb2wtPnByb2Nl
c3NTdXBwcmVzc2lvbkVuYWJsZWQoKSkKICAgICAgICAgc2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5h
YmxlZCh0cnVlKTsKICNlbmRpZgogICAgIApAQCAtMzYxLDYgKzM3MCwxNiBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OnNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wgaXNIb2xkaW5nTG9j
a2VkRmlsZXMpCiAgICAgICAgIG1fdG9rZW5Gb3JIb2xkaW5nTG9ja2VkRmlsZXMgPSBtX3Rocm90
dGxlci0+YmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5Ojpwcm9jZXNzUG9vbERlc3Ryb3llZCgpCit7CisgICAgaWYgKCFjb25uZWN0aW9uKCkt
PmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zZWxmUmVmRm9yU2h1dHRpbmdE
b3duID0gdGhpczsKKyAgICBtX3Rva2VuRm9yU2h1dHRpbmdEb3duID0gbV90aHJvdHRsZXItPmJh
Y2tncm91bmRBY3Rpdml0eVRva2VuKCk7CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6U2h1dGRvd24oKSwgMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRl
eCBkYWQ0NzllLi5lZTFkNzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5j
bHVkZSAiV2Vic2l0ZURhdGFUeXBlcy5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3
dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKQEAgLTc5LDYgKzgwLDggQEAgcHVi
bGljOgogCiAgICAgUHJvY2Vzc1Rocm90dGxlciYgdGhyb3R0bGVyKCkgeyByZXR1cm4gKm1fdGhy
b3R0bGVyOyB9CiAKKyAgICB2b2lkIHByb2Nlc3NQb29sRGVzdHJveWVkKCk7CisKIHByaXZhdGU6
CiAgICAgTmV0d29ya1Byb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYpOwogCkBAIC0xMTEsNyAr
MTE0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBQcm9jZXNzTGF1bmNoZXI6OkNsaWVudAogICAgIHZp
cnR1YWwgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyKSBvdmVycmlkZTsKIAotICAgIFdlYlByb2Nlc3NQb29sJiBtX3By
b2Nlc3NQb29sOworICAgIFdlYWtQdHI8V2ViUHJvY2Vzc1Bvb2w+IG1fcHJvY2Vzc1Bvb2w7CiAg
ICAgCiAgICAgdW5zaWduZWQgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzOwogICAgIERl
cXVlPFJlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OkRlbGF5ZWRSZXBseT4+IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzOwpAQCAt
MTI0LDYgKzEyNyw5IEBAIHByaXZhdGU6CiAgICAgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkg
bV9jdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vz
c1Rocm90dGxlcj4gbV90aHJvdHRsZXI7CiAgICAgUHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3Vu
ZEFjdGl2aXR5VG9rZW4gbV90b2tlbkZvckhvbGRpbmdMb2NrZWRGaWxlczsKKworICAgIFJlZlB0
cjxOZXR3b3JrUHJvY2Vzc1Byb3h5PiBtX3NlbGZSZWZGb3JTaHV0dGluZ0Rvd247CisgICAgUHJv
Y2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4gbV90b2tlbkZvclNodXR0aW5n
RG93bjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCmluZGV4IDgxNGVjMDkuLmVjZDFmMTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKQEAgLTEwNSw5
ICsxMDUsNyBAQCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnByb2Nlc3NSZWFkeVRvU3VzcGVuZCgp
CiAKIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6ZGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24oKQog
ewotICAgIGlmICghLS1tX3N1c3BlbmRNZXNzYWdlQ291bnQpCi0gICAgICAgIHVwZGF0ZUFzc2Vy
dGlvbk5vdygpOwotICAgIEFTU0VSVChtX3N1c3BlbmRNZXNzYWdlQ291bnQgPj0gMCk7CisgICAg
dXBkYXRlQXNzZXJ0aW9uTm93KCk7CiB9CiAKIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6YXNzZXJ0
aW9uV2lsbEV4cGlyZUltbWluZW50bHkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAKaW5kZXggOGYxNDA5NC4uOTQ2ZDM2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0xNzEsNiArMTcxLDcgQEAgV2ViUHJv
Y2Vzc1Bvb2w6OldlYlByb2Nlc3NQb29sKEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uJiBj
b25maWd1cmF0aW9uKQogICAgICwgbV9jYW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlv
bih0cnVlKQogICAgICwgbV91c2VzTmV0d29ya1Byb2Nlc3MobV9jb25maWd1cmF0aW9uLT51c2VO
ZXR3b3JrUHJvY2VzcygpKQogI2VuZGlmCisgICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiAjaWYg
VVNFKFNPVVApCiAgICAgLCBtX2lnbm9yZVRMU0Vycm9ycyh0cnVlKQogI2VuZGlmCkBAIC0yNzIs
NiArMjczLDExIEBAIFdlYlByb2Nlc3NQb29sOjp+V2ViUHJvY2Vzc1Bvb2woKQogI2lmbmRlZiBO
REVCVUcKICAgICBwcm9jZXNzUG9vbENvdW50ZXIuZGVjcmVtZW50KCk7CiAjZW5kaWYKKworI2lm
IEVOQUJMRShORVRXT1JLX1BST0NFU1MpCisgICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCisgICAg
ICAgIG1fbmV0d29ya1Byb2Nlc3MtPnByb2Nlc3NQb29sRGVzdHJveWVkKCk7CisjZW5kaWYKIH0K
IAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6ZUNsaWVudChjb25zdCBXS0NvbnRleHRD
bGllbnRCYXNlKiBjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oCmluZGV4IGM4OGJjNmMuLjk0NzU2MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hh
c2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtMzY1LDYgKzM2Niw4
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU3RyaW5nIGxlZ2FjeVBsYXRmb3JtRGVmYXVsdFdlYlNR
TERhdGFiYXNlRGlyZWN0b3J5KCk7CiAgICAgc3RhdGljIFN0cmluZyBsZWdhY3lQbGF0Zm9ybURl
ZmF1bHRNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCk7CiAKKyAgICBXZWFrUHRyPFdlYlByb2Nl
c3NQb29sPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFr
UHRyKCk7IH0KKwogcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogCkBA
IC01MjUsNiArNTI4LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TmV0d29ya1Byb2Nlc3NQcm94
eT4gbV9uZXR3b3JrUHJvY2VzczsKICNlbmRpZgogCisgICAgV2Vha1B0ckZhY3Rvcnk8V2ViUHJv
Y2Vzc1Bvb2w+IG1fd2Vha0ZhY3Rvcnk7CisKICNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykK
ICAgICBSZWZQdHI8RGF0YWJhc2VQcm9jZXNzUHJveHk+IG1fZGF0YWJhc2VQcm9jZXNzOwogI2Vu
ZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253063</attachid>
            <date>2015-05-13 15:15:36 -0700</date>
            <delta_ts>2015-05-13 15:32:59 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>12576</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA1ZmM4OTMxLi4xNzA5MzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTUtMDUtMTMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE5ldHdvcmtpbmcgcHJvY2VzcyBvbiBpT1MgY2FuIGJlIHN1c3BlbmRlZCBhbmQgbmV2ZXIg
ZXhpdAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjAzNjg2MzA+IGFuZCBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0OTcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWRDbG9zZSk6IEV4aXQg
d2l0aCBhIGZhaWx1cmUgY29kZS4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRp
ZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6IEV4aXQgd2l0aCBhIGZhaWx1cmUgY29kZS4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNodXRkb3duKTogRXhpdCB3aXRoIGEgc3VjY2Vz
cyBjb2RlLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGVyZm9ybVNodXRkb3du
KTogQ2FsbCBfZXhpdCB0byBmb3JjZWZ1bGx5IHRlcm1pbmF0ZSB0aGUgcHJvY2Vzcy4KKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorCisgICAgICAgICogVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6Ok5ldHdvcmtQcm9jZXNzUHJveHkpOiBDcmVhdGUgdGhlIFdlYWtQdHIg
Zm9yIHRoZSBwcm9jZXNzIHBvb2wuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJv
eHk6OmNyZWF0ZURvd25sb2FkUHJveHkpOiBOdWxsIGNoZWNrIHRoZSBwcm9jZXNzIHBvb2wuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Om5ldHdvcmtQcm9jZXNzQ3Jhc2hl
ZE9yRmFpbGVkVG9MYXVuY2gpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ2xvc2UpOiBEaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSBuZXR3
b3JrIHByb2Nlc3MgY29ubmVjdGlvbiBnb2luZyBhd2F5IAorICAgICAgICAgIHVuZXhwZWN0ZWRs
eSBmcm9tIGl0IGdvaW5nIGF3YXkgYmVjYXVzZSB3ZSBhc2tlZCBpdCB0by4KKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKTogTnVsbCBjaGVj
ayB0aGUgcHJvY2VzcyBwb29sLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5
Ojpwcm9jZXNzUG9vbERlc3Ryb3llZCk6IFRha2UgYSBzZWxmLXJlZiwgYW4gYWN0aXZpdHkgdG9r
ZW4sIGFuZCB0aGVuCisgICAgICAgICAgdGVsbCB0aGUgTmV0d29yayBQcm9jZXNzIHRvIHNodXRk
b3duLgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoK
KworICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6ZGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24pOiBSZW1v
dmUgYm9ndXMgY29kZSByZWxhdGVkIHRvIGRlY3JlbWVudGluZworICAgICAgICAgIG1fc3VzcGVu
ZE1lc3NhZ2VDb3VudCwgYXMgaXQgaXMgbm90IGluY3JlbWVudGVkIHdoZW4gdGhlIENhbmNlbFBy
b2Nlc3NTdXNwZW5zaW9uIG1lc3NhZ2UgaXMgc2VudC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpXZWJQ
cm9jZXNzUG9vbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp+V2ViUHJvY2Vz
c1Bvb2wpOiBOb3RpZnkgdGhlIE5ldHdvcmtQcm9jZXNzUHJveHkgdGhhdCBpdHMgcHJvY2VzcyBw
b29sIGlzIGdvbmUuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisKIDIw
MTUtMDUtMTMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAg
W01hY10gU2FuZGJveCB2aW9sYXRpb24gcmVhZGluZyBTdWJtaXREaWFnSW5mby5kb21haW5zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5k
ZXggZjhiZDYxZi4uYmExZmFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMTQwLDEzICsxNDAsMTIgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgSVBDOjpNZXMKIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0
aW9uJikKIHsKLSAgICAvLyBUaGUgVUlQcm9jZXNzIGp1c3QgZXhpdGVkLgotICAgIFJ1bkxvb3A6
OmN1cnJlbnQoKS5zdG9wKCk7CisgICAgcGVyZm9ybVNodXRkb3duKGZhbHNlKTsKIH0KIAogdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6U3RyaW5nUmVmZXJlbmNlLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSkKIHsKLSAgICBS
dW5Mb29wOjpjdXJyZW50KCkuc3RvcCgpOworICAgIHBlcmZvcm1TaHV0ZG93bihmYWxzZSk7CiB9
CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZENyZWF0ZURvd25sb2FkKCkKQEAgLTUyOSw2ICs1
MjgsMTkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpCiB7CiB9CiAK
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdtaXNzaW5nLW5vcmV0dXJuIgordm9pZCBOZXR3b3JrUHJvY2Vzczo6c2h1dGRv
d24oKQoreworICAgIHBlcmZvcm1TaHV0ZG93bih0cnVlKTsKK30KKwordm9pZCBOZXR3b3JrUHJv
Y2Vzczo6cGVyZm9ybVNodXRkb3duKGJvb2wgY2xlYW5TaHV0ZG93bikKK3sKKyAgICBfZXhpdChj
bGVhblNodXRkb3duID8gRVhJVF9TVUNDRVNTIDogRVhJVF9GQUlMVVJFKTsKK30KKyNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKKwogI2lmICFQTEFURk9STShDT0NPQSkKIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0
aW9uUGFyYW1ldGVycyYpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuaAppbmRleCAxNmZiMjY5Li5mZjhlZmZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTEyOCw3ICsxMjgsOSBAQCBw
cml2YXRlOgogICAgIHZvaWQgY3JlYXRlTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKTsK
ICAgICB2b2lkIGVuc3VyZVByaXZhdGVCcm93c2luZ1Nlc3Npb24oV2ViQ29yZTo6U2Vzc2lvbklE
KTsKICAgICB2b2lkIGRlc3Ryb3lQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Np
b25JRCk7Ci0KKyAgICB2b2lkIHNodXRkb3duKCk7CisgICAgdm9pZCBwZXJmb3JtU2h1dGRvd24o
Ym9vbCBjbGVhblNodXRkb3duKTsKKyAgICAKICAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoV2Vi
Q29yZTo6U2Vzc2lvbklELCB1aW50NjRfdCB3ZWJzaXRlRGF0YVR5cGVzLCB1aW50NjRfdCBjYWxs
YmFja0lEKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwg
dWludDY0X3Qgd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGlt
ZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lkIGRl
bGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQsIHVpbnQ2NF90IHdl
YnNpdGVEYXRhVHlwZXMsIGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdpbkRhdGE+JiBvcmlnaW5z
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgY29va2llSG9zdE5hbWVzLCB1aW50NjRfdCBjYWxsYmFj
a0lEKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZDVjYTYwNC4uNmQyMDkzOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2Fn
ZXMuaW4KQEAgLTYyLDYgKzYyLDggQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5
UmVjZWl2ZXIgewogICAgIFByb2Nlc3NXaWxsU3VzcGVuZCgpCiAgICAgQ2FuY2VsUHJvY2Vzc1dp
bGxTdXNwZW5kKCkKICAgICBQcm9jZXNzRGlkUmVzdW1lKCkKKworICAgIFNodXRkb3duKCkKIH0K
IAogI2VuZGlmIC8vIEVOQUJMRShORVRXT1JLX1BST0NFU1MpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4
IGEwYWNjMzQuLmNkOGNmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC02NSw3ICs2NSw3IEBAIFBh
c3NSZWZQdHI8TmV0d29ya1Byb2Nlc3NQcm94eT4gTmV0d29ya1Byb2Nlc3NQcm94eTo6Y3JlYXRl
KFdlYlByb2Nlc3NQb29sJiBwcm9jCiB9CiAKIE5ldHdvcmtQcm9jZXNzUHJveHk6Ok5ldHdvcmtQ
cm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sKQotICAgIDogbV9wcm9jZXNz
UG9vbChwcm9jZXNzUG9vbCkKKyAgICA6IG1fcHJvY2Vzc1Bvb2wocHJvY2Vzc1Bvb2wuY3JlYXRl
V2Vha1B0cigpKQogICAgICwgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzKDApCiAgICAg
LCBtX2N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5KHRoaXMsIHByb2Nlc3NQb29sKQogICAgICwg
bV90aHJvdHRsZXIoKnRoaXMpCkBAIC0xMTIsNyArMTEyLDggQEAgRG93bmxvYWRQcm94eSogTmV0
d29ya1Byb2Nlc3NQcm94eTo6Y3JlYXRlRG93bmxvYWRQcm94eShjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHIKICAgICBpZiAoIW1fZG93bmxvYWRQcm94eU1hcCkKICAgICAgICAgbV9kb3dubG9hZFBy
b3h5TWFwID0gc3RkOjptYWtlX3VuaXF1ZTxEb3dubG9hZFByb3h5TWFwPih0aGlzKTsKIAotICAg
IHJldHVybiBtX2Rvd25sb2FkUHJveHlNYXAtPmNyZWF0ZURvd25sb2FkUHJveHkobV9wcm9jZXNz
UG9vbCwgcmVzb3VyY2VSZXF1ZXN0KTsKKyAgICBSRUxFQVNFX0FTU0VSVChtX3Byb2Nlc3NQb29s
KTsKKyAgICByZXR1cm4gbV9kb3dubG9hZFByb3h5TWFwLT5jcmVhdGVEb3dubG9hZFByb3h5KCpt
X3Byb2Nlc3NQb29sLmdldCgpLCByZXNvdXJjZVJlcXVlc3QpOwogfQogCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OmZldGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vic2l0
ZURhdGFUeXBlcyBkYXRhVHlwZXMsIHN0ZDo6ZnVuY3Rpb248dm9pZCAoV2Vic2l0ZURhdGEpPiBj
b21wbGV0aW9uSGFuZGxlcikKQEAgLTE3NSw3ICsxNzYsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6Om5ldHdvcmtQcm9jZXNzQ3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2goKQogICAgIG1fcGVu
ZGluZ0RlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2luc0NhbGxiYWNrcy5jbGVhcigpOwogCiAgICAg
Ly8gVGVsbCB0aGUgbmV0d29yayBwcm9jZXNzIG1hbmFnZXIgdG8gZm9yZ2V0IGFib3V0IHRoaXMg
bmV0d29yayBwcm9jZXNzIHByb3h5LiBUaGlzIG1heSBjYXVzZSB1cyB0byBiZSBkZWxldGVkLgot
ICAgIG1fcHJvY2Vzc1Bvb2wubmV0d29ya1Byb2Nlc3NDcmFzaGVkKHRoaXMpOworICAgIGlmICht
X3Byb2Nlc3NQb29sKQorICAgICAgICBtX3Byb2Nlc3NQb29sLT5uZXR3b3JrUHJvY2Vzc0NyYXNo
ZWQodGhpcyk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJiBkZWNv
ZGVyKQpAQCAtMTgzLDcgKzE4NSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6Ok1lCiAgICAgaWYg
KGRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgaWYgKG1fcHJvY2Vzc1Bvb2wuZGlzcGF0Y2hNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29k
ZXIpKQorICAgIGlmIChtX3Byb2Nlc3NQb29sICYmIG1fcHJvY2Vzc1Bvb2wtPmRpc3BhdGNoTWVz
c2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZGlkUmVj
ZWl2ZU5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwpAQCAt
MjAzLDkgKzIwNSwxNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZENsb3NlKElQQzo6
Q29ubmVjdGlvbiYpCiAgICAgICAgIG1fZG93bmxvYWRQcm94eU1hcC0+cHJvY2Vzc0RpZENsb3Nl
KCk7CiAKICAgICBtX3Rva2VuRm9ySG9sZGluZ0xvY2tlZEZpbGVzID0gbnVsbHB0cjsKLQotICAg
IC8vIFRoaXMgbWF5IGNhdXNlIHVzIHRvIGJlIGRlbGV0ZWQuCi0gICAgbmV0d29ya1Byb2Nlc3ND
cmFzaGVkT3JGYWlsZWRUb0xhdW5jaCgpOworICAgIG1fdG9rZW5Gb3JTaHV0dGluZ0Rvd24gPSBu
dWxscHRyOworCisgICAgaWYgKCFtX3NlbGZSZWZGb3JTaHV0dGluZ0Rvd24pIHsKKyAgICAgICAg
Ly8gSWYgd2UncmUgbm90IGhvbGRpbmcgdGhlIHNlbGYgcmVmIGZvciBzaHV0dGluZyBkb3duLCB0
aGVuIHRoZSBjaGlsZCBwcm9jZXNzIGNyYXNoZWQuCisgICAgICAgIC8vIFRoaXMgbWF5IGNhdXNl
IHVzIHRvIGJlIGRlbGV0ZWQuCisgICAgICAgIG5ldHdvcmtQcm9jZXNzQ3Jhc2hlZE9yRmFpbGVk
VG9MYXVuY2goKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBUaGlzIHNob3VsZCBjYXVzZSB1
cyB0byBiZSBkZWxldGVkLgorICAgICAgICBtX3NlbGZSZWZGb3JTaHV0dGluZ0Rvd24gPSBudWxs
cHRyOworICAgIH0KIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlSW52
YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UsIElQQzo6
U3RyaW5nUmVmZXJlbmNlKQpAQCAtMjcwLDcgKzI3OSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNoZXIsIElQQzo6
Q29uCiAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzID0gMDsKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgIGlmIChtX3Byb2Nlc3NQb29sLnByb2Nlc3NTdXBwcmVzc2lvbkVuYWJs
ZWQoKSkKKyAgICBpZiAobV9wcm9jZXNzUG9vbCAmJiBtX3Byb2Nlc3NQb29sLT5wcm9jZXNzU3Vw
cHJlc3Npb25FbmFibGVkKCkpCiAgICAgICAgIHNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQo
dHJ1ZSk7CiAjZW5kaWYKICAgICAKQEAgLTM2MSw2ICszNzAsMTYgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpzZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyhib29sIGlzSG9sZGluZ0xvY2tlZEZp
bGVzKQogICAgICAgICBtX3Rva2VuRm9ySG9sZGluZ0xvY2tlZEZpbGVzID0gbV90aHJvdHRsZXIu
YmFja2dyb3VuZEFjdGl2aXR5VG9rZW4oKTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
Ojpwcm9jZXNzUG9vbERlc3Ryb3llZCgpCit7CisgICAgaWYgKCFjb25uZWN0aW9uKCktPmlzVmFs
aWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9zZWxmUmVmRm9yU2h1dHRpbmdEb3duID0g
dGhpczsKKyAgICBtX3Rva2VuRm9yU2h1dHRpbmdEb3duID0gbV90aHJvdHRsZXIuYmFja2dyb3Vu
ZEFjdGl2aXR5VG9rZW4oKTsKKyAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpTaHV0ZG93bigpLCAwKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IGJkNTYw
Y2MuLmZkYjRkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJX
ZWJzaXRlRGF0YVR5cGVzLmgiCiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOwpAQCAtNzYsNiArNzcsOCBAQCBwdWJsaWM6CiAK
ICAgICBQcm9jZXNzVGhyb3R0bGVyJiB0aHJvdHRsZXIoKSB7IHJldHVybiBtX3Rocm90dGxlcjsg
fQogCisgICAgdm9pZCBwcm9jZXNzUG9vbERlc3Ryb3llZCgpOworCiBwcml2YXRlOgogICAgIE5l
dHdvcmtQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmKTsKIApAQCAtMTE0LDcgKzExNyw3IEBA
IHByaXZhdGU6CiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKICAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllcikgb3ZlcnJpZGU7CiAKLSAgICBXZWJQcm9jZXNzUG9vbCYgbV9wcm9jZXNzUG9v
bDsKKyAgICBXZWFrUHRyPFdlYlByb2Nlc3NQb29sPiBtX3Byb2Nlc3NQb29sOwogICAgIAogICAg
IHVuc2lnbmVkIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0czsKICAgICBEZXF1ZTxSZWZQ
dHI8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
OjpEZWxheWVkUmVwbHk+PiBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllczsKQEAgLTEyNyw2ICsx
MzAsOSBAQCBwcml2YXRlOgogICAgIEN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5IG1fY3VzdG9t
UHJvdG9jb2xNYW5hZ2VyUHJveHk7CiAgICAgUHJvY2Vzc1Rocm90dGxlciBtX3Rocm90dGxlcjsK
ICAgICBQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbiBtX3Rva2VuRm9y
SG9sZGluZ0xvY2tlZEZpbGVzOworCisgICAgUmVmUHRyPE5ldHdvcmtQcm9jZXNzUHJveHk+IG1f
c2VsZlJlZkZvclNodXR0aW5nRG93bjsKKyAgICBQcm9jZXNzVGhyb3R0bGVyOjpCYWNrZ3JvdW5k
QWN0aXZpdHlUb2tlbiBtX3Rva2VuRm9yU2h1dHRpbmdEb3duOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc1Ro
cm90dGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5j
cHAKaW5kZXggMzZjYTBhYS4uMDZhMjkyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Qcm9jZXNzVGhyb3R0bGVyLmNwcApAQCAtMTA1LDkgKzEwNSw3IEBAIHZvaWQgUHJvY2Vzc1Ro
cm90dGxlcjo6cHJvY2Vzc1JlYWR5VG9TdXNwZW5kKCkKIAogdm9pZCBQcm9jZXNzVGhyb3R0bGVy
OjpkaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lvbigpCiB7Ci0gICAgaWYgKCEtLW1fc3VzcGVuZE1l
c3NhZ2VDb3VudCkKLSAgICAgICAgdXBkYXRlQXNzZXJ0aW9uTm93KCk7Ci0gICAgQVNTRVJUKG1f
c3VzcGVuZE1lc3NhZ2VDb3VudCA+PSAwKTsKKyAgICB1cGRhdGVBc3NlcnRpb25Ob3coKTsKIH0K
IAogdm9pZCBQcm9jZXNzVGhyb3R0bGVyOjphc3NlcnRpb25XaWxsRXhwaXJlSW1taW5lbnRseSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBlMTli
MWNhLi5lMmQzZjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHAKQEAgLTE3MSw2ICsxNzEsNyBAQCBXZWJQcm9jZXNzUG9vbDo6V2ViUHJvY2Vzc1Bvb2wo
QVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCiAgICAgLCBtX2Nh
bkhhbmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKHRydWUpCiAgICAgLCBtX3VzZXNOZXR3
b3JrUHJvY2VzcyhtX2NvbmZpZ3VyYXRpb24tPnVzZU5ldHdvcmtQcm9jZXNzKCkpCiAjZW5kaWYK
KyAgICAsIG1fd2Vha0ZhY3RvcnkodGhpcykKICNpZiBVU0UoU09VUCkKICAgICAsIG1faWdub3Jl
VExTRXJyb3JzKHRydWUpCiAjZW5kaWYKQEAgLTI3Miw2ICsyNzMsMTEgQEAgV2ViUHJvY2Vzc1Bv
b2w6On5XZWJQcm9jZXNzUG9vbCgpCiAjaWZuZGVmIE5ERUJVRwogICAgIHByb2Nlc3NQb29sQ291
bnRlci5kZWNyZW1lbnQoKTsKICNlbmRpZgorCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykK
KyAgICBpZiAobV9uZXR3b3JrUHJvY2VzcykKKyAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+cHJv
Y2Vzc1Bvb2xEZXN0cm95ZWQoKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpp
bml0aWFsaXplQ2xpZW50KGNvbnN0IFdLQ29udGV4dENsaWVudEJhc2UqIGNsaWVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggYzQ3ZjM1MS4uNzAxNWZh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTUxLDYg
KzUxLDcgQEAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCkBAIC0zNjUsNiArMzY2LDggQEAgcHVibGljOgogICAgIHN0YXRpYyBT
dHJpbmcgbGVnYWN5UGxhdGZvcm1EZWZhdWx0V2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoKTsKICAg
ICBzdGF0aWMgU3RyaW5nIGxlZ2FjeVBsYXRmb3JtRGVmYXVsdE1lZGlhS2V5c1N0b3JhZ2VEaXJl
Y3RvcnkoKTsKIAorICAgIFdlYWtQdHI8V2ViUHJvY2Vzc1Bvb2w+IGNyZWF0ZVdlYWtQdHIoKSB7
IHJldHVybiBtX3dlYWtGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorCiBwcml2YXRlOgogICAg
IHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAKQEAgLTUyNiw2ICs1MjksOCBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxOZXR3b3JrUHJvY2Vzc1Byb3h5PiBtX25ldHdvcmtQcm9jZXNzOwogI2Vu
ZGlmCiAKKyAgICBXZWFrUHRyRmFjdG9yeTxXZWJQcm9jZXNzUG9vbD4gbV93ZWFrRmFjdG9yeTsK
KwogI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQogICAgIFJlZlB0cjxEYXRhYmFzZVByb2Nl
c3NQcm94eT4gbV9kYXRhYmFzZVByb2Nlc3M7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253067</attachid>
            <date>2015-05-13 15:32:59 -0700</date>
            <delta_ts>2015-05-15 16:11:05 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>12634</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA1ZmM4OTMxLi4xNzA5MzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTUtMDUtMTMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE5ldHdvcmtpbmcgcHJvY2VzcyBvbiBpT1MgY2FuIGJlIHN1c3BlbmRlZCBhbmQgbmV2ZXIg
ZXhpdAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjAzNjg2MzA+IGFuZCBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0OTcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWRDbG9zZSk6IEV4aXQg
d2l0aCBhIGZhaWx1cmUgY29kZS4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmRp
ZFJlY2VpdmVJbnZhbGlkTWVzc2FnZSk6IEV4aXQgd2l0aCBhIGZhaWx1cmUgY29kZS4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNodXRkb3duKTogRXhpdCB3aXRoIGEgc3VjY2Vz
cyBjb2RlLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cGVyZm9ybVNodXRkb3du
KTogQ2FsbCBfZXhpdCB0byBmb3JjZWZ1bGx5IHRlcm1pbmF0ZSB0aGUgcHJvY2Vzcy4KKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorCisgICAgICAgICogVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6Ok5ldHdvcmtQcm9jZXNzUHJveHkpOiBDcmVhdGUgdGhlIFdlYWtQdHIg
Zm9yIHRoZSBwcm9jZXNzIHBvb2wuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJv
eHk6OmNyZWF0ZURvd25sb2FkUHJveHkpOiBOdWxsIGNoZWNrIHRoZSBwcm9jZXNzIHBvb2wuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Om5ldHdvcmtQcm9jZXNzQ3Jhc2hl
ZE9yRmFpbGVkVG9MYXVuY2gpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3NQcm94eTo6ZGlkQ2xvc2UpOiBEaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSBuZXR3
b3JrIHByb2Nlc3MgY29ubmVjdGlvbiBnb2luZyBhd2F5IAorICAgICAgICAgIHVuZXhwZWN0ZWRs
eSBmcm9tIGl0IGdvaW5nIGF3YXkgYmVjYXVzZSB3ZSBhc2tlZCBpdCB0by4KKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKTogTnVsbCBjaGVj
ayB0aGUgcHJvY2VzcyBwb29sLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5
Ojpwcm9jZXNzUG9vbERlc3Ryb3llZCk6IFRha2UgYSBzZWxmLXJlZiwgYW4gYWN0aXZpdHkgdG9r
ZW4sIGFuZCB0aGVuCisgICAgICAgICAgdGVsbCB0aGUgTmV0d29yayBQcm9jZXNzIHRvIHNodXRk
b3duLgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoK
KworICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6ZGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24pOiBSZW1v
dmUgYm9ndXMgY29kZSByZWxhdGVkIHRvIGRlY3JlbWVudGluZworICAgICAgICAgIG1fc3VzcGVu
ZE1lc3NhZ2VDb3VudCwgYXMgaXQgaXMgbm90IGluY3JlbWVudGVkIHdoZW4gdGhlIENhbmNlbFBy
b2Nlc3NTdXNwZW5zaW9uIG1lc3NhZ2UgaXMgc2VudC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpXZWJQ
cm9jZXNzUG9vbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp+V2ViUHJvY2Vz
c1Bvb2wpOiBOb3RpZnkgdGhlIE5ldHdvcmtQcm9jZXNzUHJveHkgdGhhdCBpdHMgcHJvY2VzcyBw
b29sIGlzIGdvbmUuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisKIDIw
MTUtMDUtMTMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAg
W01hY10gU2FuZGJveCB2aW9sYXRpb24gcmVhZGluZyBTdWJtaXREaWFnSW5mby5kb21haW5zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5k
ZXggZjhiZDYxZi4uNTJmODdhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMTQwLDEzICsxNDAsMTIgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgSVBDOjpNZXMKIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0
aW9uJikKIHsKLSAgICAvLyBUaGUgVUlQcm9jZXNzIGp1c3QgZXhpdGVkLgotICAgIFJ1bkxvb3A6
OmN1cnJlbnQoKS5zdG9wKCk7CisgICAgcGVyZm9ybVNodXRkb3duKGZhbHNlKTsKIH0KIAogdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6U3RyaW5nUmVmZXJlbmNlLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSkKIHsKLSAgICBS
dW5Mb29wOjpjdXJyZW50KCkuc3RvcCgpOworICAgIHBlcmZvcm1TaHV0ZG93bihmYWxzZSk7CiB9
CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZENyZWF0ZURvd25sb2FkKCkKQEAgLTUyOSw2ICs1
MjgsMjMgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpCiB7CiB9CiAK
KyNpZiBQTEFURk9STShDT0NPQSkKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdtaXNzaW5nLW5vcmV0dXJuIgorI2VuZGlm
Cit2b2lkIE5ldHdvcmtQcm9jZXNzOjpzaHV0ZG93bigpCit7CisgICAgcGVyZm9ybVNodXRkb3du
KHRydWUpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpwZXJmb3JtU2h1dGRvd24oYm9vbCBj
bGVhblNodXRkb3duKQoreworICAgIF9leGl0KGNsZWFuU2h1dGRvd24gPyBFWElUX1NVQ0NFU1Mg
OiBFWElUX0ZBSUxVUkUpOworfQorI2lmIFBMQVRGT1JNKENPQ09BKQorI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIHBvcAorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oQ09DT0EpCiB2b2lkIE5ldHdv
cmtQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMmKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmgKaW5kZXggMTZmYjI2OS4uZmY4ZWZmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0xMjgsNyArMTI4LDkgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZU5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKCk7
CiAgICAgdm9pZCBlbnN1cmVQcml2YXRlQnJvd3NpbmdTZXNzaW9uKFdlYkNvcmU6OlNlc3Npb25J
RCk7CiAgICAgdm9pZCBkZXN0cm95UHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJDb3JlOjpTZXNz
aW9uSUQpOwotCisgICAgdm9pZCBzaHV0ZG93bigpOworICAgIHZvaWQgcGVyZm9ybVNodXRkb3du
KGJvb2wgY2xlYW5TaHV0ZG93bik7CisgICAgCiAgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFdl
YkNvcmU6OlNlc3Npb25JRCwgdWludDY0X3Qgd2Vic2l0ZURhdGFUeXBlcywgdWludDY0X3QgY2Fs
bGJhY2tJRCk7CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQs
IHVpbnQ2NF90IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRp
bWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBk
ZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMoV2ViQ29yZTo6U2Vzc2lvbklELCB1aW50NjRfdCB3
ZWJzaXRlRGF0YVR5cGVzLCBjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXRhPiYgb3JpZ2lu
cywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGNvb2tpZUhvc3ROYW1lcywgdWludDY0X3QgY2FsbGJh
Y2tJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGQ1Y2E2MDQuLjZkMjA5MzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3Nh
Z2VzLmluCkBAIC02Miw2ICs2Miw4IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2Fj
eVJlY2VpdmVyIHsKICAgICBQcm9jZXNzV2lsbFN1c3BlbmQoKQogICAgIENhbmNlbFByb2Nlc3NX
aWxsU3VzcGVuZCgpCiAgICAgUHJvY2Vzc0RpZFJlc3VtZSgpCisKKyAgICBTaHV0ZG93bigpCiB9
CiAKICNlbmRpZiAvLyBFTkFCTEUoTkVUV09SS19QUk9DRVNTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCBhMGFjYzM0Li5jZDhjZjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtNjUsNyArNjUsNyBAQCBQ
YXNzUmVmUHRyPE5ldHdvcmtQcm9jZXNzUHJveHk+IE5ldHdvcmtQcm9jZXNzUHJveHk6OmNyZWF0
ZShXZWJQcm9jZXNzUG9vbCYgcHJvYwogfQogCiBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpOZXR3b3Jr
UHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCkKLSAgICA6IG1fcHJvY2Vz
c1Bvb2wocHJvY2Vzc1Bvb2wpCisgICAgOiBtX3Byb2Nlc3NQb29sKHByb2Nlc3NQb29sLmNyZWF0
ZVdlYWtQdHIoKSkKICAgICAsIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cygwKQogICAg
ICwgbV9jdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eSh0aGlzLCBwcm9jZXNzUG9vbCkKICAgICAs
IG1fdGhyb3R0bGVyKCp0aGlzKQpAQCAtMTEyLDcgKzExMiw4IEBAIERvd25sb2FkUHJveHkqIE5l
dHdvcmtQcm9jZXNzUHJveHk6OmNyZWF0ZURvd25sb2FkUHJveHkoY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByCiAgICAgaWYgKCFtX2Rvd25sb2FkUHJveHlNYXApCiAgICAgICAgIG1fZG93bmxvYWRQ
cm94eU1hcCA9IHN0ZDo6bWFrZV91bmlxdWU8RG93bmxvYWRQcm94eU1hcD4odGhpcyk7CiAKLSAg
ICByZXR1cm4gbV9kb3dubG9hZFByb3h5TWFwLT5jcmVhdGVEb3dubG9hZFByb3h5KG1fcHJvY2Vz
c1Bvb2wsIHJlc291cmNlUmVxdWVzdCk7CisgICAgUkVMRUFTRV9BU1NFUlQobV9wcm9jZXNzUG9v
bCk7CisgICAgcmV0dXJuIG1fZG93bmxvYWRQcm94eU1hcC0+Y3JlYXRlRG93bmxvYWRQcm94eSgq
bV9wcm9jZXNzUG9vbC5nZXQoKSwgcmVzb3VyY2VSZXF1ZXN0KTsKIH0KIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKFNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYnNp
dGVEYXRhVHlwZXMgZGF0YVR5cGVzLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKFdlYnNpdGVEYXRhKT4g
Y29tcGxldGlvbkhhbmRsZXIpCkBAIC0xNzUsNyArMTc2LDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWRPckZhaWxlZFRvTGF1bmNoKCkKICAgICBtX3Bl
bmRpbmdEZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnNDYWxsYmFja3MuY2xlYXIoKTsKIAogICAg
IC8vIFRlbGwgdGhlIG5ldHdvcmsgcHJvY2VzcyBtYW5hZ2VyIHRvIGZvcmdldCBhYm91dCB0aGlz
IG5ldHdvcmsgcHJvY2VzcyBwcm94eS4gVGhpcyBtYXkgY2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4K
LSAgICBtX3Byb2Nlc3NQb29sLm5ldHdvcmtQcm9jZXNzQ3Jhc2hlZCh0aGlzKTsKKyAgICBpZiAo
bV9wcm9jZXNzUG9vbCkKKyAgICAgICAgbV9wcm9jZXNzUG9vbC0+bmV0d29ya1Byb2Nlc3NDcmFz
aGVkKHRoaXMpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZXNzYWdlRGVjb2RlciYgZGVj
b2RlcikKQEAgLTE4Myw3ICsxODUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpNZQogICAgIGlm
IChkaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlcikpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGlmIChtX3Byb2Nlc3NQb29sLmRpc3BhdGNoTWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyKSkKKyAgICBpZiAobV9wcm9jZXNzUG9vbCAmJiBtX3Byb2Nlc3NQb29sLT5kaXNwYXRjaE1l
c3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIGRpZFJl
Y2VpdmVOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKQEAg
LTIwMyw5ICsyMDUsMTYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6
OkNvbm5lY3Rpb24mKQogICAgICAgICBtX2Rvd25sb2FkUHJveHlNYXAtPnByb2Nlc3NEaWRDbG9z
ZSgpOwogCiAgICAgbV90b2tlbkZvckhvbGRpbmdMb2NrZWRGaWxlcyA9IG51bGxwdHI7Ci0KLSAg
ICAvLyBUaGlzIG1heSBjYXVzZSB1cyB0byBiZSBkZWxldGVkLgotICAgIG5ldHdvcmtQcm9jZXNz
Q3Jhc2hlZE9yRmFpbGVkVG9MYXVuY2goKTsKKyAgICBtX3Rva2VuRm9yU2h1dHRpbmdEb3duID0g
bnVsbHB0cjsKKworICAgIGlmICghbV9zZWxmUmVmRm9yU2h1dHRpbmdEb3duKSB7CisgICAgICAg
IC8vIElmIHdlJ3JlIG5vdCBob2xkaW5nIHRoZSBzZWxmIHJlZiBmb3Igc2h1dHRpbmcgZG93biwg
dGhlbiB0aGUgY2hpbGQgcHJvY2VzcyBjcmFzaGVkLgorICAgICAgICAvLyBUaGlzIG1heSBjYXVz
ZSB1cyB0byBiZSBkZWxldGVkLgorICAgICAgICBuZXR3b3JrUHJvY2Vzc0NyYXNoZWRPckZhaWxl
ZFRvTGF1bmNoKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gVGhpcyBzaG91bGQgY2F1c2Ug
dXMgdG8gYmUgZGVsZXRlZC4KKyAgICAgICAgbV9zZWxmUmVmRm9yU2h1dHRpbmdEb3duID0gbnVs
bHB0cjsKKyAgICB9CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUlu
dmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6U3RyaW5nUmVmZXJlbmNlLCBJUEM6
OlN0cmluZ1JlZmVyZW5jZSkKQEAgLTI3MCw3ICsyNzksNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBJUEM6
OkNvbgogICAgIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cyA9IDA7CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKLSAgICBpZiAobV9wcm9jZXNzUG9vbC5wcm9jZXNzU3VwcHJlc3Npb25FbmFi
bGVkKCkpCisgICAgaWYgKG1fcHJvY2Vzc1Bvb2wgJiYgbV9wcm9jZXNzUG9vbC0+cHJvY2Vzc1N1
cHByZXNzaW9uRW5hYmxlZCgpKQogICAgICAgICBzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVk
KHRydWUpOwogI2VuZGlmCiAgICAgCkBAIC0zNjEsNiArMzcwLDE2IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdMb2NrZWRG
aWxlcykKICAgICAgICAgbV90b2tlbkZvckhvbGRpbmdMb2NrZWRGaWxlcyA9IG1fdGhyb3R0bGVy
LmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6cHJvY2Vzc1Bvb2xEZXN0cm95ZWQoKQoreworICAgIGlmICghY29ubmVjdGlvbigpLT5pc1Zh
bGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc2VsZlJlZkZvclNodXR0aW5nRG93biA9
IHRoaXM7CisgICAgbV90b2tlbkZvclNodXR0aW5nRG93biA9IG1fdGhyb3R0bGVyLmJhY2tncm91
bmRBY3Rpdml0eVRva2VuKCk7CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6U2h1dGRvd24oKSwgMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CiAjZW5kaWYgLy8gRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCBiZDU2
MGNjLi5mZGI0ZDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAi
V2Vic2l0ZURhdGFUeXBlcy5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRGVx
dWUuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKQEAgLTc2LDYgKzc3LDggQEAgcHVibGljOgog
CiAgICAgUHJvY2Vzc1Rocm90dGxlciYgdGhyb3R0bGVyKCkgeyByZXR1cm4gbV90aHJvdHRsZXI7
IH0KIAorICAgIHZvaWQgcHJvY2Vzc1Bvb2xEZXN0cm95ZWQoKTsKKwogcHJpdmF0ZToKICAgICBO
ZXR3b3JrUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJik7CiAKQEAgLTExNCw3ICsxMTcsNyBA
QCBwcml2YXRlOgogICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CiAgICAgdmlydHVhbCB2
b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIpIG92ZXJyaWRlOwogCi0gICAgV2ViUHJvY2Vzc1Bvb2wmIG1fcHJvY2Vzc1Bv
b2w7CisgICAgV2Vha1B0cjxXZWJQcm9jZXNzUG9vbD4gbV9wcm9jZXNzUG9vbDsKICAgICAKICAg
ICB1bnNpZ25lZCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7CiAgICAgRGVxdWU8UmVm
UHRyPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bjo6RGVsYXllZFJlcGx5Pj4gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXM7CkBAIC0xMjcsNiAr
MTMwLDkgQEAgcHJpdmF0ZToKICAgICBDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eSBtX2N1c3Rv
bVByb3RvY29sTWFuYWdlclByb3h5OwogICAgIFByb2Nlc3NUaHJvdHRsZXIgbV90aHJvdHRsZXI7
CiAgICAgUHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5VG9rZW4gbV90b2tlbkZv
ckhvbGRpbmdMb2NrZWRGaWxlczsKKworICAgIFJlZlB0cjxOZXR3b3JrUHJvY2Vzc1Byb3h5PiBt
X3NlbGZSZWZGb3JTaHV0dGluZ0Rvd247CisgICAgUHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3Vu
ZEFjdGl2aXR5VG9rZW4gbV90b2tlbkZvclNodXR0aW5nRG93bjsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NU
aHJvdHRsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIu
Y3BwCmluZGV4IDM2Y2EwYWEuLjA2YTI5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKQEAgLTEwNSw5ICsxMDUsNyBAQCB2b2lkIFByb2Nlc3NU
aHJvdHRsZXI6OnByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpCiAKIHZvaWQgUHJvY2Vzc1Rocm90dGxl
cjo6ZGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24oKQogewotICAgIGlmICghLS1tX3N1c3BlbmRN
ZXNzYWdlQ291bnQpCi0gICAgICAgIHVwZGF0ZUFzc2VydGlvbk5vdygpOwotICAgIEFTU0VSVCht
X3N1c3BlbmRNZXNzYWdlQ291bnQgPj0gMCk7CisgICAgdXBkYXRlQXNzZXJ0aW9uTm93KCk7CiB9
CiAKIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6YXNzZXJ0aW9uV2lsbEV4cGlyZUltbWluZW50bHko
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggZTE5
YjFjYS4uZTJkM2YyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCkBAIC0xNzEsNiArMTcxLDcgQEAgV2ViUHJvY2Vzc1Bvb2w6OldlYlByb2Nlc3NQb29s
KEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogICAgICwgbV9j
YW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbih0cnVlKQogICAgICwgbV91c2VzTmV0
d29ya1Byb2Nlc3MobV9jb25maWd1cmF0aW9uLT51c2VOZXR3b3JrUHJvY2VzcygpKQogI2VuZGlm
CisgICAgLCBtX3dlYWtGYWN0b3J5KHRoaXMpCiAjaWYgVVNFKFNPVVApCiAgICAgLCBtX2lnbm9y
ZVRMU0Vycm9ycyh0cnVlKQogI2VuZGlmCkBAIC0yNzIsNiArMjczLDExIEBAIFdlYlByb2Nlc3NQ
b29sOjp+V2ViUHJvY2Vzc1Bvb2woKQogI2lmbmRlZiBOREVCVUcKICAgICBwcm9jZXNzUG9vbENv
dW50ZXIuZGVjcmVtZW50KCk7CiAjZW5kaWYKKworI2lmIEVOQUJMRShORVRXT1JLX1BST0NFU1Mp
CisgICAgaWYgKG1fbmV0d29ya1Byb2Nlc3MpCisgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnBy
b2Nlc3NQb29sRGVzdHJveWVkKCk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6
aW5pdGlhbGl6ZUNsaWVudChjb25zdCBXS0NvbnRleHRDbGllbnRCYXNlKiBjbGllbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IGM0N2YzNTEuLjcwMTVm
YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC01MSw2
ICs1MSw3IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIApAQCAtMzY1LDYgKzM2Niw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
U3RyaW5nIGxlZ2FjeVBsYXRmb3JtRGVmYXVsdFdlYlNRTERhdGFiYXNlRGlyZWN0b3J5KCk7CiAg
ICAgc3RhdGljIFN0cmluZyBsZWdhY3lQbGF0Zm9ybURlZmF1bHRNZWRpYUtleXNTdG9yYWdlRGly
ZWN0b3J5KCk7CiAKKyAgICBXZWFrUHRyPFdlYlByb2Nlc3NQb29sPiBjcmVhdGVXZWFrUHRyKCkg
eyByZXR1cm4gbV93ZWFrRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KKwogcHJpdmF0ZToKICAg
ICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogCkBAIC01MjYsNiArNTI5LDggQEAgcHJpdmF0
ZToKICAgICBSZWZQdHI8TmV0d29ya1Byb2Nlc3NQcm94eT4gbV9uZXR3b3JrUHJvY2VzczsKICNl
bmRpZgogCisgICAgV2Vha1B0ckZhY3Rvcnk8V2ViUHJvY2Vzc1Bvb2w+IG1fd2Vha0ZhY3Rvcnk7
CisKICNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKICAgICBSZWZQdHI8RGF0YWJhc2VQcm9j
ZXNzUHJveHk+IG1fZGF0YWJhc2VQcm9jZXNzOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253235</attachid>
            <date>2015-05-15 16:11:05 -0700</date>
            <delta_ts>2015-05-17 10:03:15 -0700</delta_ts>
            <desc>New patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>18908</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktp
dDIvQ01ha2VMaXN0cy50eHQKaW5kZXggOWJkOTlkMy4uMjRiMDlkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQKQEAgLTY0MSw2ICs2NDEsNyBAQCBzZXQoV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUwog
ICAgIFBsdWdpblByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgogICAgIFBsdWdpblBy
b2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KIAorICAgIFNoYXJlZC9DaGls
ZFByb2Nlc3MubWVzc2FnZXMuaW4KICAgICBTaGFyZWQvV2ViQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bgogCiAgICAgU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNz
YWdlcy5pbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IDM4YzI1ZjAuLmMyMDA1NDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAxNS0wNS0xNSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgTmV0d29ya2luZyBwcm9jZXNzIG9uIGlPUyBjYW4gYmUgc3VzcGVuZGVkIGFu
ZCBuZXZlciBleGl0LgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjAzNjg2MzA+IGFuZCBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0OTcxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUncyBhIGZldyBpc3N1ZXMg
aGVyZS4KKyAgICAgICAgCisgICAgICAgIDEgLSBXaGVuIHRoZSBOZXR3b3JrUHJvY2Vzc1Byb3h5
IGdvZXMgYXdheSwgaXQgdGFrZXMgaXRzIHByb2Nlc3MgYXNzZXJ0aW9uIHdpdGggaXQuIFRoaXMg
Y2F1c2VzCisgICAgICAgICAgICB0aGUgTmV0d29yayBwcm9jZXNzIHRvIHN1c3BlbmQgaW5kZWZp
bml0ZWx5LCB1bmFibGUgdG8gZXZlciByZXNwb25kIHRvIElQQzo6Q29ubmVjdGlvbiBjYWxsYmFj
a3MuCisgICAgICAgICAgICBXZSBhbHJlYWR5IHNvbHZlZCB0aGlzIHdpdGggV2ViUHJvY2VzcyB3
aXRoIGEgd2F0Y2hkb2cgdGltZXIga2VlcGluZyBib3RoIHRoZSBwcm9jZXNzIGFzc2VydGlvbgor
ICAgICAgICAgICAgYW5kIHhwY19jb25uZWN0aW9uIGFsaXZlIHdoaWxlIHRoZSBwcm9jZXNzIHNo
dXRzIGRvd24uIFRoaXMgcGF0Y2ggZXhwYW5kcyB0aGF0IHRvIHRoZSBuZXR3b3JrCisgICAgICAg
ICAgICBwcm9jZXNzLCBhbmQgaXQgd2lsbCBiZSBlYXN5IHRvIGV4cGFuZCB0aGF0IHRvIGRhdGFi
YXNlIGFuZCBwbHVnaW4gcHJvY2Vzc2VzIGRvaW5nIGZvcndhcmQuCisgICAgICAgIAorICAgICAg
ICAyIC0gQWxsIG9mIG91ciBjaGlsZCBwcm9jZXNzZXMgZWl0aGVyIGRlY2lkZSB0byBzZWxmLXRl
cm1pbmF0ZSBvciBsaXN0ZW4gZm9yIHRoZWlyIGNvbm5lY3Rpb24gdG8KKyAgICAgICAgICAgIGNs
b3NlIGF0IHdoaWNoIHBvaW50IHRoZXkgdGVybWluYXRlLiBUaGlzIGxlYWRzIHRvIHZhcmlvdXMg
cmFjZXMuIFdlIHNob3VsZAorICAgICAgICAgICAgbW92ZSB0byBhIG1vZGVsIHdoZXJlIHRoZSBV
SSBwcm9jZXNzIGV4cGxpY2l0bHkgdGVsbHMgdGhlbSB0byBzaHV0ZG93biwgYW5kIHRoaXMgcGF0
Y2ggc3RhcnRzIHVzIAorICAgICAgICAgICAgZG93biB0aGF0IHBhdGguCisgICAgICAgIAorICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6Cisg
ICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZSk6IFNlbmQgQ2hpbGRQcm9jZXNz
IG1lc3NhZ2VzIHRvIENoaWxkUHJvY2Vzcy4KKyAgICAgICAgCisgICAgICAgICogU2hhcmVkL0No
aWxkUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJvY2Vzczo6c2h1dERvd24p
OiBGb3Igbm93LCBqdXN0IHRlcm1pbmF0ZSB0aGUgcHJvY2Vzcy4gSW4gdGhlIGZ1dHVyZSBoYXZl
IHRoZQorICAgICAgICAgIHByb2Nlc3MgZG8gY2xlYW51cCB3b3JrIGJlZm9yZSBpdCBpcyB0ZXJt
aW5hdGVkLgorICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3MuaDoKKyAgICAgICAgKiBTaGFy
ZWQvQ2hpbGRQcm9jZXNzLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgCisgICAgICAgICog
U2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hpbGRQcm9j
ZXNzUHJveHk6OnNodXREb3duUHJvY2Vzcyk6IFNldCBhIHdhdGNoZG9nIGFuZCAtIGlmIHBvc3Np
YmxlIC0gZXhwbGljaXRseSBtZXNzYWdlIAorICAgICAgICAgIHRoZSBwcm9jZXNzIHRvIFNodXRE
b3duLgorICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nlc3NQcm94eTo6YWJvcnRQcm9jZXNzTGF1
bmNoSWZOZWVkZWQpOiBEZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3NQcm94
eS5oOgorICAgICAgICAKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6fldlYlByb2Nlc3NQb29sKTogRXhwbGlj
aXRseSB0ZWxsIHRoZSBuZXR3b3JrIHByb2Nlc3MgdG8gc2h1dCBkb3duLgorICAgICAgICAKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5OjpyZW1vdmVXZWJQYWdlKTogTW92ZSBhYm9ydFByb2Nlc3NMYXVuY2hJ
Zk5lZWRlZCgpIGFuZCB0aGUgd2F0Y2hkb2cgdGltZXIKKyAgICAgICAgICBjb2RlIHRvIENoaWxk
UHJvY2Vzc1Byb3h5OjpzaHV0RG93blByb2Nlc3MuCisgICAgICAgIAorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRpZFJl
Y2VpdmVNZXNzYWdlKTogU2VuZCBDaGlsZFByb2Nlc3MgbWVzc2FnZXMgdG8gQ2hpbGRQcm9jZXNz
OjpkaWRSZWNlaXZlTWVzc2FnZS4KKwogMjAxNS0wNS0xNSAgSmVyZW15IEpvbmVzICA8amVyZW15
akBhcHBsZS5jb20+CiAKICAgICAgICAgTGltaXQgYWx0ZXJuYXRlIGZ1bGxzY3JlZW4gd2l0aCBs
aW5rZWQgb24gb3IgYWZ0ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291
cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBiMzFi
MTRmLi5mNTVkNmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5t
YWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTY5LDYgKzY5
LDcgQEAgVlBBVEggPSBcCiAKIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogICAgIEF1dGhlbnRpY2F0
aW9uTWFuYWdlciBcCisgICAgQ2hpbGRQcm9jZXNzIFwKICAgICBDdXN0b21Qcm90b2NvbE1hbmFn
ZXIgXAogICAgIEN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5IFwKICAgICBEYXRhYmFzZVByb2Nl
c3MgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwCmluZGV4IDBhZDQ5YWQuLmY4MzA5M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl
ICJBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIkF0dGFjaG1lbnQuaCIKICNpbmNsdWRlICJB
dXRoZW50aWNhdGlvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIkN1c3RvbVByb3RvY29sTWFuYWdlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcu
aCIKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgpAQCAtMTI3LDYg
KzEyOCwxMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6TWVzc2FnZQogICAgIGlmIChtZXNzYWdlUmVjZWl2
ZXJNYXAoKS5kaXNwYXRjaE1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlcikpCiAgICAgICAgIHJl
dHVybjsKIAorICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdl
czo6Q2hpbGRQcm9jZXNzOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAgQ2hpbGRQ
cm9jZXNzOjpkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKwogICAgIGRpZFJlY2VpdmVOZXR3b3JrUHJvY2Vzc01lc3NhZ2UoY29u
bmVjdGlvbiwgZGVjb2Rlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9DaGlsZFByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5j
cHAKaW5kZXggYzdmOGNkYS4uZDk0OWNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0NoaWxkUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJv
Y2Vzcy5jcHAKQEAgLTE2MCw2ICsxNjAsMTMgQEAgdm9pZCBDaGlsZFByb2Nlc3M6OnRlcm1pbmF0
ZSgpCiAgICAgc3RvcFJ1bkxvb3AoKTsKIH0KIAordm9pZCBDaGlsZFByb2Nlc3M6OnNodXREb3du
KCkKK3sKKyAgICAvLyBGSVhNRTogU3ViY2xhc3NlcyBvZiBDaGlsZFByb2Nlc3Mgc2hvdWxkIGFs
bCBoYXZlIGEgY2hhbmNlIHRvIGRvIHNvbWUgZXhwbGljaXQgY2xlYW51cAorICAgIC8vIGJlZm9y
ZSB0aGUgcHJvY2VzcyBpcyB0ZXJtaW5hdGVkLgorICAgIHRlcm1pbmF0ZSgpOworfQorCiAjaWYg
IVBMQVRGT1JNKENPQ09BKQogdm9pZCBDaGlsZFByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZSgp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmgKaW5kZXggYjY3ZTNiNy4uMGViOTMz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuaApAQCAtOTcsMTEgKzk3LDE1IEBA
IHByb3RlY3RlZDoKICAgICBzdGF0aWMgdm9pZCBzdG9wTlNBcHBSdW5Mb29wKCk7CiAjZW5kaWYK
IAorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CisKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpN
ZXNzYWdlU2VuZGVyCiAgICAgdmlydHVhbCBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJD
b25uZWN0aW9uKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB1aW50NjRfdCBtZXNzYWdlU2VuZGVy
RGVzdGluYXRpb25JRCgpIG92ZXJyaWRlOwogCisgICAgdm9pZCBzaHV0RG93bigpOworCiAgICAg
dm9pZCB0ZXJtaW5hdGlvblRpbWVyRmlyZWQoKTsKIAogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFs
aXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5tZXNzYWdlcy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OWRmYjA1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5tZXNzYWdlcy5pbgpA
QCAtMCwwICsxLDI1IEBACisjIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMg
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
IyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisK
K21lc3NhZ2VzIC0+IENoaWxkUHJvY2VzcyB7CisgICAgU2h1dERvd24oKQorfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKaW5kZXggM2MyOGY4My4uZTQxOTk0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ2hpbGRQcm9jZXNz
UHJveHkuaCIKIAorI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xNTAsMjIgKzE1MSwzMCBA
QCB2b2lkIENoaWxkUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5j
aGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZAogICAgIG1fcGVuZGluZ01lc3NhZ2VzLmNsZWFyKCk7
CiB9CiAKLXZvaWQgQ2hpbGRQcm9jZXNzUHJveHk6OmFib3J0UHJvY2Vzc0xhdW5jaElmTmVlZGVk
KCkKLXsKLSAgICBpZiAoc3RhdGUoKSAhPSBTdGF0ZTo6TGF1bmNoaW5nKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBtX3Byb2Nlc3NMYXVuY2hlci0+aW52YWxpZGF0ZSgpOwotICAgIG1fcHJvY2Vz
c0xhdW5jaGVyID0gbnVsbHB0cjsKLX0KLQogdm9pZCBDaGlsZFByb2Nlc3NQcm94eTo6c2h1dERv
d25Qcm9jZXNzKCkKIHsKLSAgICBpZiAoIW1fY29ubmVjdGlvbikKKyAgICBzd2l0Y2ggKHN0YXRl
KCkpIHsKKyAgICBjYXNlIFN0YXRlOjpMYXVuY2hpbmc6CisgICAgICAgIG1fcHJvY2Vzc0xhdW5j
aGVyLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIG1fcHJvY2Vzc0xhdW5jaGVyID0gbnVsbHB0cjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBTdGF0ZTo6UnVubmluZzoKKyNpZiBQTEFURk9STShJ
T1MpCisgICAgICAgIC8vIE9uIGlPUyBkZXBsb3kgYSB3YXRjaGRvZyBpbiB0aGUgVUkgcHJvY2Vz
cywgc2luY2UgdGhlIGNoaWxkIHByb2Nlc3MgbWF5IGJlIHN1c3BlbmRlZC4KKyAgICAgICAgLy8g
SWYgMzBzIGlzIGluc3VmZmljaWVudCBmb3IgYW55IG91dHN0YW5kaW5nIGFjdGl2aXR5IHRvIGNv
bXBsZXRlIGNsZWFubHksIHRoZW4gaXQgd2lsbCBiZSBraWxsZWQuCisgICAgICAgIEFTU0VSVCht
X2Nvbm5lY3Rpb24pOworICAgICAgICBtX2Nvbm5lY3Rpb24tPnRlcm1pbmF0ZVNvb24oMzApOwor
I2VuZGlmCisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU3RhdGU6OlRlcm1pbmF0ZWQ6CiAgICAg
ICAgIHJldHVybjsKKyAgICB9CiAKICAgICBwcm9jZXNzV2lsbFNodXREb3duKCptX2Nvbm5lY3Rp
b24pOwogCisgICAgaWYgKGNhblNlbmRNZXNzYWdlKCkpCisgICAgICAgIHNlbmQoTWVzc2FnZXM6
OkNoaWxkUHJvY2Vzczo6U2h1dERvd24oKSwgMCk7CisKICAgICBtX2Nvbm5lY3Rpb24tPmludmFs
aWRhdGUoKTsKICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuaAppbmRleCBlMDU3MmFkLi5iMGE1Yjc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuaApAQCAtNzIsMTAgKzcyLDkgQEAg
cHVibGljOgogICAgIGJvb2wgY2FuU2VuZE1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBzdGF0ZSgp
ICE9IFN0YXRlOjpUZXJtaW5hdGVkO30KICAgICBib29sIHNlbmRNZXNzYWdlKHN0ZDo6dW5pcXVl
X3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiwgdW5zaWduZWQgbWVzc2FnZVNlbmRGbGFncyk7CiAK
LXByb3RlY3RlZDoKICAgICB2b2lkIHNodXREb3duUHJvY2VzcygpOwotICAgIHZvaWQgYWJvcnRQ
cm9jZXNzTGF1bmNoSWZOZWVkZWQoKTsKIAorcHJvdGVjdGVkOgogICAgIC8vIFByb2Nlc3NMYXVu
Y2hlcjo6Q2xpZW50CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNz
TGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpIG92ZXJyaWRlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA0ODgyMDM1Li42
OWIzYTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
QEAgLTI3Miw2ICsyNzIsMTEgQEAgV2ViUHJvY2Vzc1Bvb2w6On5XZWJQcm9jZXNzUG9vbCgpCiAj
aWZuZGVmIE5ERUJVRwogICAgIHByb2Nlc3NQb29sQ291bnRlci5kZWNyZW1lbnQoKTsKICNlbmRp
ZgorCisjaWYgRU5BQkxFKE5FVFdPUktfUFJPQ0VTUykKKyAgICBpZiAobV9uZXR3b3JrUHJvY2Vz
cykKKyAgICAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+c2h1dERvd25Qcm9jZXNzKCk7CisjZW5kaWYK
IH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6aW5pdGlhbGl6ZUNsaWVudChjb25zdCBXS0NvbnRl
eHRDbGllbnRCYXNlKiBjbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCmluZGV4IDE4YjZjNzAuLjFjNjM4NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0yNDUsMTYgKzI0NSw2IEBAIHZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpyZW1vdmVXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCkKICAgICBpZiAo
IW1fcHJvY2Vzc1Bvb2wtPnVzZXNOZXR3b3JrUHJvY2VzcygpIHx8IHN0YXRlKCkgPT0gU3RhdGU6
OlRlcm1pbmF0ZWQgfHwgIWNhblRlcm1pbmF0ZUNoaWxkUHJvY2VzcygpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBhYm9ydFByb2Nlc3NMYXVuY2hJZk5lZWRlZCgpOwotCi0jaWYgUExBVEZPUk0o
SU9TKQotICAgIGlmIChzdGF0ZSgpID09IFN0YXRlOjpSdW5uaW5nKSB7Ci0gICAgICAgIC8vIE9u
IGlPUyBkZXBsb3kgYSB3YXRjaGRvZyBpbiB0aGUgVUkgcHJvY2Vzcywgc2luY2UgdGhlIGNoaWxk
IHByb2Nlc3MgbWF5IGJlIHN1c3BlbmRlZC4KLSAgICAgICAgLy8gSWYgMzBzIGlzIGluc3VmZmlj
aWVudCBmb3IgYW55IG91dHN0YW5kaW5nIGFjdGl2aXR5IHRvIGNvbXBsZXRlIGNsZWFubHksIHRo
ZW4gaXQgd2lsbCBiZSBraWxsZWQuCi0gICAgICAgIGNvbm5lY3Rpb24oKS0+dGVybWluYXRlU29v
bigzMCk7Ci0gICAgfQotI2VuZGlmCi0KICAgICBzaHV0RG93bigpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTFiMTA1
Yy4uODE2MDAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTA1NSw2ICsxMDU1LDggQEAKIAkJNTFGQTFFMjMxODBDQ0FERTAw
QzQ0QkU5IC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMzREU0NjgxNUE5MTc2MzAwOEQyNkZDIC8qIEZvdW5k
YXRpb24uZnJhbWV3b3JrICovOyB9OwogCQk1MUZBMkQ3NDE1MjEyREYxMDBDMUJBMEIgLyogSW5q
ZWN0ZWRCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQTJENUMxNTIxMUE1MDAwQzFCQTBCIC8qIEluamVj
dGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmNwcCAqLzsgfTsKIAkJNTFGQTJENzcxNTIxMkUy
NjAwQzFCQTBCIC8qIFdLQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkEyRDc1MTUyMTJFMUUwMEMxQkEw
QiAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5jcHAgKi87IH07CisJCTUxRkFFQzNBMUIw
NjU3NjMwMDA5QzRFNyAvKiBDaGlsZFByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQUVDMzcxQjA2NTczMTAwMDlDNEU3IC8q
IENoaWxkUHJvY2Vzc01lc3NhZ2VzLmggKi87IH07CisJCTUxRkFFQzNCMUIwNjU3NjgwMDA5QzRF
NyAvKiBDaGlsZFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQUVDMzYxQjA2NTczMTAwMDlDNEU3IC8qIENo
aWxkUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTUxRkIwOEZGMTYzOURFMUEw
MEVDMzI0QSAvKiBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBQkY2NTYxNjM5MkYxNTAwMTMyQTdBIC8q
IFdlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgKi87IH07CiAJCTUxRkQxOEI1MTY1MUZCQUQw
MERCRTFDRSAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGRDE4QjMxNjUxRkJBRDAwREJFMUNFIC8qIE5l
dHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgKi87IH07CiAJCTUxRkQxOEI2MTY1MUZCQUQwMERCRTFD
RSAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkQxOEI0MTY1MUZCQUQwMERCRTFDRSAvKiBOZXR3b3JrUmVz
b3VyY2VMb2FkZXIuaCAqLzsgfTsKQEAgLTMxNDUsNiArMzE0Nyw3IEBACiAJCTUxNjMxOTkxMTYy
ODk4MEEwMEUyMkYwMCAvKiBOZXR3b3JrUHJvY2Vzc1Byb3h5TWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gTmV0d29ya1Byb2Nlc3NQcm94eU1hYy5tbTsgcGF0
aCA9IG1hYy9OZXR3b3JrUHJvY2Vzc1Byb3h5TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTYzRUEzRjFBQ0M3NDgyMDAxMkQxRTQgLyogTmF0aXZlQ29udGV4dE1lbnVJdGVt
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdGl2ZUNvbnRleHRNZW51SXRl
bS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTYzRUE0MzFBQ0M3NEFFMDAxMkQx
RTQgLyogTmF0aXZlQ29udGV4dE1lbnVJdGVtLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gTmF0aXZlQ29udGV4dE1lbnVJdGVtLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1MTY0QzA5NDFCMDVCNzU3MDA0RjEwMkEgLyogQ2hpbGRQcm9jZXNzLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENoaWxkUHJvY2Vzcy5tZXNzYWdlcy5p
bjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2NTRFRkIxODRFRjMzRjAwN0RDODM3
IC8qIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FM
aXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE2NTRFRkMxODRFRjMzRjAw
N0RDODM3IC8qIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FMaXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlU1FM
aXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNjU0RUZGMTg0RUYzNEEwMDdE
QzgzNyAvKiBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzI2Myw2ICszMjY2LDggQEAKIAkJNTFGQTJENUExNTIx
MUExRTAwQzFCQTBCIC8qIEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5zaW9uLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlRE9NV2luZG93RXh0ZW5z
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRkEyRDVDMTUyMTFBNTAwMEMx
QkEwQiAvKiBJbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZURPTVdpbmRvd0V4dGVuc2lv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRkEyRDc1MTUyMTJFMUUwMEMx
QkEwQiAvKiBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxRkFFQzM2MUIwNjU3MzEwMDA5QzRFNyAvKiBDaGls
ZFByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ2hpbGRQcm9jZXNzTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTFGQUVDMzcxQjA2NTczMTAwMDlDNEU3IC8qIENoaWxkUHJvY2Vzc01l
c3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENoaWxkUHJvY2Vzc01l
c3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRkIwOTAyMTYzQTNCMUMw
MEVDMzI0QSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBwYXRoID0gTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUxRkQxOEIzMTY1MUZCQUQwMERCRTFDRSAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxRkQxOEI0MTY1MUZCQUQwMERCRTFDRSAv
KiBOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gTmV0d29ya1Jlc291cmNlTG9hZGVyLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UmVzb3VyY2VMb2FkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ3MzEsNiAr
NDczNiw3IEBACiAJCQkJQkMzMDY1RjkxMjU5MzQ0RTAwRTcxMjc4IC8qIENhY2hlTW9kZWwuaCAq
LywKIAkJCQkxQTJEOTU2RTEyODQ4NTY0MDAxRUI5NjIgLyogQ2hpbGRQcm9jZXNzLmNwcCAqLywK
IAkJCQkxQTJEOTU2RDEyODQ4NTY0MDAxRUI5NjIgLyogQ2hpbGRQcm9jZXNzLmggKi8sCisJCQkJ
NTE2NEMwOTQxQjA1Qjc1NzAwNEYxMDJBIC8qIENoaWxkUHJvY2Vzcy5tZXNzYWdlcy5pbiAqLywK
IAkJCQlFMTUxM0M2NDE2NkVBQkIyMDAxNDlGQ0IgLyogQ2hpbGRQcm9jZXNzUHJveHkuY3BwICov
LAogCQkJCUUxNTEzQzY1MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oICov
LAogCQkJCTI5MEY0MjcxMTcyQTBDNzQwMDkzOUZGMCAvKiBDaGlsZFByb2Nlc3NTdXBwbGVtZW50
LmggKi8sCkBAIC03MjMwLDYgKzcyMzYsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNTEyRjU4
QTAxMkE4ODNBRDAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi8sCiAJCQkJNTEyRjU4QTExMkE4ODNBRDAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9u
TWFuYWdlck1lc3NhZ2VzLmggKi8sCisJCQkJNTFGQUVDMzYxQjA2NTczMTAwMDlDNEU3IC8qIENo
aWxkUHJvY2Vzc01lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTFGQUVDMzcxQjA2NTczMTAw
MDlDNEU3IC8qIENoaWxkUHJvY2Vzc01lc3NhZ2VzLmggKi8sCiAJCQkJRTExNUM3MTUxOTBGOEEy
NTAwRUNDNTE2IC8qIGNvbS5hcHBsZS5XZWJLaXQuRGF0YWJhc2VzLnNiICovLAogCQkJCUUxN0FF
MkMyMTZCOUM2M0EwMDFDNDJGMSAvKiBjb20uYXBwbGUuV2ViS2l0Lk5ldHdvcmtQcm9jZXNzLnNi
ICovLAogCQkJCUUxOTY3RTM3MTUwQUI1RTIwMEM3MzE2OSAvKiBjb20uYXBwbGUuV2ViUHJvY2Vz
cy5zYiAqLywKQEAgLTgyMzMsNiArODI0MSw3IEBACiAJCQkJMUFCNDc0REUxODRENDQ1OTAwNTFC
NjIyIC8qIFdLQnVuZGxlUGFnZVVJQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0YwNDlF
NzExRkUyMEY2MDBGODZBNTggLyogV0tCdW5kbGVQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzYwQzU3OTEyNDBBNTQ2MDA4QzVFMjkgLyogV0tCdW5kbGVSYW5nZUhhbmRsZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTFGQUVDM0ExQjA2NTc2MzAwMDlDNEU3IC8qIENoaWxkUHJvY2Vzc01l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVEMjRDNzE2Q0Q3M0M1MDA3RDU0NjEgLyog
V0tCdW5kbGVSYW5nZUhhbmRsZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTRERjlG
MTIwQjYzNUYwMDgyNkMwQyAvKiBXS0J1bmRsZVNjcmlwdFdvcmxkLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzQwNzVGNjEyNEZGMDI3MDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUluZm8uaCBpbiBI
ZWFkZXJzICovLApAQCAtOTU3OSw2ICs5NTg4LDcgQEAKIAkJCQkxQTZGQkEyQjExRTY4NjI3MDBE
QjEzNzEgLyogTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2
RkJEMjkxMUU2OUJDMjAwREIxMzcxIC8qIE5ldHNjYXBlUGx1Z2luLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBRTVCN0ZCMTFFN0FFRDIwMEJBNjc2NyAvKiBOZXRzY2FwZVBsdWdpbk1hYy5tbSBp
biBTb3VyY2VzICovLAorCQkJCTUxRkFFQzNCMUIwNjU3NjgwMDA5QzRFNyAvKiBDaGlsZFByb2Nl
c3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE0QTlDNTUxMkI4MTZD
RjAwOEZFOTg0IC8qIE5ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFBNEE5QzlBMTJCODIxQ0QwMDhGRTk4NCAvKiBOZXRzY2FwZVBsdWdpbk1vZHVsZU1hYy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTFBQTU4ODkzMTFFRTcwNDAwMDYxQjg4MiAvKiBOZXRzY2FwZVBs
dWdpblN0cmVhbS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwCmluZGV4IGRmZWZhNWEuLjRmODU3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkFQSVBh
Z2VHcm91cEhhbmRsZS5oIgogI2luY2x1ZGUgIkFQSVBhZ2VIYW5kbGUuaCIKICNpbmNsdWRlICJB
dXRoZW50aWNhdGlvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIkN1c3RvbVByb3RvY29sTWFuYWdlci5oIgogI2luY2x1ZGUgIkRyYXdpbmdB
cmVhLmgiCiAjaW5jbHVkZSAiRXZlbnREaXNwYXRjaGVyLmgiCkBAIC02MzQsNiArNjM1LDExIEBA
IHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBJUEM6Ok1lc3NhZ2VEZWNvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBp
ZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OkNoaWxkUHJvY2Vz
czo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIENoaWxkUHJvY2Vzczo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKICAgICBMT0dfRVJST1IoIlVuaGFuZGxlZCB3ZWIgcHJvY2VzcyBtZXNzYWdlICclczolcyci
LCBkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKS50b1N0cmluZygpLmRhdGEoKSwgZGVjb2Rl
ci5tZXNzYWdlTmFtZSgpLnRvU3RyaW5nKCkuZGF0YSgpKTsKIH0KIAo=
</data>
<flag name="review"
          id="278112"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>