<?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>80886</bug_id>
          
          <creation_ts>2012-03-12 14:13:17 -0700</creation_ts>
          <short_desc>Convert nodesFromRect tests to use Internals interface</short_desc>
          <delta_ts>2012-03-13 13:07:09 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>80847</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antonio Gomes">tonikitoo</reporter>
          <assigned_to name="Antonio Gomes">tonikitoo</assigned_to>
          <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jberlin</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>576498</commentid>
    <comment_count>0</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-03-12 14:13:17 -0700</bug_when>
    <thetext>It will make it easier to extend it for future tests, given that there won&apos;t be mac, gtk and qt specific LayoutTestController implementations anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576541</commentid>
    <comment_count>1</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-03-12 14:35:26 -0700</bug_when>
    <thetext>Patch coming..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576715</commentid>
    <comment_count>2</comment_count>
      <attachid>131450</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-03-12 16:42:14 -0700</bug_when>
    <thetext>Created attachment 131450
patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576926</commentid>
    <comment_count>3</comment_count>
      <attachid>131450</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2012-03-12 19:32:30 -0700</bug_when>
    <thetext>Comment on attachment 131450
patch v1

Attachment 131450 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11945250</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577076</commentid>
    <comment_count>4</comment_count>
      <attachid>131450</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-12 23:14:07 -0700</bug_when>
    <thetext>Comment on attachment 131450
patch v1

Attachment 131450 did not pass win-ews (win):
Output: http://queues.webkit.org/results/11947353</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577330</commentid>
    <comment_count>5</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-03-13 08:19:15 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 131450 [details])
&gt; Attachment 131450 [details] did not pass win-ews (win):
&gt; Output: http://queues.webkit.org/results/11947353

That is the window link failure:

10&gt;Linking...
10&gt;   Creating library C:\cygwin\home\buildbot\WebKit\WebKitBuild\Debug\lib\DumpRenderTree.lib and object C:\cygwin\home\buildbot\WebKit\WebKitBuild\Debug\lib\DumpRenderTree.exp
10&gt;WebCoreTestSupport.lib(Internals.obj) : error LNK2019: unresolved external symbol &quot;public: class WTF::PassRefPtr&lt;class WebCore::NodeList&gt; __thiscall WebCore::Document::nodesFromRect(int,int,unsigned int,unsigned int,unsigned int,unsigned int,bool)const &quot; (?nodesFromRect@Document@WebCore@@QBE?AV?$PassRefPtr@VNodeList@WebCore@@@WTF@@HHIIII_N@Z) referenced in function &quot;public: class WTF::PassRefPtr&lt;class WebCore::NodeList&gt; __thiscall WebCore::Internals::nodesFromRect(class WebCore::Document *,int,int,unsigned int,unsigned int,unsigned int,unsigned int,bool,int &amp;)const &quot; (?nodesFromRect@Internals@WebCore@@QBE?AV?$PassRefPtr@VNodeList@WebCore@@@WTF@@PAVDocument@2@HHIIII_NAAH@Z)
10&gt;WebCoreTestSupport.lib(JSInternals.obj) : error LNK2019: unresolved external symbol &quot;class JSC::JSValue __cdecl WebCore::toJS(class JSC::ExecState *,class WebCore::JSDOMGlobalObject *,class WebCore::NodeList *)&quot; (?toJS@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNodeList@1@@Z) referenced in function &quot;__int64 __fastcall WebCore::jsInternalsPrototypeFunctionNodesFromRect(class JSC::ExecState *)&quot; (?jsInternalsPrototypeFunctionNodesFromRect@WebCore@@YI_JPAVExecState@JSC@@@Z)
10&gt;C:\cygwin\home\buildbot\WebKit\WebKitBuild\Debug\bin\DumpRenderTree.dll : fatal error LNK1120: 2 unresolved externals
10&gt;Build log was saved at &quot;file://C:\cygwin\home\buildbot\WebKit\WebKitBuild\Debug\obj\DumpRenderTree\BuildLog.htm&quot;
10&gt;DumpRenderTree - 3 error(s), 0 warning(s)


@Jessie, would you know how can I fix it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577421</commentid>
    <comment_count>6</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2012-03-13 09:19:45 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 131450 [details] [details])
&gt; &gt; Attachment 131450 [details] [details] did not pass win-ews (win):
&gt; &gt; Output: http://queues.webkit.org/results/11947353
&gt; 
&gt; That is the window link failure:
&gt; 
&gt; 10&gt;Linking...
&gt; 10&gt;   Creating library C:\cygwin\home\buildbot\WebKit\WebKitBuild\Debug\lib\DumpRenderTree.lib and object C:\cygwin\home\buildbot\WebKit\WebKitBuild\Debug\lib\DumpRenderTree.exp
&gt; 10&gt;WebCoreTestSupport.lib(Internals.obj) : error LNK2019: unresolved external symbol &quot;public: class WTF::PassRefPtr&lt;class WebCore::NodeList&gt; __thiscall WebCore::Document::nodesFromRect(int,int,unsigned int,unsigned int,unsigned int,unsigned int,bool)const &quot; (?nodesFromRect@Document@WebCore@@QBE?AV?$PassRefPtr@VNodeList@WebCore@@@WTF@@HHIIII_N@Z) referenced in function &quot;public: class WTF::PassRefPtr&lt;class WebCore::NodeList&gt; __thiscall WebCore::Internals::nodesFromRect(class WebCore::Document *,int,int,unsigned int,unsigned int,unsigned int,unsigned int,bool,int &amp;)const &quot; (?nodesFromRect@Internals@WebCore@@QBE?AV?$PassRefPtr@VNodeList@WebCore@@@WTF@@PAVDocument@2@HHIIII_NAAH@Z)
&gt; 10&gt;WebCoreTestSupport.lib(JSInternals.obj) : error LNK2019: unresolved external symbol &quot;class JSC::JSValue __cdecl WebCore::toJS(class JSC::ExecState *,class WebCore::JSDOMGlobalObject *,class WebCore::NodeList *)&quot; (?toJS@WebCore@@YA?AVJSValue@JSC@@PAVExecState@3@PAVJSDOMGlobalObject@1@PAVNodeList@1@@Z) referenced in function &quot;__int64 __fastcall WebCore::jsInternalsPrototypeFunctionNodesFromRect(class JSC::ExecState *)&quot; (?jsInternalsPrototypeFunctionNodesFromRect@WebCore@@YI_JPAVExecState@JSC@@@Z)
&gt; 10&gt;C:\cygwin\home\buildbot\WebKit\WebKitBuild\Debug\bin\DumpRenderTree.dll : fatal error LNK1120: 2 unresolved externals
&gt; 10&gt;Build log was saved at &quot;file://C:\cygwin\home\buildbot\WebKit\WebKitBuild\Debug\obj\DumpRenderTree\BuildLog.htm&quot;
&gt; 10&gt;DumpRenderTree - 3 error(s), 0 warning(s)
&gt; 
&gt; 
&gt; @Jessie, would you know how can I fix it?

I think you need to export these symbols in WebKit2.def (for an example, see http://trac.webkit.org/changeset/99613/trunk/Source/WebKit2/win/WebKit2.def).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577437</commentid>
    <comment_count>7</comment_count>
      <attachid>131637</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-03-13 09:40:36 -0700</bug_when>
    <thetext>Created attachment 131637
patch v2 - buildfixes for gtk and win (attempt)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577479</commentid>
    <comment_count>8</comment_count>
      <attachid>131637</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-03-13 10:06:10 -0700</bug_when>
    <thetext>Comment on attachment 131637
patch v2 - buildfixes for gtk and win (attempt)

Attachment 131637 did not pass win-ews (win):
Output: http://queues.webkit.org/results/11949503</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577498</commentid>
    <comment_count>9</comment_count>
      <attachid>131657</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-03-13 10:26:10 -0700</bug_when>
    <thetext>Created attachment 131657
(committed r110594 r=rniwa) patch v3 - win buildfixes - more symbols exported</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577562</commentid>
    <comment_count>10</comment_count>
      <attachid>131657</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-13 11:08:12 -0700</bug_when>
    <thetext>Comment on attachment 131657
(committed r110594 r=rniwa) patch v3 - win buildfixes - more symbols exported

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

&gt; Source/WebCore/testing/Internals.cpp:686
&gt; +                                              unsigned topPadding, unsigned rightPadding, unsigned bottomPadding, unsigned leftPadding,

Nit: wrong indentation. We don&apos;t align arguments like this.

&gt; Source/WebCore/testing/Internals.h:127
&gt; +    PassRefPtr&lt;NodeList&gt; nodesFromRect(Document*, int /*x*/, int /*y*/,

We don&apos;t put variable names in comments

&gt; Source/WebCore/testing/Internals.h:128
&gt; +                                       unsigned /*topPadding*/, unsigned /*rightPadding*/, unsigned /*bottomPadding*/, unsigned /*leftPadding*/,

Ditto about the indentation

&gt; Source/WebCore/testing/Internals.idl:102
&gt; +        NodeList nodesFromRect(in Document document, in long x, in long y,

Ditto about the indentation</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131450</attachid>
            <date>2012-03-12 16:42:14 -0700</date>
            <delta_ts>2012-03-13 09:40:36 -0700</delta_ts>
            <desc>patch v1</desc>
            <filename>0001-Convert-nodesFromRect-tests-to-use-Internals-interfa.patch</filename>
            <type>text/plain</type>
            <size>28204</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSAyMDAxODUxZjg5MGFiOWMxNmRmYjIwNTZkMzc2MmM2YzM0YTg5ZDdiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDxhZ29tZXNAcmltLmNvbT4KRGF0ZTog
TW9uLCAxMiBNYXIgMjAxMiAxOTozODo0NyAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIENvbnZlcnQg
bm9kZXNGcm9tUmVjdCB0ZXN0cyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZQogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwODg2CgpSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KUGF0Y2ggYnkgQW50b25pbyBHb21lcyA8YWdvbWVzQHJpbS5jb20+CgpTb3VyY2Uv
V2ViQ29yZToKCkFkZCBJbnRlcm5hbHM6Om5vZGVzRnJvbVJlY3QgaW1wbGVtZW50YXRpb24gdG8g
dW5pZnkKdGhlIGNvZGVwYXRoIGZvciB0ZXN0aW5nIERvY3VtZW50Ojpub2Rlc0Zyb21SZWN0IGlu
IGEKY3Jvc3MgcG9ydCB3YXkuCgpObyBuZXcgdGVzdHMsIHNpbmNlIHdlIGFyZSBpbXByb3Zpbmcg
aGVyZSB0aGUgaW5mcmEtc3RydWN0dXJlCmZvciB0ZXN0aW5nIGEgc3BlY2lmaWMgbWV0aG9kLgoK
KiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CihXZWJDb3JlOjpJbnRlcm5hbHM6Om5vZGVzRnJvbVJl
Y3QpOgooV2ViQ29yZSk6CiogdGVzdGluZy9JbnRlcm5hbHMuaDoKKEludGVybmFscyk6CiogdGVz
dGluZy9JbnRlcm5hbHMuaWRsOgoKU291cmNlL1dlYktpdC9ndGs6CgpSZW1vdmVkIERSVFN1cHBv
cnRHdGs6Om5vZGVzRnJvbVJlY3Qgc3VwcG9ydCwgc2luY2UKaXQgY2FuIHdvcmsgaW4gdGhlIGNy
b3NzLXBvcnQgd2F5IHRocmdvdWdoIHRoZQpJbnRlcm5hbHMgaW50ZXJmYWNlLgoKKiBXZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgoqIFdlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgooRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKToKClNv
dXJjZS9XZWJLaXQvbWFjOgoKUmVtb3ZlZCBtYWMgc3BlY2lmaWMgc3VwcG9ydCBmb3Igbm9kZXNG
cm9tUmVjdCBmb3IgdGVzdGluZyBwdXJwb3NlcyBvbmx5LApzaW5jZSBpdCBjYW4gd29yayBpbiBh
IGNyb3NzLXBvcnQgd2F5IHRocm91Z2ggdGhlIEludGVybmFscyBpbnRlcmZhY2UuCgoqIFdlYktp
dC5vcmRlcjoKKiBXZWJWaWV3L1dlYlZpZXcubW06CiogV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5o
OgoKU291cmNlL1dlYktpdC9xdDoKClJlbW92ZWQgRFJUU3VwcG9ydFF0Ojpub2Rlc0Zyb21SZWN0
IHN1cHBvcnQsIHNpbmNlCml0IGNhbiB3b3JrIGluIHRoZSBjcm9zcy1wb3J0IHdheSB0aHJnb3Vn
aCB0aGUKSW50ZXJuYWxzIGludGVyZmFjZS4KCiogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQuY3BwOgoqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
Lmg6CgpUb29sczoKClRoaXMgY2xlYW4gdXAgYWxsb3dzIHRvIHJlbW92ZSBwb3J0IHNwZWNpZmlj
IGJpdHMgb2YgZWFjaApEUlQgaW1wbGVtZW50YXRpb24gdGhhdCBzdXBwb3J0cyB0ZXN0aW5nIERv
Y3VtZW50Ojpub2Rlc0Zyb21SZWN0LAppbiBmYXZvciBvZiBtYWtpbmcgdXNlIG9mIHRoZSAnSW50
ZXJuYWxzJyBpbnRlcmZhY2UgdG8gdGVzdCBpdC4KClRoaXMgbWFrZXMgaXRzIGNvZGUgY29udmVu
aWVudGx5IG1vcmUgZXhwYW5zaWJsZSBhbmQgY2xlYW5lci4KCkFsc28gcmVtb3ZlZCBzdHVicyBm
cm9tIFdpbiBhbmQgRUZMIERSVHMuCgoqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcDoKKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOgoqIER1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CihMYXlvdXRUZXN0Q29udHJvbGxlcik6
CiogRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcDoKKiBEdW1w
UmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOgoqIER1bXBSZW5kZXJU
cmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKiBEdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0
Q29udHJvbGxlclF0Lmg6CihMYXlvdXRUZXN0Q29udHJvbGxlcik6CiogRHVtcFJlbmRlclRyZWUv
d2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcDoKCkxheW91dFRlc3RzOgoKQWRqdXN0IG5v
ZGVzRnJvbVJlY3QgdGVzdHMgdG8gdXNlIEludGVybmFscwppbnN0ZWFkIG9mIExheW91dFRlc3RD
b250cm9sbGVyIGludGVyZmFjZS4KCiogZmFzdC9kb20vcmVzb3VyY2VzL25vZGVzRnJvbVJlY3Qu
anM6CihjaGVjayk6Ci0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDEzICsrKysrKysrKwogTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3Vy
Y2VzL25vZGVzRnJvbVJlY3QuanMgICAgfCAgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjEgKysrKysrKysrKysrKysrCiBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgICAgICAgICAgICAgICB8ICAgMTIgKysr
KysrKysrCiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oICAgICAgICAgICAgICAg
ICB8ICAgIDUgKysrCiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgICAgICAg
ICAgICAgICB8ICAgIDQgKysrCiBTb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTUgKysrKysrKysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwICAgIHwgICAxNiAtLS0tLS0tLS0tLQogLi4uL2d0ay9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaCAgfCAgICAxIC0KIFNvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNCArKysr
KysrKysrCiBTb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQub3JkZXIgICAgICAgICAgICAgICAgICAg
ICB8ICAgIDEgLQogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tICAgICAgICAg
ICAgICAgfCAgIDE5IC0tLS0tLS0tLS0tLS0tCiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXdQcml2YXRlLmggICAgICAgICB8ICAgIDQgLS0tCiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTQgKysrKysrKysrKwogLi4uL3F0L1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCAgfCAgIDIxIC0tLS0tLS0t
LS0tLS0tLQogLi4uL3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Lmgg
ICAgfCAgICAxIC0KIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAyNyArKysrKysrKysrKysrKysrKysrKwogVG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwICAgICAgfCAgIDE5IC0tLS0tLS0tLS0tLS0tCiBUb29s
cy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oICAgICAgICB8ICAgIDEgLQog
Li4uL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAgfCAgICA2
IC0tLS0KIC4uLi9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3Bw
IHwgICAgNSAtLS0KIC4uLi9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJN
YWMubW0gIHwgICAgNSAtLS0KIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250
cm9sbGVyUXQuY3BwIHwgICAgNSAtLS0KIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuaCAgIHwgICAgMiAtCiAuLi4vRHVtcFJlbmRlclRyZWUvd2luL0xheW91
dFRlc3RDb250cm9sbGVyV2luLmNwcCB8ICAgIDYgLS0tLQogMjUgZmlsZXMgY2hhbmdlZCwgMTI3
IGluc2VydGlvbnMoKyksIDExNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGZhNjNjNC4uZGNlMjNk
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAzLTEyICBBbnRvbmlvIEdvbWVzICA8YWdv
bWVzQHJpbS5jb20+CisKKyAgICAgICAgQ29udmVydCBub2Rlc0Zyb21SZWN0IHRlc3RzIHRvIHVz
ZSBJbnRlcm5hbHMgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MDg4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkanVzdCBub2Rlc0Zyb21SZWN0IHRlc3RzIHRvIHVzZSBJbnRlcm5hbHMK
KyAgICAgICAgaW5zdGVhZCBvZiBMYXlvdXRUZXN0Q29udHJvbGxlciBpbnRlcmZhY2UuCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9yZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qczoKKyAgICAgICAgKGNo
ZWNrKToKKwogMjAxMi0wMy0xMSAgQW50b25pbyBHb21lcyAgPGFnb21lc0ByaW0uY29tPgogCiAg
ICAgICAgIEJlIG1vcmUgcmVzdHJpY3RpdmUgd2hlbiBhZGRpbmcgU2Nyb2xsYWJsZUFyZWEncyB0
byBGcmFtZVZpZXcncyBTY3JvbGxhYmxlQXJlYSdzIG1hcApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vcmVzb3VyY2VzL25vZGVzRnJvbVJlY3QuanMgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9yZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qcwppbmRleCBiNWExMzZlLi4wNDg5NjQxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5q
cworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qcwpA
QCAtNSwxMyArNSwxMyBAQAogCiBmdW5jdGlvbiBjaGVjayh4LCB5LCB0b3BQYWRkaW5nLCByaWdo
dFBhZGRpbmcsIGJvdHRvbVBhZGRpbmcsIGxlZnRQYWRkaW5nLCBsaXN0LCBkb2MpCiB7Ci0gIGlm
ICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMp
CiAgICAgcmV0dXJuOwogCiAgIGlmICghZG9jKQogICAgIGRvYyA9IGRvY3VtZW50OwogCi0gIHZh
ciBub2RlcyA9IGxheW91dFRlc3RDb250cm9sbGVyLm5vZGVzRnJvbVJlY3QoZG9jLCB4LCB5LCB0
b3BQYWRkaW5nLCByaWdodFBhZGRpbmcsIGJvdHRvbVBhZGRpbmcsIGxlZnRQYWRkaW5nLCB0cnVl
IC8qIGlnbm9yZUNsaXBwaW5nICovKTsKKyAgdmFyIG5vZGVzID0gaW50ZXJuYWxzLm5vZGVzRnJv
bVJlY3QoZG9jLCB4LCB5LCB0b3BQYWRkaW5nLCByaWdodFBhZGRpbmcsIGJvdHRvbVBhZGRpbmcs
IGxlZnRQYWRkaW5nLCB0cnVlIC8qIGlnbm9yZUNsaXBwaW5nICovKTsKICAgaWYgKCFub2RlcykK
ICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkYTBiNDhkLi45YjhkMmUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjQgQEAKKzIwMTItMDMtMTIgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmlt
LmNvbT4KKworICAgICAgICBDb252ZXJ0IG5vZGVzRnJvbVJlY3QgdGVzdHMgdG8gdXNlIEludGVy
bmFscyBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTgwODg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIEludGVybmFsczo6bm9kZXNGcm9tUmVjdCBpbXBsZW1lbnRhdGlvbiB0byB1bmlm
eQorICAgICAgICB0aGUgY29kZXBhdGggZm9yIHRlc3RpbmcgRG9jdW1lbnQ6Om5vZGVzRnJvbVJl
Y3QgaW4gYQorICAgICAgICBjcm9zcyBwb3J0IHdheS4KKworICAgICAgICBObyBuZXcgdGVzdHMs
IHNpbmNlIHdlIGFyZSBpbXByb3ZpbmcgaGVyZSB0aGUgaW5mcmEtc3RydWN0dXJlCisgICAgICAg
IGZvciB0ZXN0aW5nIGEgc3BlY2lmaWMgbWV0aG9kLgorCisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpub2Rlc0Zyb21SZWN0KToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAg
ICAgIChJbnRlcm5hbHMpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAx
Mi0wMy0xMSAgQW50b25pbyBHb21lcyAgPGFnb21lc0ByaW0uY29tPgogCiAgICAgICAgIEJlIG1v
cmUgcmVzdHJpY3RpdmUgd2hlbiBhZGRpbmcgU2Nyb2xsYWJsZUFyZWEncyB0byBGcmFtZVZpZXcn
cyBTY3JvbGxhYmxlQXJlYSdzIG1hcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmlu
ZGV4IGFmYTY5ODkuLmM3NTM1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
QEAgLTY4Miw0ICs2ODIsMTYgQEAgdW5zaWduZWQgSW50ZXJuYWxzOjpzY3JvbGxhYmxlQXJlYXND
b3VudChEb2N1bWVudCogZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHJldHVybiBj
b3VudDsKIH0KIAorUGFzc1JlZlB0cjxOb2RlTGlzdD4gSW50ZXJuYWxzOjpub2Rlc0Zyb21SZWN0
KERvY3VtZW50KiBkb2N1bWVudCwgaW50IHgsIGludCB5LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJp
Z2h0UGFkZGluZywgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpZ25v
cmVDbGlwcGluZywgRXhjZXB0aW9uQ29kZSYgZWMpIGNvbnN0Cit7CisgICAgaWYgKCFkb2N1bWVu
dCB8fCAhZG9jdW1lbnQtPmZyYW1lKCkgfHwgIWRvY3VtZW50LT5mcmFtZSgpLT52aWV3KCkpIHsK
KyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiAwOworICAg
IH0KKworICAgIHJldHVybiBkb2N1bWVudC0+bm9kZXNGcm9tUmVjdCh4LCB5LCB0b3BQYWRkaW5n
LCByaWdodFBhZGRpbmcsIGJvdHRvbVBhZGRpbmcsIGxlZnRQYWRkaW5nLCBpZ25vcmVDbGlwcGlu
Zyk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGQ4NTdjN2IuLjNh
MmI1Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMjcsNiArMjcsNyBAQAog
I2RlZmluZSBJbnRlcm5hbHNfaAogCiAjaW5jbHVkZSAiRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVy
LmgiCisjaW5jbHVkZSAiTm9kZUxpc3QuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgog
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
QEAgLTEyMyw2ICsxMjQsMTAgQEAgcHVibGljOgogCiAgICAgdW5zaWduZWQgc2Nyb2xsYWJsZUFy
ZWFzQ291bnQoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICBQYXNzUmVmUHRyPE5v
ZGVMaXN0PiBub2Rlc0Zyb21SZWN0KERvY3VtZW50KiwgaW50IC8qeCovLCBpbnQgLyp5Ki8sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCAvKnRvcFBhZGRp
bmcqLywgdW5zaWduZWQgLypyaWdodFBhZGRpbmcqLywgdW5zaWduZWQgLypib3R0b21QYWRkaW5n
Ki8sIHVuc2lnbmVkIC8qbGVmdFBhZGRpbmcqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJvb2wgLyppZ25vcmVDbGlwcGluZyovLCBFeGNlcHRpb25Db2RlJikgY29u
c3Q7CisKICAgICBzdGF0aWMgY29uc3QgY2hhciogaW50ZXJuYWxzSWQ7CiAKICAgICBJbnRlcm5h
bFNldHRpbmdzKiBzZXR0aW5ncygpIGNvbnN0IHsgcmV0dXJuIG1fc2V0dGluZ3MuZ2V0KCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA0NDk5YmJlLi42MDEyN2MxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC05OSw2ICs5OSwxMCBAQCBtb2R1
bGUgd2luZG93IHsKIAogICAgICAgICB1bnNpZ25lZCBsb25nIHNjcm9sbGFibGVBcmVhc0NvdW50
KGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKKyAgICAgICAg
Tm9kZUxpc3Qgbm9kZXNGcm9tUmVjdChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gbG9uZyB4LCBp
biBsb25nIHksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5zaWduZWQgbG9u
ZyB0b3BQYWRkaW5nLCBpbiB1bnNpZ25lZCBsb25nIHJpZ2h0UGFkZGluZywgaW4gdW5zaWduZWQg
bG9uZyBib3R0b21QYWRkaW5nLCBpbiB1bnNpZ25lZCBsb25nIGxlZnRQYWRkaW5nLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gaWdub3JlQ2xpcHBpbmcpIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKKwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgSW50ZXJuYWxT
ZXR0aW5ncyBzZXR0aW5nczsKICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9n
dGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDc5NDBjYTMu
LmI0Nzk2NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wMy0xMiAg
QW50b25pbyBHb21lcyAgPGFnb21lc0ByaW0uY29tPgorCisgICAgICAgIENvbnZlcnQgbm9kZXNG
cm9tUmVjdCB0ZXN0cyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4ODYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIERSVFN1cHBvcnRHdGs6Om5v
ZGVzRnJvbVJlY3Qgc3VwcG9ydCwgc2luY2UKKyAgICAgICAgaXQgY2FuIHdvcmsgaW4gdGhlIGNy
b3NzLXBvcnQgd2F5IHRocmdvdWdoIHRoZQorICAgICAgICBJbnRlcm5hbHMgaW50ZXJmYWNlLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAg
ICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6CisKIDIwMTItMDMtMDcgIEthbmdpbCBI
YW4gIDxrYW5naWwuaGFuQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtEUlRdIFJlbW92ZSBQbGFp
blRleHRDb250cm9sbGVyIGltcGxlbWVudGF0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3Bw
CmluZGV4IDgwNDM3ZmYuLmJjMGVkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAt
MTEzLDIyICsxMTMsNiBAQCBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiAgICAgcmV0dXJuIHNfc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZDsKIH0KIAotSlNWYWx1ZVJlZiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
Om5vZGVzRnJvbVJlY3QoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgdmFsdWUsIGlu
dCB4LCBpbnQgeSwgdW5zaWduZWQgdG9wLCB1bnNpZ25lZCByaWdodCwgdW5zaWduZWQgYm90dG9t
LCB1bnNpZ25lZCBsZWZ0LCBib29sIGlnbm9yZUNsaXBwaW5nKQotewotICAgIEpTTG9jayBsb2Nr
KFNpbGVuY2VBc3NlcnRpb25zT25seSk7Ci0gICAgRXhlY1N0YXRlKiBleGVjID0gdG9KUyhjb250
ZXh0KTsKLSAgICBpZiAoIXZhbHVlKQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmlu
ZWQoY29udGV4dCk7Ci0gICAgSlNWYWx1ZSBqc1ZhbHVlID0gdG9KUyhleGVjLCB2YWx1ZSk7Ci0g
ICAgaWYgKCFqc1ZhbHVlLmluaGVyaXRzKCZKU0RvY3VtZW50OjpzX2luZm8pKQotICAgICAgIHJl
dHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAgIEpTRG9jdW1lbnQqIGpz
RG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxKU0RvY3VtZW50Kj4oYXNPYmplY3QoanNWYWx1ZSkpOwot
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGpzRG9jdW1lbnQtPmltcGwoKTsKLSAgICBSZWZQdHI8
Tm9kZUxpc3Q+IG5vZGVzID0gZG9jdW1lbnQtPm5vZGVzRnJvbVJlY3QoeCwgeSwgdG9wLCByaWdo
dCwgYm90dG9tLCBsZWZ0LCBpZ25vcmVDbGlwcGluZyk7Ci0gICAgcmV0dXJuIHRvUmVmKGV4ZWMs
IHRvSlMoZXhlYywganNEb2N1bWVudC0+Z2xvYmFsT2JqZWN0KCksIG5vZGVzLmdldCgpKSk7Ci19
Ci0KIC8qKgogICogZ2V0RnJhbWVDaGlsZHJlbjoKICAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJh
bWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKaW5kZXggNDFhYjQwZi4uMGM0MDkyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrLmgKQEAgLTUzLDcgKzUzLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lk
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7CiAgICAgc3RhdGljIGJv
b2wgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogCi0gICAgc3RhdGljIEpTVmFs
dWVSZWYgbm9kZXNGcm9tUmVjdChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1
ZSwgaW50IHgsIGludCB5LCB1bnNpZ25lZCB0b3AsIHVuc2lnbmVkIHJpZ2h0LCB1bnNpZ25lZCBi
b3R0b20sIHVuc2lnbmVkIGxlZnQsIGJvb2wgaWdub3JlQ2xpcHBpbmcpOwogICAgIHN0YXRpYyB2
b2lkIGR1bXBDb25maWd1cmF0aW9uRm9yVmlld3BvcnQoV2ViS2l0V2ViVmlldyogd2ViVmlldywg
Z2ludCBkZXZpY2VEUEksIGdpbnQgZGV2aWNlV2lkdGgsIGdpbnQgZGV2aWNlSGVpZ2h0LCBnaW50
IGF2YWlsYWJsZVdpZHRoLCBnaW50IGF2YWlsYWJsZUhlaWdodCk7CiAKICAgICBzdGF0aWMgdm9p
ZCBjbGVhck9wZW5lcihXZWJLaXRXZWJGcmFtZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDc2MTlk
MWYuLjE0MThlMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wMy0x
MiAgQW50b25pbyBHb21lcyAgPGFnb21lc0ByaW0uY29tPgorCisgICAgICAgIENvbnZlcnQgbm9k
ZXNGcm9tUmVjdCB0ZXN0cyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4ODYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIG1hYyBzcGVjaWZpYyBz
dXBwb3J0IGZvciBub2Rlc0Zyb21SZWN0IGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHksCisgICAg
ICAgIHNpbmNlIGl0IGNhbiB3b3JrIGluIGEgY3Jvc3MtcG9ydCB3YXkgdGhyb3VnaCB0aGUgSW50
ZXJuYWxzIGludGVyZmFjZS4KKworICAgICAgICAqIFdlYktpdC5vcmRlcjoKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oOgor
CiAyMDEyLTAzLTA5ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5h
bWUgTm90aWZpY2F0aW9uUHJlc2VudGVyIHRvIE5vdGlmaWNhdGlvbkNsaWVudApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0Lm9yZGVyIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
S2l0Lm9yZGVyCmluZGV4IGFjZDFhMzcuLjA0MGFlOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYktpdC5vcmRlcgorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQub3JkZXIK
QEAgLTE4MTUsNyArMTgxNSw2IEBAIF9fWk4xNVdlYkNocm9tZUNsaWVudDRzaG93RXYKIF9fWk4x
NVdlYkNocm9tZUNsaWVudDE1Y2xvc2VXaW5kb3dTb29uRXYKIC1bV2ViVmlldyhXZWJJQkFjdGlv
bnMpIHN0b3BMb2FkaW5nOl0KIC1bV2ViVmlldyhXZWJQcml2YXRlKSBfY2xvc2VXaW5kb3ddCi0t
W1dlYlZpZXcoV2ViVmlld1ByaXZhdGVOb2Rlc0Zyb21SZWN0KSBfbm9kZXNGcm9tUmVjdDpmb3JE
b2N1bWVudDp4Onk6dG9wOnJpZ2h0OmJvdHRvbTpsZWZ0Omlnbm9yZUNsaXBwaW5nOl0KIF9fWk4y
MFdlYkZyYW1lTG9hZGVyQ2xpZW50MzhkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0Fj
dGlvbkVNTjdXZWJDb3JlMTNQb2xpY3lDaGVja2VyRUZ2TlMwXzEyUG9saWN5QWN0aW9uRUVSS05T
MF8xNk5hdmlnYXRpb25BY3Rpb25FUktOUzBfMTVSZXNvdXJjZVJlcXVlc3RFTjNXVEYxMFBhc3NS
ZWZQdHJJTlMwXzlGb3JtU3RhdGVFRUVSS05TQl82U3RyaW5nRQogLVtXZWJEZWZhdWx0UG9saWN5
RGVsZWdhdGUgd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb246cmVxdWVzdDpu
ZXdGcmFtZU5hbWU6ZGVjaXNpb25MaXN0ZW5lcjpdCiBfX1pOMjBXZWJGcmFtZUxvYWRlckNsaWVu
dDE4ZGlzcGF0Y2hDcmVhdGVQYWdlRVJLTjdXZWJDb3JlMTZOYXZpZ2F0aW9uQWN0aW9uRQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDljZmU4YjMuLmMzMGYxYjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTY0NjEsMjUgKzY0NjEsNiBAQCBzdGF0
aWMgdm9pZCBnbGliQ29udGV4dEl0ZXJhdGlvbkNhbGxiYWNrKENGUnVuTG9vcE9ic2VydmVyUmVm
LCBDRlJ1bkxvb3BBY3Rpdml0eQogCiBAZW5kCiAKLUBpbXBsZW1lbnRhdGlvbiBXZWJWaWV3IChX
ZWJWaWV3UHJpdmF0ZU5vZGVzRnJvbVJlY3QpCi0KLS0gKEpTVmFsdWVSZWYpX25vZGVzRnJvbVJl
Y3Q6KEpTQ29udGV4dFJlZiljb250ZXh0IGZvckRvY3VtZW50OihKU1ZhbHVlUmVmKXZhbHVlIHg6
KGludCl4ICB5OihpbnQpeSB0b3A6KHVuc2lnbmVkKXRvcCByaWdodDoodW5zaWduZWQpcmlnaHQg
Ym90dG9tOih1bnNpZ25lZClib3R0b20gbGVmdDoodW5zaWduZWQpbGVmdCBpZ25vcmVDbGlwcGlu
ZzooQk9PTClpZ25vcmVDbGlwcGluZwotewotICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRp
b25zT25seSk7Ci0gICAgRXhlY1N0YXRlKiBleGVjID0gdG9KUyhjb250ZXh0KTsKLSAgICBpZiAo
IXZhbHVlKQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0g
ICAgSlNWYWx1ZSBqc1ZhbHVlID0gdG9KUyhleGVjLCB2YWx1ZSk7Ci0gICAgaWYgKCFqc1ZhbHVl
LmluaGVyaXRzKCZKU0RvY3VtZW50OjpzX2luZm8pKQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7Ci0gICAgSlNEb2N1bWVudCoganNEb2N1bWVudCA9IHN0YXRp
Y19jYXN0PEpTRG9jdW1lbnQqPihhc09iamVjdChqc1ZhbHVlKSk7Ci0gICAgRG9jdW1lbnQqIGRv
Y3VtZW50ID0ganNEb2N1bWVudC0+aW1wbCgpOwotICAgIFJlZlB0cjxOb2RlTGlzdD4gbm9kZXMg
PSBkb2N1bWVudC0+bm9kZXNGcm9tUmVjdCh4LCB5LCB0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQs
IGlnbm9yZUNsaXBwaW5nKTsKLSAgICByZXR1cm4gdG9SZWYoZXhlYywgdG9KUyhleGVjLCBqc0Rv
Y3VtZW50LT5nbG9iYWxPYmplY3QoKSwgbm9kZXMuZ2V0KCkpKTsKLX0KLQotQGVuZAotCiB2b2lk
IFdlYkluc3RhbGxNZW1vcnlQcmVzc3VyZUhhbmRsZXIodm9pZCkKIHsKICAgICBtZW1vcnlQcmVz
c3VyZUhhbmRsZXIoKS5pbnN0YWxsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXdQcml2YXRlLmgKaW5kZXggMWI2MTgyMS4uODU2NjU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaApAQCAtNzQ3LDEwICs3NDcsNiBAQCBDb3VsZCBiZSB3
b3J0aCBhZGRpbmcgdG8gdGhlIEFQSS4KIC0gKEpTVmFsdWVSZWYpX2NvbXB1dGVkU3R5bGVJbmNs
dWRpbmdWaXNpdGVkSW5mbzooSlNDb250ZXh0UmVmKWNvbnRleHQgZm9yRWxlbWVudDooSlNWYWx1
ZVJlZil2YWx1ZTsKIEBlbmQKIAotQGludGVyZmFjZSBXZWJWaWV3IChXZWJWaWV3UHJpdmF0ZU5v
ZGVzRnJvbVJlY3QpCi0tIChKU1ZhbHVlUmVmKV9ub2Rlc0Zyb21SZWN0OihKU0NvbnRleHRSZWYp
Y29udGV4dCBmb3JEb2N1bWVudDooSlNWYWx1ZVJlZil2YWx1ZSB4OihpbnQpeCAgeTooaW50KXkg
dG9wOih1bnNpZ25lZCl0b3AgcmlnaHQ6KHVuc2lnbmVkKXJpZ2h0IGJvdHRvbToodW5zaWduZWQp
Ym90dG9tIGxlZnQ6KHVuc2lnbmVkKWxlZnQgaWdub3JlQ2xpcHBpbmc6KEJPT0wpaWdub3JlQ2xp
cHBpbmc7Ci1AZW5kCi0KIEBpbnRlcmZhY2UgTlNPYmplY3QgKFdlYlZpZXdGcmFtZUxvYWREZWxl
Z2F0ZVByaXZhdGUpCiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgZGlkRmlyc3RM
YXlvdXRJbkZyYW1lOihXZWJGcmFtZSAqKWZyYW1lOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGQ5YzRl
ZTkuLjc1YTIyZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDMtMTIg
IEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4KKworICAgICAgICBDb252ZXJ0IG5vZGVz
RnJvbVJlY3QgdGVzdHMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwODg2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBEUlRTdXBwb3J0UXQ6Om5v
ZGVzRnJvbVJlY3Qgc3VwcG9ydCwgc2luY2UKKyAgICAgICAgaXQgY2FuIHdvcmsgaW4gdGhlIGNy
b3NzLXBvcnQgd2F5IHRocmdvdWdoIHRoZQorICAgICAgICBJbnRlcm5hbHMgaW50ZXJmYWNlLgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Lmg6CisKIDIw
MTItMDMtMDkgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBO
b3RpZmljYXRpb25QcmVzZW50ZXIgdG8gTm90aWZpY2F0aW9uQ2xpZW50CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuY3BwCmluZGV4IDQ1N2I0OWUuLjM2ZDYzNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBA
IC05OTIsMjcgKzk5Miw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNpbXVsYXRl
RGVza3RvcE5vdGlmaWNhdGlvbkNsaWNrKGNvbnN0IFFTdHJpbmcmIHRpCiAjZW5kaWYKIH0KIAot
UVZhcmlhbnRMaXN0IER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpub2Rlc0Zyb21SZWN0KGNvbnN0
IFFXZWJFbGVtZW50JiBkb2N1bWVudCwgaW50IHgsIGludCB5LCB1bnNpZ25lZCB0b3AsIHVuc2ln
bmVkIHJpZ2h0LCB1bnNpZ25lZCBib3R0b20sIHVuc2lnbmVkIGxlZnQsIGJvb2wgaWdub3JlQ2xp
cHBpbmcpCi17Ci0gICAgUVZhcmlhbnRMaXN0IHJlczsKLSAgICBXZWJDb3JlOjpFbGVtZW50KiB3
ZWJFbGVtZW50ID0gZG9jdW1lbnQubV9lbGVtZW50OwotICAgIGlmICghd2ViRWxlbWVudCkKLSAg
ICAgICAgcmV0dXJuIHJlczsKLQotICAgIERvY3VtZW50KiBkb2MgPSB3ZWJFbGVtZW50LT5kb2N1
bWVudCgpOwotICAgIGlmICghZG9jKQotICAgICAgICByZXR1cm4gcmVzOwotICAgIFJlZlB0cjxO
b2RlTGlzdD4gbm9kZXMgPSBkb2MtPm5vZGVzRnJvbVJlY3QoeCwgeSwgdG9wLCByaWdodCwgYm90
dG9tLCBsZWZ0LCBpZ25vcmVDbGlwcGluZyk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG5vZGVzLT5sZW5ndGgoKTsgaSsrKSB7Ci0gICAgICAgIC8vIFFXZWJFbGVtZW50IHdpbGwgYmUg
bnVsbCBpZiB0aGUgTm9kZSBpcyBub3QgYW4gSFRNTCBFbGVtZW50Ci0gICAgICAgIGlmIChub2Rl
cy0+aXRlbShpKS0+aXNIVE1MRWxlbWVudCgpKQotICAgICAgICAgICAgcmVzIDw8IFFWYXJpYW50
Ojpmcm9tVmFsdWUoUVdlYkVsZW1lbnQobm9kZXMtPml0ZW0oaSkpKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgcmVzIDw8IFFWYXJpYW50Ojpmcm9tVmFsdWUoUURSVE5vZGUobm9kZXMtPml0
ZW0oaSkpKTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlczsKLX0KLQogdm9pZCBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdDo6c2V0RGVmZXJzTG9hZGluZyhRV2ViUGFnZSogcGFnZSwgYm9vbCBmbGFnKQog
ewogICAgIFBhZ2UqIGNvcmVQYWdlID0gUVdlYlBhZ2VQcml2YXRlOjpjb3JlKHBhZ2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdC5oCmluZGV4IGQ5NDllNTEuLmM3N2M0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgK
QEAgLTIwNiw3ICsyMDYsNiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBzY2FsZVBhZ2VC
eShRV2ViRnJhbWUqLCBmbG9hdCBzY2FsZSwgY29uc3QgUVBvaW50JiBvcmlnaW4pOwogCi0gICAg
c3RhdGljIFFWYXJpYW50TGlzdCBub2Rlc0Zyb21SZWN0KGNvbnN0IFFXZWJFbGVtZW50JiBkb2N1
bWVudCwgaW50IHgsIGludCB5LCB1bnNpZ25lZCB0b3AsIHVuc2lnbmVkIHJpZ2h0LCB1bnNpZ25l
ZCBib3R0b20sIHVuc2lnbmVkIGxlZnQsIGJvb2wgaWdub3JlQ2xpcHBpbmcpOwogICAgIHN0YXRp
YyBRU3RyaW5nIHJlc3BvbnNlTWltZVR5cGUoUVdlYkZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQg
Y2xlYXJPcGVuZXIoUVdlYkZyYW1lKik7CiAgICAgc3RhdGljIHZvaWQgYWRkVVJMVG9SZWRpcmVj
dChjb25zdCBRU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFFTdHJpbmcmIGRlc3RpbmF0aW9uKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5ZmVlMTQx
Li45YjhjMTZmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTItMDMtMTIgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNA
cmltLmNvbT4KKworICAgICAgICBDb252ZXJ0IG5vZGVzRnJvbVJlY3QgdGVzdHMgdG8gdXNlIElu
dGVybmFscyBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgwODg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBjbGVhbiB1cCBhbGxvd3MgdG8gcmVtb3ZlIHBvcnQgc3BlY2lmaWMgYml0
cyBvZiBlYWNoCisgICAgICAgIERSVCBpbXBsZW1lbnRhdGlvbiB0aGF0IHN1cHBvcnRzIHRlc3Rp
bmcgRG9jdW1lbnQ6Om5vZGVzRnJvbVJlY3QsCisgICAgICAgIGluIGZhdm9yIG9mIG1ha2luZyB1
c2Ugb2YgdGhlICdJbnRlcm5hbHMnIGludGVyZmFjZSB0byB0ZXN0IGl0LgorCisgICAgICAgIFRo
aXMgbWFrZXMgaXRzIGNvZGUgY29udmVuaWVudGx5IG1vcmUgZXhwYW5zaWJsZSBhbmQgY2xlYW5l
ci4KKworICAgICAgICBBbHNvIHJlbW92ZWQgc3R1YnMgZnJvbSBXaW4gYW5kIEVGTCBEUlRzLgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKExheW91dFRl
c3RDb250cm9sbGVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENv
bnRyb2xsZXJFZmwuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0
Q29udHJvbGxlckd0ay5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRl
c3RDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgorCiAy
MDEyLTAzLTExICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CiAKICAgICAgICAg
QWRkIC0taW5zdHJ1bWVudHMgb3B0aW9uIHRvIHN1bnNwaWRlciB0byBwcm9maWxlIHdpdGggSW5z
dHJ1bWVudHMKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cAppbmRleCBjYjg0N2JhLi45NmFlZWRkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC03NDcsMjQgKzc0Nyw2IEBAIHN0YXRpYyBKU1ZhbHVl
UmVmIGNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mb0NhbGxiYWNrKEpTQ29udGV4dFJl
ZiBjb250ZXh0CiAgICAgcmV0dXJuIGNvbnRyb2xsZXItPmNvbXB1dGVkU3R5bGVJbmNsdWRpbmdW
aXNpdGVkSW5mbyhjb250ZXh0LCBhcmd1bWVudHNbMF0pOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJl
ZiBub2Rlc0Zyb21SZWN0Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewot
ICAgIGlmIChhcmd1bWVudENvdW50ICE9IDgpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKLQotICAgIGludCB4ID0gSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQs
IGFyZ3VtZW50c1sxXSwgTlVMTCk7Ci0gICAgaW50IHkgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4
dCwgYXJndW1lbnRzWzJdLCBOVUxMKTsKLSAgICBpbnQgdG9wID0gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbM10sIE5VTEwpKTsKLSAgICBp
bnQgcmlnaHQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQs
IGFyZ3VtZW50c1s0XSwgTlVMTCkpOwotICAgIGludCBib3R0b20gPSBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1s1XSwgTlVMTCkpOwotICAg
IGludCBsZWZ0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTVmFsdWVUb051bWJlcihjb250ZXh0
LCBhcmd1bWVudHNbNl0sIE5VTEwpKTsKLSAgICBib29sIGlnbm9yZUNsaXBwaW5nID0gSlNWYWx1
ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbN10pOwotCi0gICAgLy8gSGFzIG1hYyBpbXBs
ZW1lbnRhdGlvbi4KLSAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRp
Y19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmpl
Y3QpKTsKLSAgICByZXR1cm4gY29udHJvbGxlci0+bm9kZXNGcm9tUmVjdChjb250ZXh0LCBhcmd1
bWVudHNbMF0sIHgsIHksIHRvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdCwgaWdub3JlQ2xpcHBpbmcp
OwotfQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBsYXllclRyZWVBc1RleHRDYWxsYmFjayhKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgLy8gSGFzIG1hYyAmIHdpbmRvd3MgaW1wbGVt
ZW50YXRpb24KQEAgLTIzNTMsNyArMjMzNSw2IEBAIEpTU3RhdGljRnVuY3Rpb24qIExheW91dFRl
c3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJjbGVhclBlcnNpc3Rl
bnRVc2VyU3R5bGVTaGVldCIsIGNsZWFyUGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0Q2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAiY2xvc2VXZWJJbnNwZWN0b3IiLCBjbG9zZVdlYkluc3BlY3Rv
ckNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNp
dGVkSW5mbyIsIGNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mb0NhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCi0gICAgICAgIHsgIm5vZGVzRnJvbVJlY3QiLCBub2Rlc0Zyb21SZWN0Q2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAiZGVjb2RlSG9zdE5hbWUiLCBkZWNvZGVIb3N0TmFtZUNhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgImRpc2FibGVJbWFnZUxvYWRpbmciLCBkaXNhYmxlSW1hZ2VM
b2FkaW5nQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZGlzYWxsb3dJbmNyZWFzZUZvckFw
cGxpY2F0aW9uQ2FjaGVRdW90YSIsIGRpc2FsbG93SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hl
UXVvdGFDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmgKaW5kZXggNDUyNjVkYi4uYjMyNDhkMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC02OSw3ICs2OSw2IEBAIHB1YmxpYzoKICAg
ICBib29sIGlzQ29tbWFuZEVuYWJsZWQoSlNTdHJpbmdSZWYgbmFtZSk7CiAgICAgdm9pZCBrZWVw
V2ViSGlzdG9yeSgpOwogICAgIEpTVmFsdWVSZWYgY29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0
ZWRJbmZvKEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7Ci0gICAgSlNWYWx1ZVJlZiBub2Rlc0Zy
b21SZWN0KEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZiwgaW50IHgsIGludCB5LCB1bnNpZ25lZCB0
b3AsIHVuc2lnbmVkIHJpZ2h0LCB1bnNpZ25lZCBib3R0b20sIHVuc2lnbmVkIGxlZnQsIGJvb2wg
aWdub3JlQ2xpcHBpbmcpOwogICAgIHZvaWQgbm90aWZ5RG9uZSgpOwogICAgIGludCBudW1iZXJP
ZlBhZ2VzKGZsb2F0IHBhZ2VXaWR0aEluUGl4ZWxzLCBmbG9hdCBwYWdlSGVpZ2h0SW5QaXhlbHMp
OwogICAgIGludCBudW1iZXJPZlBlbmRpbmdHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0cygp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9s
bGVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxl
ckVmbC5jcHAKaW5kZXggZWI0YTI5My4uYjlmNTRjYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCkBAIC0xMDksMTIgKzEw
OSw2IEBAIEpTVmFsdWVSZWYgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvbXB1dGVkU3R5bGVJbmNs
dWRpbmdWaXNpdGVkSW5mbyhKU0NvbnRleHRSZWYKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRl
ZmluZWQoY29udGV4dCk7CiB9CiAKLUpTVmFsdWVSZWYgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om5v
ZGVzRnJvbVJlY3QoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYsIGludCwgaW50LCB1
bnNpZ25lZCwgdW5zaWduZWQsIHVuc2lnbmVkLCB1bnNpZ25lZCwgYm9vbCkKLXsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsK
LX0KLQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpsYXll
clRyZWVBc1RleHQoKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAppbmRl
eCAxYTliMmM5Li42OWQ1ZDUxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsv
TGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTEyNCwxMSArMTI0LDYgQEAgSlNWYWx1
ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJ
bmZvKEpTQ29udGV4dFJlZgogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KTsKIH0KIAotSlNWYWx1ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9tUmVjdChK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSwgaW50IHgsIGludCB5LCB1bnNp
Z25lZCB0b3AsIHVuc2lnbmVkIHJpZ2h0LCB1bnNpZ25lZCBib3R0b20sIHVuc2lnbmVkIGxlZnQs
IGJvb2wgaWdub3JlQ2xpcHBpbmcpCi17Ci0gICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6bm9kZXNGcm9tUmVjdChjb250ZXh0LCB2YWx1ZSwgeCwgeSwgdG9wLCByaWdodCwgYm90
dG9tLCBsZWZ0LCBpZ25vcmVDbGlwcGluZyk7Ci19Ci0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bGF5ZXJUcmVlQXNUZXh0KCkgY29uc3QKIHsKICAgICAv
LyBGSVhNRTogaW1wbGVtZW50CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
TGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5
b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KaW5kZXggZWRkM2M2MS4uZDI2NzVkYiAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQpA
QCAtMjc2LDExICsyNzYsNiBAQCBKU1ZhbHVlUmVmIExheW91dFRlc3RDb250cm9sbGVyOjpjb21w
dXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oSlNDb250ZXh0UmVmCiAgICAgcmV0dXJuIFtb
bWFpbkZyYW1lIHdlYlZpZXddIF9jb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm86Y29u
dGV4dCBmb3JFbGVtZW50OnZhbHVlXTsKIH0KIAotSlNWYWx1ZVJlZiBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6bm9kZXNGcm9tUmVjdChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1
ZSwgaW50IHgsIGludCB5LCB1bnNpZ25lZCB0b3AsIHVuc2lnbmVkIHJpZ2h0LCB1bnNpZ25lZCBi
b3R0b20sIHVuc2lnbmVkIGxlZnQsIGJvb2wgaWdub3JlQ2xpcHBpbmcpCi17Ci0gICAgcmV0dXJu
IFtbbWFpbkZyYW1lIHdlYlZpZXddIF9ub2Rlc0Zyb21SZWN0OmNvbnRleHQgZm9yRG9jdW1lbnQ6
dmFsdWUgeDp4IHk6eSB0b3A6dG9wIHJpZ2h0OnJpZ2h0IGJvdHRvbTpib3R0b20gbGVmdDpsZWZ0
IGlnbm9yZUNsaXBwaW5nOmlnbm9yZUNsaXBwaW5nXTsKLX0KLQogSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpsYXllclRyZWVBc1RleHQoKSBjb25zdAogewog
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBzdHJpbmcoQWRvcHQsIEpTU3RyaW5nQ3JlYXRl
V2l0aENGU3RyaW5nKChDRlN0cmluZ1JlZilbbWFpbkZyYW1lIF9sYXllclRyZWVBc1RleHRdKSk7
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxl
clF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQu
Y3BwCmluZGV4IDY2ZmRmMWUuLjg2OWYyNjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCkBAIC05NDksMTEgKzk0OSw2IEBAIGJv
b2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6Omhhc1NwZWxsaW5nTWFya2VyKGludCwgaW50KQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotUVZhcmlhbnRMaXN0IExheW91dFRlc3RDb250cm9sbGVyOjpu
b2Rlc0Zyb21SZWN0KGNvbnN0IFFXZWJFbGVtZW50JiBkb2N1bWVudCwgaW50IHgsIGludCB5LCB1
bnNpZ25lZCB0b3AsIHVuc2lnbmVkIHJpZ2h0LCB1bnNpZ25lZCBib3R0b20sIHVuc2lnbmVkIGxl
ZnQsIGJvb2wgaWdub3JlQ2xpcHBpbmcpCi17Ci0gICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0Ojpub2Rlc0Zyb21SZWN0KGRvY3VtZW50LCB4LCB5LCB0b3AsIHJpZ2h0LCBib3R0b20s
IGxlZnQsIGlnbm9yZUNsaXBwaW5nKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
YWRkVVJMVG9SZWRpcmVjdChjb25zdCBRU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFFTdHJpbmcmIGRl
c3RpbmF0aW9uKQogewogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjphZGRVUkxUb1JlZGly
ZWN0KG9yaWdpbiwgZGVzdGluYXRpb24pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
TGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IDQ3NWI5MjQuLjMyZjYxZTcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKQEAgLTI0
Myw4ICsyNDMsNiBAQCBwdWJsaWMgc2xvdHM6CiAgICAgdm9pZCBhYm9ydE1vZGFsKCkge30KICAg
ICBib29sIGhhc1NwZWxsaW5nTWFya2VyKGludCBmcm9tLCBpbnQgbGVuZ3RoKTsKIAotICAgIFFW
YXJpYW50TGlzdCBub2Rlc0Zyb21SZWN0KGNvbnN0IFFXZWJFbGVtZW50JiBkb2N1bWVudCwgaW50
IHgsIGludCB5LCB1bnNpZ25lZCB0b3AsIHVuc2lnbmVkIHJpZ2h0LCB1bnNpZ25lZCBib3R0b20s
IHVuc2lnbmVkIGxlZnQsIGJvb2wgaWdub3JlQ2xpcHBpbmcpOwotCiAgICAgdm9pZCBhZGRVUkxU
b1JlZGlyZWN0KGNvbnN0IFFTdHJpbmcmIG9yaWdpbiwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRp
b24pOwogCiAgICAgLyoKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlv
dXRUZXN0Q29udHJvbGxlcldpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0
VGVzdENvbnRyb2xsZXJXaW4uY3BwCmluZGV4IDUxODVhOGYuLjU0MzA5NDYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcApA
QCAtMTc5LDEyICsxNzksNiBAQCBKU1ZhbHVlUmVmIExheW91dFRlc3RDb250cm9sbGVyOjpjb21w
dXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oSlNDb250ZXh0UmVmCiAgICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1KU1ZhbHVlUmVmIExheW91dFRlc3RD
b250cm9sbGVyOjpub2Rlc0Zyb21SZWN0KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVm
IHZhbHVlLCBpbnQgeCwgaW50IHksIHVuc2lnbmVkIHRvcCwgdW5zaWduZWQgcmlnaHQsIHVuc2ln
bmVkIGJvdHRvbSwgdW5zaWduZWQgbGVmdCwgYm9vbCBpZ25vcmVDbGlwcGluZykKLXsKLSAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCi0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVk
KGNvbnRleHQpOwotfQotCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmxheWVyVHJlZUFzVGV4dCgpIGNvbnN0CiB7CiAgICAgQ09NUHRyPElXZWJGcmFtZVBy
aXZhdGU+IGZyYW1lUHJpdmF0ZShRdWVyeSwgZnJhbWUpOwotLSAKMS43LjEKCg==
</data>
<flag name="commit-queue"
          id="134832"
          type_id="3"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131637</attachid>
            <date>2012-03-13 09:40:36 -0700</date>
            <delta_ts>2012-03-13 10:26:10 -0700</delta_ts>
            <desc>patch v2 - buildfixes for gtk and win (attempt)</desc>
            <filename>0001-Convert-nodesFromRect-tests-to-use-Internals-interfa.patch</filename>
            <type>text/plain</type>
            <size>31241</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSBlNzQ0NDhlNWM2OGFhOWZlMTA4NzMzYzU1NmViMDRhMzA1YWZlOWJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDxhZ29tZXNAcmltLmNvbT4KRGF0ZTog
TW9uLCAxMiBNYXIgMjAxMiAxOTozODo0NyAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIENvbnZlcnQg
bm9kZXNGcm9tUmVjdCB0ZXN0cyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZQogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwODg2CgpSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KUGF0Y2ggYnkgQW50b25pbyBHb21lcyA8YWdvbWVzQHJpbS5jb20+CgpTb3VyY2Uv
V2ViQ29yZToKCkFkZCBJbnRlcm5hbHM6Om5vZGVzRnJvbVJlY3QgaW1wbGVtZW50YXRpb24gdG8g
dW5pZnkKdGhlIGNvZGVwYXRoIGZvciB0ZXN0aW5nIERvY3VtZW50Ojpub2Rlc0Zyb21SZWN0IGlu
IGEKY3Jvc3MgcG9ydCB3YXkuCgpObyBuZXcgdGVzdHMsIHNpbmNlIHdlIGFyZSBpbXByb3Zpbmcg
aGVyZSB0aGUgaW5mcmEtc3RydWN0dXJlCmZvciB0ZXN0aW5nIGEgc3BlY2lmaWMgbWV0aG9kLgoK
KiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CihXZWJDb3JlOjpJbnRlcm5hbHM6Om5vZGVzRnJvbVJl
Y3QpOgooV2ViQ29yZSk6CiogdGVzdGluZy9JbnRlcm5hbHMuaDoKKEludGVybmFscyk6CiogdGVz
dGluZy9JbnRlcm5hbHMuaWRsOgoKU291cmNlL1dlYktpdC9ndGs6CgpSZW1vdmVkIERSVFN1cHBv
cnRHdGs6Om5vZGVzRnJvbVJlY3Qgc3VwcG9ydCwgc2luY2UKaXQgY2FuIHdvcmsgaW4gdGhlIGNy
b3NzLXBvcnQgd2F5IHRocm91Z2ggdGhlCkludGVybmFscyBpbnRlcmZhY2UuCgoqIFdlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6CiogV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6CihEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGspOgoKU291
cmNlL1dlYktpdC9tYWM6CgpSZW1vdmVkIG1hYyBzcGVjaWZpYyBzdXBwb3J0IGZvciBub2Rlc0Zy
b21SZWN0IGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHksCnNpbmNlIGl0IGNhbiB3b3JrIGluIGEg
Y3Jvc3MtcG9ydCB3YXkgdGhyb3VnaCB0aGUgSW50ZXJuYWxzIGludGVyZmFjZS4KCiogV2ViS2l0
Lm9yZGVyOgoqIFdlYlZpZXcvV2ViVmlldy5tbToKKiBXZWJWaWV3L1dlYlZpZXdQcml2YXRlLmg6
CgpTb3VyY2UvV2ViS2l0L3F0OgoKUmVtb3ZlZCBEUlRTdXBwb3J0UXQ6Om5vZGVzRnJvbVJlY3Qg
c3VwcG9ydCwgc2luY2UKaXQgY2FuIHdvcmsgaW4gdGhlIGNyb3NzLXBvcnQgd2F5IHRocm91Z2gg
dGhlCkludGVybmFscyBpbnRlcmZhY2UuCgoqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0LmNwcDoKKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5o
OgoKVG9vbHM6CgpUaGlzIGNsZWFuIHVwIGFsbG93cyB0byByZW1vdmUgcG9ydCBzcGVjaWZpYyBi
aXRzIG9mIGVhY2gKRFJUIGltcGxlbWVudGF0aW9uIHRoYXQgc3VwcG9ydHMgdGVzdGluZyBEb2N1
bWVudDo6bm9kZXNGcm9tUmVjdCwKaW4gZmF2b3Igb2YgbWFraW5nIHVzZSBvZiB0aGUgJ0ludGVy
bmFscycgaW50ZXJmYWNlIHRvIHRlc3QgaXQuCgpUaGlzIG1ha2VzIGl0cyBjb2RlIGNvbnZlbmll
bnRseSBtb3JlIGV4cGFuc2libGUgYW5kIGNsZWFuZXIuCgpBbHNvIHJlbW92ZWQgc3R1YnMgZnJv
bSBXaW4gYW5kIEVGTCwgV24gYW5kIEJsYWNrQmVycnkgRFJUcy4KCiogRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1
bmN0aW9ucyk6CiogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKExheW91
dFRlc3RDb250cm9sbGVyKToKKiBEdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xs
ZXJFZmwuY3BwOgoqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5j
cHA6CiogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgoqIER1
bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwOgoqIER1bXBSZW5kZXJU
cmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaDoKKExheW91dFRlc3RDb250cm9sbGVyKToK
KiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgoKTGF5b3V0
VGVzdHM6CgpBZGp1c3Qgbm9kZXNGcm9tUmVjdCB0ZXN0cyB0byB1c2UgSW50ZXJuYWxzCmluc3Rl
YWQgb2YgTGF5b3V0VGVzdENvbnRyb2xsZXIgaW50ZXJmYWNlLgoKKiBmYXN0L2RvbS9yZXNvdXJj
ZXMvbm9kZXNGcm9tUmVjdC5qczoKKGNoZWNrKToKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrKysrKysrCiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9yZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qcyAgICB8ICAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysr
KysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCAgICAgICAg
ICAgICAgIHwgICAxMiArKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmggICAgICAgICAgICAgICAgIHwgICAgNSArKysKIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbCAgICAgICAgICAgICAgIHwgICAgNCArKysKIFNvdXJjZS9XZWJLaXQvZ3RrL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArKysrKysrKysrKwogLi4uL1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgICAgfCAgIDE2IC0tLS0t
LS0tLS0tCiAuLi4vZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5o
ICB8ICAgIDEgLQogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDE0ICsrKysrKysrKysKIFNvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5vcmRlciAg
ICAgICAgICAgICAgICAgICAgIHwgICAgMSAtCiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0gICAgICAgICAgICAgICB8ICAgMTkgLS0tLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaCAgICAgICAgIHwgICAgNCAtLS0KIFNvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNCArKysr
KysrKysrCiAuLi4vcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3Bw
ICB8ICAgMjEgLS0tLS0tLS0tLS0tLS0tCiAuLi4vcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuaCAgICB8ICAgIDEgLQogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIu
ZGVmICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9s
cy5maWx0ZXIgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBUb29scy9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjcgKysrKysrKysrKysrKysrKysr
KysKIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCAgICAgIHwg
ICAxOSAtLS0tLS0tLS0tLS0tLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuaCAgICAgICAgfCAgICAxIC0KIC4uLi9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9s
bGVyQmxhY2tCZXJyeS5jcHAgIHwgICAgNiAtLS0tCiAuLi4vRHVtcFJlbmRlclRyZWUvZWZsL0xh
eW91dFRlc3RDb250cm9sbGVyRWZsLmNwcCB8ICAgIDYgLS0tLQogLi4uL0R1bXBSZW5kZXJUcmVl
L2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgfCAgICA1IC0tLQogLi4uL0R1bXBSZW5k
ZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSAgfCAgICA1IC0tLQogVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAgfCAgICA1IC0tLQog
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oICAgfCAgICAy
IC0KIC4uLi9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIHwg
ICAgNiAtLS0tCiBUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4
LmNwcCB8ICAgIDYgLS0tLQogMjkgZmlsZXMgY2hhbmdlZCwgMTMwIGluc2VydGlvbnMoKyksIDEy
NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGZhNjNjNC4uZGNlMjNkYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDEyLTAzLTEyICBBbnRvbmlvIEdvbWVzICA8YWdvbWVzQHJpbS5jb20+CisKKyAg
ICAgICAgQ29udmVydCBub2Rlc0Zyb21SZWN0IHRlc3RzIHRvIHVzZSBJbnRlcm5hbHMgaW50ZXJm
YWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDg4
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkanVz
dCBub2Rlc0Zyb21SZWN0IHRlc3RzIHRvIHVzZSBJbnRlcm5hbHMKKyAgICAgICAgaW5zdGVhZCBv
ZiBMYXlvdXRUZXN0Q29udHJvbGxlciBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBmYXN0L2RvbS9y
ZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qczoKKyAgICAgICAgKGNoZWNrKToKKwogMjAxMi0wMy0x
MSAgQW50b25pbyBHb21lcyAgPGFnb21lc0ByaW0uY29tPgogCiAgICAgICAgIEJlIG1vcmUgcmVz
dHJpY3RpdmUgd2hlbiBhZGRpbmcgU2Nyb2xsYWJsZUFyZWEncyB0byBGcmFtZVZpZXcncyBTY3Jv
bGxhYmxlQXJlYSdzIG1hcApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3Vy
Y2VzL25vZGVzRnJvbVJlY3QuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvbm9k
ZXNGcm9tUmVjdC5qcwppbmRleCBiNWExMzZlLi4wNDg5NjQxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qcworKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9yZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qcwpAQCAtNSwxMyArNSwxMyBAQAog
CiBmdW5jdGlvbiBjaGVjayh4LCB5LCB0b3BQYWRkaW5nLCByaWdodFBhZGRpbmcsIGJvdHRvbVBh
ZGRpbmcsIGxlZnRQYWRkaW5nLCBsaXN0LCBkb2MpCiB7Ci0gIGlmICghd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCiAgICAgcmV0dXJuOwogCiAg
IGlmICghZG9jKQogICAgIGRvYyA9IGRvY3VtZW50OwogCi0gIHZhciBub2RlcyA9IGxheW91dFRl
c3RDb250cm9sbGVyLm5vZGVzRnJvbVJlY3QoZG9jLCB4LCB5LCB0b3BQYWRkaW5nLCByaWdodFBh
ZGRpbmcsIGJvdHRvbVBhZGRpbmcsIGxlZnRQYWRkaW5nLCB0cnVlIC8qIGlnbm9yZUNsaXBwaW5n
ICovKTsKKyAgdmFyIG5vZGVzID0gaW50ZXJuYWxzLm5vZGVzRnJvbVJlY3QoZG9jLCB4LCB5LCB0
b3BQYWRkaW5nLCByaWdodFBhZGRpbmcsIGJvdHRvbVBhZGRpbmcsIGxlZnRQYWRkaW5nLCB0cnVl
IC8qIGlnbm9yZUNsaXBwaW5nICovKTsKICAgaWYgKCFub2RlcykKICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBlYjdhNzlkLi4zOGEzMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAK
KzIwMTItMDMtMTIgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4KKworICAgICAgICBD
b252ZXJ0IG5vZGVzRnJvbVJlY3QgdGVzdHMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwODg2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEludGVybmFs
czo6bm9kZXNGcm9tUmVjdCBpbXBsZW1lbnRhdGlvbiB0byB1bmlmeQorICAgICAgICB0aGUgY29k
ZXBhdGggZm9yIHRlc3RpbmcgRG9jdW1lbnQ6Om5vZGVzRnJvbVJlY3QgaW4gYQorICAgICAgICBj
cm9zcyBwb3J0IHdheS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHNpbmNlIHdlIGFyZSBpbXBy
b3ZpbmcgaGVyZSB0aGUgaW5mcmEtc3RydWN0dXJlCisgICAgICAgIGZvciB0ZXN0aW5nIGEgc3Bl
Y2lmaWMgbWV0aG9kLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpub2Rlc0Zyb21SZWN0KToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0wMy0xMSAgQW50b25pbyBH
b21lcyAgPGFnb21lc0ByaW0uY29tPgogCiAgICAgICAgIEJlIG1vcmUgcmVzdHJpY3RpdmUgd2hl
biBhZGRpbmcgU2Nyb2xsYWJsZUFyZWEncyB0byBGcmFtZVZpZXcncyBTY3JvbGxhYmxlQXJlYSdz
IG1hcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDVkOGE3OTQuLmZkOWZl
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTY4Miw0ICs2ODIsMTYg
QEAgdW5zaWduZWQgSW50ZXJuYWxzOjpudW1iZXJPZlNjcm9sbGFibGVBcmVhcyhEb2N1bWVudCog
ZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGUKICAgICByZXR1cm4gY291bnQ7CiB9CiAKK1Bhc3NS
ZWZQdHI8Tm9kZUxpc3Q+IEludGVybmFsczo6bm9kZXNGcm9tUmVjdChEb2N1bWVudCogZG9jdW1l
bnQsIGludCB4LCBpbnQgeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcsIHVuc2ln
bmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaWdub3JlQ2xpcHBpbmcsIEV4Y2Vw
dGlvbkNvZGUmIGVjKSBjb25zdAoreworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5m
cmFtZSgpIHx8ICFkb2N1bWVudC0+ZnJhbWUoKS0+dmlldygpKSB7CisgICAgICAgIGVjID0gSU5W
QUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4g
ZG9jdW1lbnQtPm5vZGVzRnJvbVJlY3QoeCwgeSwgdG9wUGFkZGluZywgcmlnaHRQYWRkaW5nLCBi
b3R0b21QYWRkaW5nLCBsZWZ0UGFkZGluZywgaWdub3JlQ2xpcHBpbmcpOworfQorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA5Y2JhOTllLi5kMmYxNjQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgSW50ZXJuYWxz
X2gKIAogI2luY2x1ZGUgIkZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIk5v
ZGVMaXN0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC0xMjMsNiArMTI0LDEw
IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIG51bWJlck9mU2Nyb2xsYWJsZUFyZWFzKERvY3Vt
ZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogCisgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gbm9kZXNG
cm9tUmVjdChEb2N1bWVudCosIGludCAvKngqLywgaW50IC8qeSovLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgLyp0b3BQYWRkaW5nKi8sIHVuc2lnbmVk
IC8qcmlnaHRQYWRkaW5nKi8sIHVuc2lnbmVkIC8qYm90dG9tUGFkZGluZyovLCB1bnNpZ25lZCAv
KmxlZnRQYWRkaW5nKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIC8qaWdub3JlQ2xpcHBpbmcqLywgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OworCiAgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIGludGVybmFsc0lkOwogCiAgICAgSW50ZXJuYWxTZXR0aW5ncyogc2V0
dGluZ3MoKSBjb25zdCB7IHJldHVybiBtX3NldHRpbmdzLmdldCgpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKaW5kZXggMjA2ZWU1OC4uNDczZmI0MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtOTksNiArOTksMTAgQEAgbW9kdWxlIHdpbmRvdyB7CiAK
ICAgICAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZlNjcm9sbGFibGVBcmVhcyhpbiBEb2N1bWVu
dCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogCisgICAgICAgIE5vZGVMaXN0IG5v
ZGVzRnJvbVJlY3QoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGxvbmcgeCwgaW4gbG9uZyB5LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgdG9wUGFkZGlu
ZywgaW4gdW5zaWduZWQgbG9uZyByaWdodFBhZGRpbmcsIGluIHVuc2lnbmVkIGxvbmcgYm90dG9t
UGFkZGluZywgaW4gdW5zaWduZWQgbG9uZyBsZWZ0UGFkZGluZywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBib29sZWFuIGlnbm9yZUNsaXBwaW5nKSByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CisKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEludGVybmFsU2V0dGluZ3Mgc2V0
dGluZ3M7CiAgICAgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA3OTQwY2EzLi41ODVmZTA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDMtMTIgIEFudG9uaW8gR29t
ZXMgIDxhZ29tZXNAcmltLmNvbT4KKworICAgICAgICBDb252ZXJ0IG5vZGVzRnJvbVJlY3QgdGVz
dHMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgwODg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBEUlRTdXBwb3J0R3RrOjpub2Rlc0Zyb21SZWN0
IHN1cHBvcnQsIHNpbmNlCisgICAgICAgIGl0IGNhbiB3b3JrIGluIHRoZSBjcm9zcy1wb3J0IHdh
eSB0aHJvdWdoIHRoZQorICAgICAgICBJbnRlcm5hbHMgaW50ZXJmYWNlLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ayk6CisKIDIwMTItMDMtMDcgIEthbmdpbCBIYW4gIDxrYW5naWwu
aGFuQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtEUlRdIFJlbW92ZSBQbGFpblRleHRDb250cm9s
bGVyIGltcGxlbWVudGF0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmluZGV4IDgwNDM3
ZmYuLmJjMGVkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtMTEzLDIyICsxMTMs
NiBAQCBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpCiAgICAgcmV0dXJuIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDsKIH0KIAotSlNWYWx1ZVJlZiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6Om5vZGVzRnJvbVJl
Y3QoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgdmFsdWUsIGludCB4LCBpbnQgeSwg
dW5zaWduZWQgdG9wLCB1bnNpZ25lZCByaWdodCwgdW5zaWduZWQgYm90dG9tLCB1bnNpZ25lZCBs
ZWZ0LCBib29sIGlnbm9yZUNsaXBwaW5nKQotewotICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3Nl
cnRpb25zT25seSk7Ci0gICAgRXhlY1N0YXRlKiBleGVjID0gdG9KUyhjb250ZXh0KTsKLSAgICBp
ZiAoIXZhbHVlKQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
Ci0gICAgSlNWYWx1ZSBqc1ZhbHVlID0gdG9KUyhleGVjLCB2YWx1ZSk7Ci0gICAgaWYgKCFqc1Zh
bHVlLmluaGVyaXRzKCZKU0RvY3VtZW50OjpzX2luZm8pKQotICAgICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAgIEpTRG9jdW1lbnQqIGpzRG9jdW1lbnQgPSBz
dGF0aWNfY2FzdDxKU0RvY3VtZW50Kj4oYXNPYmplY3QoanNWYWx1ZSkpOwotICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IGpzRG9jdW1lbnQtPmltcGwoKTsKLSAgICBSZWZQdHI8Tm9kZUxpc3Q+IG5v
ZGVzID0gZG9jdW1lbnQtPm5vZGVzRnJvbVJlY3QoeCwgeSwgdG9wLCByaWdodCwgYm90dG9tLCBs
ZWZ0LCBpZ25vcmVDbGlwcGluZyk7Ci0gICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHRvSlMoZXhlYywg
anNEb2N1bWVudC0+Z2xvYmFsT2JqZWN0KCksIG5vZGVzLmdldCgpKSk7Ci19Ci0KIC8qKgogICog
Z2V0RnJhbWVDaGlsZHJlbjoKICAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrLmgKaW5kZXggNDFhYjQwZi4uMGM0MDkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKKysrIGIv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmgKQEAgLTUzLDcgKzUzLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7CiAgICAgc3RhdGljIGJvb2wgc2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogCi0gICAgc3RhdGljIEpTVmFsdWVSZWYgbm9kZXNG
cm9tUmVjdChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSwgaW50IHgsIGlu
dCB5LCB1bnNpZ25lZCB0b3AsIHVuc2lnbmVkIHJpZ2h0LCB1bnNpZ25lZCBib3R0b20sIHVuc2ln
bmVkIGxlZnQsIGJvb2wgaWdub3JlQ2xpcHBpbmcpOwogICAgIHN0YXRpYyB2b2lkIGR1bXBDb25m
aWd1cmF0aW9uRm9yVmlld3BvcnQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgZ2ludCBkZXZpY2VE
UEksIGdpbnQgZGV2aWNlV2lkdGgsIGdpbnQgZGV2aWNlSGVpZ2h0LCBnaW50IGF2YWlsYWJsZVdp
ZHRoLCBnaW50IGF2YWlsYWJsZUhlaWdodCk7CiAKICAgICBzdGF0aWMgdm9pZCBjbGVhck9wZW5l
cihXZWJLaXRXZWJGcmFtZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDc2MTlkMWYuLjE0MThlMzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wMy0xMiAgQW50b25pbyBH
b21lcyAgPGFnb21lc0ByaW0uY29tPgorCisgICAgICAgIENvbnZlcnQgbm9kZXNGcm9tUmVjdCB0
ZXN0cyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIG1hYyBzcGVjaWZpYyBzdXBwb3J0IGZvciBu
b2Rlc0Zyb21SZWN0IGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHksCisgICAgICAgIHNpbmNlIGl0
IGNhbiB3b3JrIGluIGEgY3Jvc3MtcG9ydCB3YXkgdGhyb3VnaCB0aGUgSW50ZXJuYWxzIGludGVy
ZmFjZS4KKworICAgICAgICAqIFdlYktpdC5vcmRlcjoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZp
ZXcubW06CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oOgorCiAyMDEyLTAzLTA5
ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgTm90aWZpY2F0
aW9uUHJlc2VudGVyIHRvIE5vdGlmaWNhdGlvbkNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViS2l0Lm9yZGVyIGIvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0Lm9yZGVyCmlu
ZGV4IGFjZDFhMzcuLjA0MGFlOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktp
dC5vcmRlcgorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQub3JkZXIKQEAgLTE4MTUsNyAr
MTgxNSw2IEBAIF9fWk4xNVdlYkNocm9tZUNsaWVudDRzaG93RXYKIF9fWk4xNVdlYkNocm9tZUNs
aWVudDE1Y2xvc2VXaW5kb3dTb29uRXYKIC1bV2ViVmlldyhXZWJJQkFjdGlvbnMpIHN0b3BMb2Fk
aW5nOl0KIC1bV2ViVmlldyhXZWJQcml2YXRlKSBfY2xvc2VXaW5kb3ddCi0tW1dlYlZpZXcoV2Vi
Vmlld1ByaXZhdGVOb2Rlc0Zyb21SZWN0KSBfbm9kZXNGcm9tUmVjdDpmb3JEb2N1bWVudDp4Onk6
dG9wOnJpZ2h0OmJvdHRvbTpsZWZ0Omlnbm9yZUNsaXBwaW5nOl0KIF9fWk4yMFdlYkZyYW1lTG9h
ZGVyQ2xpZW50MzhkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbkVNTjdXZWJD
b3JlMTNQb2xpY3lDaGVja2VyRUZ2TlMwXzEyUG9saWN5QWN0aW9uRUVSS05TMF8xNk5hdmlnYXRp
b25BY3Rpb25FUktOUzBfMTVSZXNvdXJjZVJlcXVlc3RFTjNXVEYxMFBhc3NSZWZQdHJJTlMwXzlG
b3JtU3RhdGVFRUVSS05TQl82U3RyaW5nRQogLVtXZWJEZWZhdWx0UG9saWN5RGVsZWdhdGUgd2Vi
VmlldzpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb246cmVxdWVzdDpuZXdGcmFtZU5hbWU6
ZGVjaXNpb25MaXN0ZW5lcjpdCiBfX1pOMjBXZWJGcmFtZUxvYWRlckNsaWVudDE4ZGlzcGF0Y2hD
cmVhdGVQYWdlRVJLTjdXZWJDb3JlMTZOYXZpZ2F0aW9uQWN0aW9uRQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCmluZGV4IDljZmU4YjMuLmMzMGYxYjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KQEAgLTY0NjEsMjUgKzY0NjEsNiBAQCBzdGF0aWMgdm9pZCBnbGli
Q29udGV4dEl0ZXJhdGlvbkNhbGxiYWNrKENGUnVuTG9vcE9ic2VydmVyUmVmLCBDRlJ1bkxvb3BB
Y3Rpdml0eQogCiBAZW5kCiAKLUBpbXBsZW1lbnRhdGlvbiBXZWJWaWV3IChXZWJWaWV3UHJpdmF0
ZU5vZGVzRnJvbVJlY3QpCi0KLS0gKEpTVmFsdWVSZWYpX25vZGVzRnJvbVJlY3Q6KEpTQ29udGV4
dFJlZiljb250ZXh0IGZvckRvY3VtZW50OihKU1ZhbHVlUmVmKXZhbHVlIHg6KGludCl4ICB5Oihp
bnQpeSB0b3A6KHVuc2lnbmVkKXRvcCByaWdodDoodW5zaWduZWQpcmlnaHQgYm90dG9tOih1bnNp
Z25lZClib3R0b20gbGVmdDoodW5zaWduZWQpbGVmdCBpZ25vcmVDbGlwcGluZzooQk9PTClpZ25v
cmVDbGlwcGluZwotewotICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7Ci0g
ICAgRXhlY1N0YXRlKiBleGVjID0gdG9KUyhjb250ZXh0KTsKLSAgICBpZiAoIXZhbHVlKQotICAg
ICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0gICAgSlNWYWx1ZSBq
c1ZhbHVlID0gdG9KUyhleGVjLCB2YWx1ZSk7Ci0gICAgaWYgKCFqc1ZhbHVlLmluaGVyaXRzKCZK
U0RvY3VtZW50OjpzX2luZm8pKQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQo
Y29udGV4dCk7Ci0gICAgSlNEb2N1bWVudCoganNEb2N1bWVudCA9IHN0YXRpY19jYXN0PEpTRG9j
dW1lbnQqPihhc09iamVjdChqc1ZhbHVlKSk7Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0ganNE
b2N1bWVudC0+aW1wbCgpOwotICAgIFJlZlB0cjxOb2RlTGlzdD4gbm9kZXMgPSBkb2N1bWVudC0+
bm9kZXNGcm9tUmVjdCh4LCB5LCB0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQsIGlnbm9yZUNsaXBw
aW5nKTsKLSAgICByZXR1cm4gdG9SZWYoZXhlYywgdG9KUyhleGVjLCBqc0RvY3VtZW50LT5nbG9i
YWxPYmplY3QoKSwgbm9kZXMuZ2V0KCkpKTsKLX0KLQotQGVuZAotCiB2b2lkIFdlYkluc3RhbGxN
ZW1vcnlQcmVzc3VyZUhhbmRsZXIodm9pZCkKIHsKICAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIo
KS5pbnN0YWxsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgK
aW5kZXggMWI2MTgyMS4uODU2NjU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld1ByaXZhdGUuaApAQCAtNzQ3LDEwICs3NDcsNiBAQCBDb3VsZCBiZSB3b3J0aCBhZGRpbmcg
dG8gdGhlIEFQSS4KIC0gKEpTVmFsdWVSZWYpX2NvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVk
SW5mbzooSlNDb250ZXh0UmVmKWNvbnRleHQgZm9yRWxlbWVudDooSlNWYWx1ZVJlZil2YWx1ZTsK
IEBlbmQKIAotQGludGVyZmFjZSBXZWJWaWV3IChXZWJWaWV3UHJpdmF0ZU5vZGVzRnJvbVJlY3Qp
Ci0tIChKU1ZhbHVlUmVmKV9ub2Rlc0Zyb21SZWN0OihKU0NvbnRleHRSZWYpY29udGV4dCBmb3JE
b2N1bWVudDooSlNWYWx1ZVJlZil2YWx1ZSB4OihpbnQpeCAgeTooaW50KXkgdG9wOih1bnNpZ25l
ZCl0b3AgcmlnaHQ6KHVuc2lnbmVkKXJpZ2h0IGJvdHRvbToodW5zaWduZWQpYm90dG9tIGxlZnQ6
KHVuc2lnbmVkKWxlZnQgaWdub3JlQ2xpcHBpbmc6KEJPT0wpaWdub3JlQ2xpcHBpbmc7Ci1AZW5k
Ci0KIEBpbnRlcmZhY2UgTlNPYmplY3QgKFdlYlZpZXdGcmFtZUxvYWREZWxlZ2F0ZVByaXZhdGUp
CiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgZGlkRmlyc3RMYXlvdXRJbkZyYW1l
OihXZWJGcmFtZSAqKWZyYW1lOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGQ5YzRlZTkuLjA5MzQ0ZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDMtMTIgIEFudG9uaW8gR29t
ZXMgIDxhZ29tZXNAcmltLmNvbT4KKworICAgICAgICBDb252ZXJ0IG5vZGVzRnJvbVJlY3QgdGVz
dHMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgwODg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBEUlRTdXBwb3J0UXQ6Om5vZGVzRnJvbVJlY3Qg
c3VwcG9ydCwgc2luY2UKKyAgICAgICAgaXQgY2FuIHdvcmsgaW4gdGhlIGNyb3NzLXBvcnQgd2F5
IHRocm91Z2ggdGhlCisgICAgICAgIEludGVybmFscyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaDoKKwogMjAxMi0wMy0wOSAgSm9u
IExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIE5vdGlmaWNhdGlvblBy
ZXNlbnRlciB0byBOb3RpZmljYXRpb25DbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXgg
NDU3YjQ5ZS4uMzZkNjM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTk5MiwyNyArOTky
LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2ltdWxhdGVEZXNrdG9wTm90aWZp
Y2F0aW9uQ2xpY2soY29uc3QgUVN0cmluZyYgdGkKICNlbmRpZgogfQogCi1RVmFyaWFudExpc3Qg
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6Om5vZGVzRnJvbVJlY3QoY29uc3QgUVdlYkVsZW1lbnQm
IGRvY3VtZW50LCBpbnQgeCwgaW50IHksIHVuc2lnbmVkIHRvcCwgdW5zaWduZWQgcmlnaHQsIHVu
c2lnbmVkIGJvdHRvbSwgdW5zaWduZWQgbGVmdCwgYm9vbCBpZ25vcmVDbGlwcGluZykKLXsKLSAg
ICBRVmFyaWFudExpc3QgcmVzOwotICAgIFdlYkNvcmU6OkVsZW1lbnQqIHdlYkVsZW1lbnQgPSBk
b2N1bWVudC5tX2VsZW1lbnQ7Ci0gICAgaWYgKCF3ZWJFbGVtZW50KQotICAgICAgICByZXR1cm4g
cmVzOwotCi0gICAgRG9jdW1lbnQqIGRvYyA9IHdlYkVsZW1lbnQtPmRvY3VtZW50KCk7Ci0gICAg
aWYgKCFkb2MpCi0gICAgICAgIHJldHVybiByZXM7Ci0gICAgUmVmUHRyPE5vZGVMaXN0PiBub2Rl
cyA9IGRvYy0+bm9kZXNGcm9tUmVjdCh4LCB5LCB0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQsIGln
bm9yZUNsaXBwaW5nKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbm9kZXMtPmxlbmd0
aCgpOyBpKyspIHsKLSAgICAgICAgLy8gUVdlYkVsZW1lbnQgd2lsbCBiZSBudWxsIGlmIHRoZSBO
b2RlIGlzIG5vdCBhbiBIVE1MIEVsZW1lbnQKLSAgICAgICAgaWYgKG5vZGVzLT5pdGVtKGkpLT5p
c0hUTUxFbGVtZW50KCkpCi0gICAgICAgICAgICByZXMgPDwgUVZhcmlhbnQ6OmZyb21WYWx1ZShR
V2ViRWxlbWVudChub2Rlcy0+aXRlbShpKSkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBy
ZXMgPDwgUVZhcmlhbnQ6OmZyb21WYWx1ZShRRFJUTm9kZShub2Rlcy0+aXRlbShpKSkpOwotICAg
IH0KLSAgICByZXR1cm4gcmVzOwotfQotCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpz
ZXREZWZlcnNMb2FkaW5nKFFXZWJQYWdlKiBwYWdlLCBib29sIGZsYWcpCiB7CiAgICAgUGFnZSog
Y29yZVBhZ2UgPSBRV2ViUGFnZVByaXZhdGU6OmNvcmUocGFnZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmggYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgK
aW5kZXggZDk0OWU1MS4uYzc3YzQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaApAQCAtMjA2LDcgKzIw
Niw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIHNjYWxlUGFnZUJ5KFFXZWJGcmFtZSos
IGZsb2F0IHNjYWxlLCBjb25zdCBRUG9pbnQmIG9yaWdpbik7CiAKLSAgICBzdGF0aWMgUVZhcmlh
bnRMaXN0IG5vZGVzRnJvbVJlY3QoY29uc3QgUVdlYkVsZW1lbnQmIGRvY3VtZW50LCBpbnQgeCwg
aW50IHksIHVuc2lnbmVkIHRvcCwgdW5zaWduZWQgcmlnaHQsIHVuc2lnbmVkIGJvdHRvbSwgdW5z
aWduZWQgbGVmdCwgYm9vbCBpZ25vcmVDbGlwcGluZyk7CiAgICAgc3RhdGljIFFTdHJpbmcgcmVz
cG9uc2VNaW1lVHlwZShRV2ViRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBjbGVhck9wZW5lcihR
V2ViRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBhZGRVUkxUb1JlZGlyZWN0KGNvbnN0IFFTdHJp
bmcmIG9yaWdpbiwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRpb24pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIu
ZGVmCmluZGV4IDZjYTg0ODkuLmE1NzI1MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTIw
NCwzICsyMDQsNCBAQCBFWFBPUlRTCiAgICAgICAgID91c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQFdl
YkNvcmVAQFlBP0FWPyRWZWN0b3JAVlN0cmluZ0BXVEZAQCQwQUBAV1RGQEBYWgogICAgICAgICA/
dmlld0BEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZGcmFtZVZpZXdAMkBYWgogICAgICAgICA/d2ls
bERldGFjaFBhZ2VARnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyQFdlYkNvcmVAQFVBRVhYWgorICAg
ICAgICA/bm9kZXNGcm9tUmVjdEBEb2N1bWVudEBXZWJDb3JlQEBRQkU/QVY/JFBhc3NSZWZQdHJA
Vk5vZGVMaXN0QFdlYkNvcmVAQEBXVEZAQEhISUlJSV9OQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9h
dXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
CmluZGV4IDJlNzE3MjQuLjAzNDZiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3lt
Ym9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtMTAy
LDYgKzEwMiw4IEBAIF9aTjdXZWJDb3JlMjRGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIxNHdpbGxE
ZXRhY2hQYWdlRXY7CiBfWk43V2ViQ29yZTIyUnVudGltZUVuYWJsZWRGZWF0dXJlczMxaXNNdWx0
aXBsZVNoYWRvd1N1YnRyZWVzRW5hYmxlZEU7CiBfWk43V2ViQ29yZTIyUnVudGltZUVuYWJsZWRG
ZWF0dXJlczMyc2V0TXVsdGlwbGVTaGFkb3dTdWJ0cmVlc0VuYWJsZWRFYjsKIF9aTjdXZWJDb3Jl
MjJSdW50aW1lRW5hYmxlZEZlYXR1cmVzMThpc1NoYWRvd0RPTUVuYWJsZWRFOworX1pOSzdXZWJD
b3JlOERvY3VtZW50MTNub2Rlc0Zyb21SZWN0RWlpampqamI7CitfWk43V2ViQ29yZTR0b0pTRVBO
M0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzhOb2RlTGlzdEU7CiBs
b2NhbDoKIF9aKjsKIGN0aSo7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggOWZlZTE0MS4uOWI4YzE2ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAzLTEyICBB
bnRvbmlvIEdvbWVzICA8YWdvbWVzQHJpbS5jb20+CisKKyAgICAgICAgQ29udmVydCBub2Rlc0Zy
b21SZWN0IHRlc3RzIHRvIHVzZSBJbnRlcm5hbHMgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDg4NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2xlYW4gdXAgYWxsb3dzIHRvIHJl
bW92ZSBwb3J0IHNwZWNpZmljIGJpdHMgb2YgZWFjaAorICAgICAgICBEUlQgaW1wbGVtZW50YXRp
b24gdGhhdCBzdXBwb3J0cyB0ZXN0aW5nIERvY3VtZW50Ojpub2Rlc0Zyb21SZWN0LAorICAgICAg
ICBpbiBmYXZvciBvZiBtYWtpbmcgdXNlIG9mIHRoZSAnSW50ZXJuYWxzJyBpbnRlcmZhY2UgdG8g
dGVzdCBpdC4KKworICAgICAgICBUaGlzIG1ha2VzIGl0cyBjb2RlIGNvbnZlbmllbnRseSBtb3Jl
IGV4cGFuc2libGUgYW5kIGNsZWFuZXIuCisKKyAgICAgICAgQWxzbyByZW1vdmVkIHN0dWJzIGZy
b20gV2luIGFuZCBFRkwgRFJUcy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNG
dW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
Lmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcDoKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CisgICAgICAgIChMYXlvdXRU
ZXN0Q29udHJvbGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RD
b250cm9sbGVyV2luLmNwcDoKKwogMjAxMi0wMy0xMSAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNA
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCAtLWluc3RydW1lbnRzIG9wdGlvbiB0byBzdW5zcGlk
ZXIgdG8gcHJvZmlsZSB3aXRoIEluc3RydW1lbnRzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggY2I4NDdiYS4uOTZhZWVkZCAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtNzQ3LDI0ICs3
NDcsNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZElu
Zm9DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dAogICAgIHJldHVybiBjb250cm9sbGVyLT5j
b21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oY29udGV4dCwgYXJndW1lbnRzWzBdKTsK
IH0KIAotc3RhdGljIEpTVmFsdWVSZWYgbm9kZXNGcm9tUmVjdENhbGxiYWNrKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
c2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAgICBpZiAoYXJndW1lbnRDb3VudCAhPSA4KQotICAgICAg
ICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBpbnQgeCA9IEpT
VmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMV0sIE5VTEwpOwotICAgIGludCB5ID0g
SlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1syXSwgTlVMTCk7Ci0gICAgaW50IHRv
cCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1l
bnRzWzNdLCBOVUxMKSk7Ci0gICAgaW50IHJpZ2h0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
VmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbNF0sIE5VTEwpKTsKLSAgICBpbnQgYm90
dG9tID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1
bWVudHNbNV0sIE5VTEwpKTsKLSAgICBpbnQgbGVmdCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzZdLCBOVUxMKSk7Ci0gICAgYm9vbCBp
Z25vcmVDbGlwcGluZyA9IEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzddKTsK
LQotICAgIC8vIEhhcyBtYWMgaW1wbGVtZW50YXRpb24uCi0gICAgTGF5b3V0VGVzdENvbnRyb2xs
ZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2Jq
ZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgcmV0dXJuIGNvbnRyb2xsZXItPm5vZGVz
RnJvbVJlY3QoY29udGV4dCwgYXJndW1lbnRzWzBdLCB4LCB5LCB0b3AsIHJpZ2h0LCBib3R0b20s
IGxlZnQsIGlnbm9yZUNsaXBwaW5nKTsKLX0KLQogc3RhdGljIEpTVmFsdWVSZWYgbGF5ZXJUcmVl
QXNUZXh0Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9u
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIC8vIEhh
cyBtYWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9uCkBAIC0yMzUzLDcgKzIzMzUsNiBAQCBKU1N0
YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAg
ICAgICAgeyAiY2xlYXJQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXQiLCBjbGVhclBlcnNpc3RlbnRV
c2VyU3R5bGVTaGVldENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImNsb3NlV2ViSW5zcGVj
dG9yIiwgY2xvc2VXZWJJbnNwZWN0b3JDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJjb21w
dXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8iLCBjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlz
aXRlZEluZm9DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJub2Rlc0Zyb21SZWN0Iiwgbm9k
ZXNGcm9tUmVjdENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImRlY29kZUhvc3ROYW1lIiwg
ZGVjb2RlSG9zdE5hbWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkaXNhYmxlSW1hZ2VM
b2FkaW5nIiwgZGlzYWJsZUltYWdlTG9hZGluZ0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
ImRpc2FsbG93SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEiLCBkaXNhbGxvd0luY3Jl
YXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDQ1MjY1ZGIuLmIzMjQ4ZDAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtNjks
NyArNjksNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0NvbW1hbmRFbmFibGVkKEpTU3RyaW5nUmVm
IG5hbWUpOwogICAgIHZvaWQga2VlcFdlYkhpc3RvcnkoKTsKICAgICBKU1ZhbHVlUmVmIGNvbXB1
dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyhKU0NvbnRleHRSZWYsIEpTVmFsdWVSZWYpOwot
ICAgIEpTVmFsdWVSZWYgbm9kZXNGcm9tUmVjdChKU0NvbnRleHRSZWYsIEpTVmFsdWVSZWYsIGlu
dCB4LCBpbnQgeSwgdW5zaWduZWQgdG9wLCB1bnNpZ25lZCByaWdodCwgdW5zaWduZWQgYm90dG9t
LCB1bnNpZ25lZCBsZWZ0LCBib29sIGlnbm9yZUNsaXBwaW5nKTsKICAgICB2b2lkIG5vdGlmeURv
bmUoKTsKICAgICBpbnQgbnVtYmVyT2ZQYWdlcyhmbG9hdCBwYWdlV2lkdGhJblBpeGVscywgZmxv
YXQgcGFnZUhlaWdodEluUGl4ZWxzKTsKICAgICBpbnQgbnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdHMoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNw
cAppbmRleCAxYzAyMDU0Li5kNGQyM2QyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVy
cnkuY3BwCkBAIC03MjMsMTIgKzcyMyw2IEBAIGJvb2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6Omhh
c1NwZWxsaW5nTWFya2VyKGludCBmcm9tLCBpbnQgbGVuZ3RoKQogICAgIHJldHVybiBtYWluRnJh
bWUtPmVkaXRvcigpLT5zZWxlY3Rpb25TdGFydEhhc01hcmtlckZvcihXZWJDb3JlOjpEb2N1bWVu
dE1hcmtlcjo6U3BlbGxpbmcsIGZyb20sIGxlbmd0aCk7CiB9CiAKLUpTVmFsdWVSZWYgTGF5b3V0
VGVzdENvbnRyb2xsZXI6Om5vZGVzRnJvbVJlY3QoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFs
dWVSZWYgdmFsdWUsIGludCB4LCBpbnQgeSwgdW5zaWduZWQgdG9wLCB1bnNpZ25lZCByaWdodCwg
dW5zaWduZWQgYm90dG9tLCB1bnNpZ25lZCBsZWZ0LCBib29sIGlnbm9yZUNsaXBwaW5nKQotewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRTZXJpYWxpemVIVFRQ
TG9hZHMoYm9vbCkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGlmIG5lZWRlZCBmb3IgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNzU4LgpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAKaW5kZXgg
ZWI0YTI5My4uYjlmNTRjYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xh
eW91dFRlc3RDb250cm9sbGVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
TGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCkBAIC0xMDksMTIgKzEwOSw2IEBAIEpTVmFsdWVS
ZWYgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5m
byhKU0NvbnRleHRSZWYKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
CiB9CiAKLUpTVmFsdWVSZWYgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om5vZGVzRnJvbVJlY3QoSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYsIGludCwgaW50LCB1bnNpZ25lZCwgdW5zaWdu
ZWQsIHVuc2lnbmVkLCB1bnNpZ25lZCwgYm9vbCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQogSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpsYXllclRyZWVBc1RleHQoKSBj
b25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCAxYTliMmM5Li42OWQ1
ZDUxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRy
b2xsZXJHdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29u
dHJvbGxlckd0ay5jcHAKQEAgLTEyNCwxMSArMTI0LDYgQEAgSlNWYWx1ZVJlZiBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6Y29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEpTQ29udGV4dFJl
ZgogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAotSlNWYWx1
ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9tUmVjdChKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSwgaW50IHgsIGludCB5LCB1bnNpZ25lZCB0b3AsIHVuc2ln
bmVkIHJpZ2h0LCB1bnNpZ25lZCBib3R0b20sIHVuc2lnbmVkIGxlZnQsIGJvb2wgaWdub3JlQ2xp
cHBpbmcpCi17Ci0gICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6bm9kZXNGcm9t
UmVjdChjb250ZXh0LCB2YWx1ZSwgeCwgeSwgdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0LCBpZ25v
cmVDbGlwcGluZyk7Ci19Ci0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6bGF5ZXJUcmVlQXNUZXh0KCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogaW1wbGVt
ZW50CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRy
b2xsZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xs
ZXJNYWMubW0KaW5kZXggZWRkM2M2MS4uZDI2NzVkYiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQpAQCAtMjc2LDExICsyNzYs
NiBAQCBKU1ZhbHVlUmVmIExheW91dFRlc3RDb250cm9sbGVyOjpjb21wdXRlZFN0eWxlSW5jbHVk
aW5nVmlzaXRlZEluZm8oSlNDb250ZXh0UmVmCiAgICAgcmV0dXJuIFtbbWFpbkZyYW1lIHdlYlZp
ZXddIF9jb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm86Y29udGV4dCBmb3JFbGVtZW50
OnZhbHVlXTsKIH0KIAotSlNWYWx1ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9t
UmVjdChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSwgaW50IHgsIGludCB5
LCB1bnNpZ25lZCB0b3AsIHVuc2lnbmVkIHJpZ2h0LCB1bnNpZ25lZCBib3R0b20sIHVuc2lnbmVk
IGxlZnQsIGJvb2wgaWdub3JlQ2xpcHBpbmcpCi17Ci0gICAgcmV0dXJuIFtbbWFpbkZyYW1lIHdl
YlZpZXddIF9ub2Rlc0Zyb21SZWN0OmNvbnRleHQgZm9yRG9jdW1lbnQ6dmFsdWUgeDp4IHk6eSB0
b3A6dG9wIHJpZ2h0OnJpZ2h0IGJvdHRvbTpib3R0b20gbGVmdDpsZWZ0IGlnbm9yZUNsaXBwaW5n
Omlnbm9yZUNsaXBwaW5nXTsKLX0KLQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRl
c3RDb250cm9sbGVyOjpsYXllclRyZWVBc1RleHQoKSBjb25zdAogewogICAgIEpTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBzdHJpbmcoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKChD
RlN0cmluZ1JlZilbbWFpbkZyYW1lIF9sYXllclRyZWVBc1RleHRdKSk7CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCmluZGV4IDY2ZmRm
MWUuLjg2OWYyNjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuY3BwCkBAIC05NDksMTEgKzk0OSw2IEBAIGJvb2wgTGF5b3V0VGVzdENv
bnRyb2xsZXI6Omhhc1NwZWxsaW5nTWFya2VyKGludCwgaW50KQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotUVZhcmlhbnRMaXN0IExheW91dFRlc3RDb250cm9sbGVyOjpub2Rlc0Zyb21SZWN0KGNv
bnN0IFFXZWJFbGVtZW50JiBkb2N1bWVudCwgaW50IHgsIGludCB5LCB1bnNpZ25lZCB0b3AsIHVu
c2lnbmVkIHJpZ2h0LCB1bnNpZ25lZCBib3R0b20sIHVuc2lnbmVkIGxlZnQsIGJvb2wgaWdub3Jl
Q2xpcHBpbmcpCi17Ci0gICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpub2Rlc0Zy
b21SZWN0KGRvY3VtZW50LCB4LCB5LCB0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQsIGlnbm9yZUNs
aXBwaW5nKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVVJMVG9SZWRpcmVj
dChjb25zdCBRU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFFTdHJpbmcmIGRlc3RpbmF0aW9uKQogewog
ICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjphZGRVUkxUb1JlZGlyZWN0KG9yaWdpbiwgZGVz
dGluYXRpb24pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5oCmluZGV4IDQ3NWI5MjQuLjMyZjYxZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKQEAgLTI0Myw4ICsyNDMsNiBAQCBw
dWJsaWMgc2xvdHM6CiAgICAgdm9pZCBhYm9ydE1vZGFsKCkge30KICAgICBib29sIGhhc1NwZWxs
aW5nTWFya2VyKGludCBmcm9tLCBpbnQgbGVuZ3RoKTsKIAotICAgIFFWYXJpYW50TGlzdCBub2Rl
c0Zyb21SZWN0KGNvbnN0IFFXZWJFbGVtZW50JiBkb2N1bWVudCwgaW50IHgsIGludCB5LCB1bnNp
Z25lZCB0b3AsIHVuc2lnbmVkIHJpZ2h0LCB1bnNpZ25lZCBib3R0b20sIHVuc2lnbmVkIGxlZnQs
IGJvb2wgaWdub3JlQ2xpcHBpbmcpOwotCiAgICAgdm9pZCBhZGRVUkxUb1JlZGlyZWN0KGNvbnN0
IFFTdHJpbmcmIG9yaWdpbiwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRpb24pOwogCiAgICAgLyoK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxl
cldpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJX
aW4uY3BwCmluZGV4IDUxODVhOGYuLjU0MzA5NDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcApAQCAtMTc5LDEyICsxNzks
NiBAQCBKU1ZhbHVlUmVmIExheW91dFRlc3RDb250cm9sbGVyOjpjb21wdXRlZFN0eWxlSW5jbHVk
aW5nVmlzaXRlZEluZm8oSlNDb250ZXh0UmVmCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOwogfQogCi1KU1ZhbHVlUmVmIExheW91dFRlc3RDb250cm9sbGVyOjpub2Rl
c0Zyb21SZWN0KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlLCBpbnQgeCwg
aW50IHksIHVuc2lnbmVkIHRvcCwgdW5zaWduZWQgcmlnaHQsIHVuc2lnbmVkIGJvdHRvbSwgdW5z
aWduZWQgbGVmdCwgYm9vbCBpZ25vcmVDbGlwcGluZykKLXsKLSAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IHRoaXMuCi0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotfQot
CiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmxheWVyVHJl
ZUFzVGV4dCgpIGNvbnN0CiB7CiAgICAgQ09NUHRyPElXZWJGcmFtZVByaXZhdGU+IGZyYW1lUHJp
dmF0ZShRdWVyeSwgZnJhbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gv
TGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlv
dXRUZXN0Q29udHJvbGxlcld4LmNwcAppbmRleCBmZjc0NjQ0Li4xOTY5NTliIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcApAQCAt
NTM3LDEyICs1MzcsNiBAQCBKU1ZhbHVlUmVmIExheW91dFRlc3RDb250cm9sbGVyOjpjb21wdXRl
ZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oSlNDb250ZXh0UmVmLAogICAgIHJldHVybiAwOwog
fQogCi1KU1ZhbHVlUmVmIExheW91dFRlc3RDb250cm9sbGVyOjpub2Rlc0Zyb21SZWN0KEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlLCBpbnQgeCwgaW50IHksIHVuc2lnbmVk
IHRvcCwgdW5zaWduZWQgcmlnaHQsIHVuc2lnbmVkIGJvdHRvbSwgdW5zaWduZWQgbGVmdCwgYm9v
bCBpZ25vcmVDbGlwcGluZykKLXsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCi0gICAg
cmV0dXJuIDA7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmF1dGhlbnRpY2F0ZVNl
c3Npb24oSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmLCBKU1N0cmluZ1JlZikKIHsKIH0KLS0gCjEu
Ny4xCgo=
</data>
<flag name="commit-queue"
          id="135036"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131657</attachid>
            <date>2012-03-13 10:26:10 -0700</date>
            <delta_ts>2012-03-13 13:06:59 -0700</delta_ts>
            <desc>(committed r110594 r=rniwa) patch v3 - win buildfixes - more symbols exported</desc>
            <filename>0001-Convert-nodesFromRect-tests-to-use-Internals-interfa.patch</filename>
            <type>text/plain</type>
            <size>31754</size>
            <attacher name="Antonio Gomes">tonikitoo</attacher>
            
              <data encoding="base64">RnJvbSBiNTQzOTY2N2FmZTI5MDZiZTk0NGE1YjE4ODk3YmVhZTRmOGM1NjkxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnRvbmlvIEdvbWVzIDxhZ29tZXNAcmltLmNvbT4KRGF0ZTog
TW9uLCAxMiBNYXIgMjAxMiAxOTozODo0NyAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIENvbnZlcnQg
bm9kZXNGcm9tUmVjdCB0ZXN0cyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZQogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwODg2CgpSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KUGF0Y2ggYnkgQW50b25pbyBHb21lcyA8YWdvbWVzQHJpbS5jb20+CgpTb3VyY2Uv
V2ViQ29yZToKCkFkZCBJbnRlcm5hbHM6Om5vZGVzRnJvbVJlY3QgaW1wbGVtZW50YXRpb24gdG8g
dW5pZnkKdGhlIGNvZGVwYXRoIGZvciB0ZXN0aW5nIERvY3VtZW50Ojpub2Rlc0Zyb21SZWN0IGlu
IGEKY3Jvc3MgcG9ydCB3YXkuCgpObyBuZXcgdGVzdHMsIHNpbmNlIHdlIGFyZSBpbXByb3Zpbmcg
aGVyZSB0aGUgaW5mcmEtc3RydWN0dXJlCmZvciB0ZXN0aW5nIGEgc3BlY2lmaWMgbWV0aG9kLgoK
KiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CihXZWJDb3JlOjpJbnRlcm5hbHM6Om5vZGVzRnJvbVJl
Y3QpOgooV2ViQ29yZSk6CiogdGVzdGluZy9JbnRlcm5hbHMuaDoKKEludGVybmFscyk6CiogdGVz
dGluZy9JbnRlcm5hbHMuaWRsOgoKU291cmNlL1dlYktpdC9ndGs6CgpSZW1vdmVkIERSVFN1cHBv
cnRHdGs6Om5vZGVzRnJvbVJlY3Qgc3VwcG9ydCwgc2luY2UKaXQgY2FuIHdvcmsgaW4gdGhlIGNy
b3NzLXBvcnQgd2F5IHRocm91Z2ggdGhlCkludGVybmFscyBpbnRlcmZhY2UuCgoqIFdlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6CiogV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6CihEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGspOgoKU291
cmNlL1dlYktpdC9tYWM6CgpSZW1vdmVkIG1hYyBzcGVjaWZpYyBzdXBwb3J0IGZvciBub2Rlc0Zy
b21SZWN0IGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHksCnNpbmNlIGl0IGNhbiB3b3JrIGluIGEg
Y3Jvc3MtcG9ydCB3YXkgdGhyb3VnaCB0aGUgSW50ZXJuYWxzIGludGVyZmFjZS4KCiogV2ViS2l0
Lm9yZGVyOgoqIFdlYlZpZXcvV2ViVmlldy5tbToKKiBXZWJWaWV3L1dlYlZpZXdQcml2YXRlLmg6
CgpTb3VyY2UvV2ViS2l0L3F0OgoKUmVtb3ZlZCBEUlRTdXBwb3J0UXQ6Om5vZGVzRnJvbVJlY3Qg
c3VwcG9ydCwgc2luY2UKaXQgY2FuIHdvcmsgaW4gdGhlIGNyb3NzLXBvcnQgd2F5IHRocm91Z2gg
dGhlCkludGVybmFscyBpbnRlcmZhY2UuCgoqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0LmNwcDoKKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5o
OgoKVG9vbHM6CgpUaGlzIGNsZWFuIHVwIGFsbG93cyB0byByZW1vdmUgcG9ydCBzcGVjaWZpYyBi
aXRzIG9mIGVhY2gKRFJUIGltcGxlbWVudGF0aW9uIHRoYXQgc3VwcG9ydHMgdGVzdGluZyBEb2N1
bWVudDo6bm9kZXNGcm9tUmVjdCwKaW4gZmF2b3Igb2YgbWFraW5nIHVzZSBvZiB0aGUgJ0ludGVy
bmFscycgaW50ZXJmYWNlIHRvIHRlc3QgaXQuCgpUaGlzIG1ha2VzIGl0cyBjb2RlIGNvbnZlbmll
bnRseSBtb3JlIGV4cGFuc2libGUgYW5kIGNsZWFuZXIuCgpBbHNvIHJlbW92ZWQgc3R1YnMgZnJv
bSBXaW4gYW5kIEVGTCwgV24gYW5kIEJsYWNrQmVycnkgRFJUcy4KCiogRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1
bmN0aW9ucyk6CiogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKExheW91
dFRlc3RDb250cm9sbGVyKToKKiBEdW1wUmVuZGVyVHJlZS9lZmwvTGF5b3V0VGVzdENvbnRyb2xs
ZXJFZmwuY3BwOgoqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5j
cHA6CiogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgoqIER1
bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwOgoqIER1bXBSZW5kZXJU
cmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaDoKKExheW91dFRlc3RDb250cm9sbGVyKToK
KiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgoKTGF5b3V0
VGVzdHM6CgpBZGp1c3Qgbm9kZXNGcm9tUmVjdCB0ZXN0cyB0byB1c2UgSW50ZXJuYWxzCmluc3Rl
YWQgb2YgTGF5b3V0VGVzdENvbnRyb2xsZXIgaW50ZXJmYWNlLgoKKiBmYXN0L2RvbS9yZXNvdXJj
ZXMvbm9kZXNGcm9tUmVjdC5qczoKKGNoZWNrKToKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysrKysrKysrCiBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9yZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qcyAgICB8ICAgIDQgKy0KIFNvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysr
KysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCAgICAgICAg
ICAgICAgIHwgICAxMiArKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmggICAgICAgICAgICAgICAgIHwgICAgNSArKysKIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbCAgICAgICAgICAgICAgIHwgICAgNCArKysKIFNvdXJjZS9XZWJLaXQvZ3RrL0No
YW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArKysrKysrKysrKwogLi4uL1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgICAgfCAgIDE2IC0tLS0t
LS0tLS0tCiAuLi4vZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5o
ICB8ICAgIDEgLQogU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDE0ICsrKysrKysrKysKIFNvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5vcmRlciAg
ICAgICAgICAgICAgICAgICAgIHwgICAgMSAtCiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0gICAgICAgICAgICAgICB8ICAgMTkgLS0tLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaCAgICAgICAgIHwgICAgNCAtLS0KIFNvdXJj
ZS9XZWJLaXQvcXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNCArKysr
KysrKysrCiAuLi4vcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3Bw
ICB8ICAgMjEgLS0tLS0tLS0tLS0tLS0tCiAuLi4vcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuaCAgICB8ICAgIDEgLQogU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIu
ZGVmICAgICAgICAgICAgICAgICAgICAgfCAgICAyICsKIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9s
cy5maWx0ZXIgICAgICAgICAgICAgICAgICAgIHwgICAgMiArCiBUb29scy9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjcgKysrKysrKysrKysrKysrKysr
KysKIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCAgICAgIHwg
ICAxOSAtLS0tLS0tLS0tLS0tLQogVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuaCAgICAgICAgfCAgICAxIC0KIC4uLi9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9s
bGVyQmxhY2tCZXJyeS5jcHAgIHwgICAgNiAtLS0tCiAuLi4vRHVtcFJlbmRlclRyZWUvZWZsL0xh
eW91dFRlc3RDb250cm9sbGVyRWZsLmNwcCB8ICAgIDYgLS0tLQogLi4uL0R1bXBSZW5kZXJUcmVl
L2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgfCAgICA1IC0tLQogLi4uL0R1bXBSZW5k
ZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSAgfCAgICA1IC0tLQogVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAgfCAgICA1IC0tLQog
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oICAgfCAgICAy
IC0KIC4uLi9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIHwg
ICAgNiAtLS0tCiBUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4
LmNwcCB8ICAgIDYgLS0tLQogMjkgZmlsZXMgY2hhbmdlZCwgMTMxIGluc2VydGlvbnMoKyksIDEy
NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOGZhNjNjNC4uZGNlMjNkYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDEyLTAzLTEyICBBbnRvbmlvIEdvbWVzICA8YWdvbWVzQHJpbS5jb20+CisKKyAg
ICAgICAgQ29udmVydCBub2Rlc0Zyb21SZWN0IHRlc3RzIHRvIHVzZSBJbnRlcm5hbHMgaW50ZXJm
YWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDg4
NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkanVz
dCBub2Rlc0Zyb21SZWN0IHRlc3RzIHRvIHVzZSBJbnRlcm5hbHMKKyAgICAgICAgaW5zdGVhZCBv
ZiBMYXlvdXRUZXN0Q29udHJvbGxlciBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBmYXN0L2RvbS9y
ZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qczoKKyAgICAgICAgKGNoZWNrKToKKwogMjAxMi0wMy0x
MSAgQW50b25pbyBHb21lcyAgPGFnb21lc0ByaW0uY29tPgogCiAgICAgICAgIEJlIG1vcmUgcmVz
dHJpY3RpdmUgd2hlbiBhZGRpbmcgU2Nyb2xsYWJsZUFyZWEncyB0byBGcmFtZVZpZXcncyBTY3Jv
bGxhYmxlQXJlYSdzIG1hcApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3Vy
Y2VzL25vZGVzRnJvbVJlY3QuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvbm9k
ZXNGcm9tUmVjdC5qcwppbmRleCBiNWExMzZlLi4wNDg5NjQxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qcworKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9yZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qcwpAQCAtNSwxMyArNSwxMyBAQAog
CiBmdW5jdGlvbiBjaGVjayh4LCB5LCB0b3BQYWRkaW5nLCByaWdodFBhZGRpbmcsIGJvdHRvbVBh
ZGRpbmcsIGxlZnRQYWRkaW5nLCBsaXN0LCBkb2MpCiB7Ci0gIGlmICghd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCiAgICAgcmV0dXJuOwogCiAg
IGlmICghZG9jKQogICAgIGRvYyA9IGRvY3VtZW50OwogCi0gIHZhciBub2RlcyA9IGxheW91dFRl
c3RDb250cm9sbGVyLm5vZGVzRnJvbVJlY3QoZG9jLCB4LCB5LCB0b3BQYWRkaW5nLCByaWdodFBh
ZGRpbmcsIGJvdHRvbVBhZGRpbmcsIGxlZnRQYWRkaW5nLCB0cnVlIC8qIGlnbm9yZUNsaXBwaW5n
ICovKTsKKyAgdmFyIG5vZGVzID0gaW50ZXJuYWxzLm5vZGVzRnJvbVJlY3QoZG9jLCB4LCB5LCB0
b3BQYWRkaW5nLCByaWdodFBhZGRpbmcsIGJvdHRvbVBhZGRpbmcsIGxlZnRQYWRkaW5nLCB0cnVl
IC8qIGlnbm9yZUNsaXBwaW5nICovKTsKICAgaWYgKCFub2RlcykKICAgICByZXR1cm47CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBlYjdhNzlkLi4zOGEzMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAK
KzIwMTItMDMtMTIgIEFudG9uaW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4KKworICAgICAgICBD
b252ZXJ0IG5vZGVzRnJvbVJlY3QgdGVzdHMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgwODg2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEludGVybmFs
czo6bm9kZXNGcm9tUmVjdCBpbXBsZW1lbnRhdGlvbiB0byB1bmlmeQorICAgICAgICB0aGUgY29k
ZXBhdGggZm9yIHRlc3RpbmcgRG9jdW1lbnQ6Om5vZGVzRnJvbVJlY3QgaW4gYQorICAgICAgICBj
cm9zcyBwb3J0IHdheS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHNpbmNlIHdlIGFyZSBpbXBy
b3ZpbmcgaGVyZSB0aGUgaW5mcmEtc3RydWN0dXJlCisgICAgICAgIGZvciB0ZXN0aW5nIGEgc3Bl
Y2lmaWMgbWV0aG9kLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpub2Rlc0Zyb21SZWN0KToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgIChJbnRlcm5hbHMpOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxMi0wMy0xMSAgQW50b25pbyBH
b21lcyAgPGFnb21lc0ByaW0uY29tPgogCiAgICAgICAgIEJlIG1vcmUgcmVzdHJpY3RpdmUgd2hl
biBhZGRpbmcgU2Nyb2xsYWJsZUFyZWEncyB0byBGcmFtZVZpZXcncyBTY3JvbGxhYmxlQXJlYSdz
IG1hcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDVkOGE3OTQuLmZkOWZl
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTY4Miw0ICs2ODIsMTYg
QEAgdW5zaWduZWQgSW50ZXJuYWxzOjpudW1iZXJPZlNjcm9sbGFibGVBcmVhcyhEb2N1bWVudCog
ZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGUKICAgICByZXR1cm4gY291bnQ7CiB9CiAKK1Bhc3NS
ZWZQdHI8Tm9kZUxpc3Q+IEludGVybmFsczo6bm9kZXNGcm9tUmVjdChEb2N1bWVudCogZG9jdW1l
bnQsIGludCB4LCBpbnQgeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcsIHVuc2ln
bmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaWdub3JlQ2xpcHBpbmcsIEV4Y2Vw
dGlvbkNvZGUmIGVjKSBjb25zdAoreworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5m
cmFtZSgpIHx8ICFkb2N1bWVudC0+ZnJhbWUoKS0+dmlldygpKSB7CisgICAgICAgIGVjID0gSU5W
QUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4g
ZG9jdW1lbnQtPm5vZGVzRnJvbVJlY3QoeCwgeSwgdG9wUGFkZGluZywgcmlnaHRQYWRkaW5nLCBi
b3R0b21QYWRkaW5nLCBsZWZ0UGFkZGluZywgaWdub3JlQ2xpcHBpbmcpOworfQorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA5Y2JhOTllLi5kMmYxNjQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgSW50ZXJuYWxz
X2gKIAogI2luY2x1ZGUgIkZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIk5v
ZGVMaXN0LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC0xMjMsNiArMTI0LDEw
IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIG51bWJlck9mU2Nyb2xsYWJsZUFyZWFzKERvY3Vt
ZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogCisgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gbm9kZXNG
cm9tUmVjdChEb2N1bWVudCosIGludCAvKngqLywgaW50IC8qeSovLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgLyp0b3BQYWRkaW5nKi8sIHVuc2lnbmVk
IC8qcmlnaHRQYWRkaW5nKi8sIHVuc2lnbmVkIC8qYm90dG9tUGFkZGluZyovLCB1bnNpZ25lZCAv
KmxlZnRQYWRkaW5nKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIC8qaWdub3JlQ2xpcHBpbmcqLywgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OworCiAgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIGludGVybmFsc0lkOwogCiAgICAgSW50ZXJuYWxTZXR0aW5ncyogc2V0
dGluZ3MoKSBjb25zdCB7IHJldHVybiBtX3NldHRpbmdzLmdldCgpOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKaW5kZXggMjA2ZWU1OC4uNDczZmI0MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtOTksNiArOTksMTAgQEAgbW9kdWxlIHdpbmRvdyB7CiAK
ICAgICAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZlNjcm9sbGFibGVBcmVhcyhpbiBEb2N1bWVu
dCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogCisgICAgICAgIE5vZGVMaXN0IG5v
ZGVzRnJvbVJlY3QoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGxvbmcgeCwgaW4gbG9uZyB5LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIGxvbmcgdG9wUGFkZGlu
ZywgaW4gdW5zaWduZWQgbG9uZyByaWdodFBhZGRpbmcsIGluIHVuc2lnbmVkIGxvbmcgYm90dG9t
UGFkZGluZywgaW4gdW5zaWduZWQgbG9uZyBsZWZ0UGFkZGluZywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBib29sZWFuIGlnbm9yZUNsaXBwaW5nKSByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7CisKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEludGVybmFsU2V0dGluZ3Mgc2V0
dGluZ3M7CiAgICAgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA3OTQwY2EzLi41ODVmZTA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDMtMTIgIEFudG9uaW8gR29t
ZXMgIDxhZ29tZXNAcmltLmNvbT4KKworICAgICAgICBDb252ZXJ0IG5vZGVzRnJvbVJlY3QgdGVz
dHMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgwODg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBEUlRTdXBwb3J0R3RrOjpub2Rlc0Zyb21SZWN0
IHN1cHBvcnQsIHNpbmNlCisgICAgICAgIGl0IGNhbiB3b3JrIGluIHRoZSBjcm9zcy1wb3J0IHdh
eSB0aHJvdWdoIHRoZQorICAgICAgICBJbnRlcm5hbHMgaW50ZXJmYWNlLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ayk6CisKIDIwMTItMDMtMDcgIEthbmdpbCBIYW4gIDxrYW5naWwu
aGFuQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtEUlRdIFJlbW92ZSBQbGFpblRleHRDb250cm9s
bGVyIGltcGxlbWVudGF0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmluZGV4IDgwNDM3
ZmYuLmJjMGVkNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtMTEzLDIyICsxMTMs
NiBAQCBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpCiAgICAgcmV0dXJuIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDsKIH0KIAotSlNWYWx1ZVJlZiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6Om5vZGVzRnJvbVJl
Y3QoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgdmFsdWUsIGludCB4LCBpbnQgeSwg
dW5zaWduZWQgdG9wLCB1bnNpZ25lZCByaWdodCwgdW5zaWduZWQgYm90dG9tLCB1bnNpZ25lZCBs
ZWZ0LCBib29sIGlnbm9yZUNsaXBwaW5nKQotewotICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3Nl
cnRpb25zT25seSk7Ci0gICAgRXhlY1N0YXRlKiBleGVjID0gdG9KUyhjb250ZXh0KTsKLSAgICBp
ZiAoIXZhbHVlKQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
Ci0gICAgSlNWYWx1ZSBqc1ZhbHVlID0gdG9KUyhleGVjLCB2YWx1ZSk7Ci0gICAgaWYgKCFqc1Zh
bHVlLmluaGVyaXRzKCZKU0RvY3VtZW50OjpzX2luZm8pKQotICAgICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAgIEpTRG9jdW1lbnQqIGpzRG9jdW1lbnQgPSBz
dGF0aWNfY2FzdDxKU0RvY3VtZW50Kj4oYXNPYmplY3QoanNWYWx1ZSkpOwotICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IGpzRG9jdW1lbnQtPmltcGwoKTsKLSAgICBSZWZQdHI8Tm9kZUxpc3Q+IG5v
ZGVzID0gZG9jdW1lbnQtPm5vZGVzRnJvbVJlY3QoeCwgeSwgdG9wLCByaWdodCwgYm90dG9tLCBs
ZWZ0LCBpZ25vcmVDbGlwcGluZyk7Ci0gICAgcmV0dXJuIHRvUmVmKGV4ZWMsIHRvSlMoZXhlYywg
anNEb2N1bWVudC0+Z2xvYmFsT2JqZWN0KCksIG5vZGVzLmdldCgpKSk7Ci19Ci0KIC8qKgogICog
Z2V0RnJhbWVDaGlsZHJlbjoKICAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrLmgKaW5kZXggNDFhYjQwZi4uMGM0MDkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKKysrIGIv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmgKQEAgLTUzLDcgKzUzLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7CiAgICAgc3RhdGljIGJvb2wgc2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogCi0gICAgc3RhdGljIEpTVmFsdWVSZWYgbm9kZXNG
cm9tUmVjdChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSwgaW50IHgsIGlu
dCB5LCB1bnNpZ25lZCB0b3AsIHVuc2lnbmVkIHJpZ2h0LCB1bnNpZ25lZCBib3R0b20sIHVuc2ln
bmVkIGxlZnQsIGJvb2wgaWdub3JlQ2xpcHBpbmcpOwogICAgIHN0YXRpYyB2b2lkIGR1bXBDb25m
aWd1cmF0aW9uRm9yVmlld3BvcnQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgZ2ludCBkZXZpY2VE
UEksIGdpbnQgZGV2aWNlV2lkdGgsIGdpbnQgZGV2aWNlSGVpZ2h0LCBnaW50IGF2YWlsYWJsZVdp
ZHRoLCBnaW50IGF2YWlsYWJsZUhlaWdodCk7CiAKICAgICBzdGF0aWMgdm9pZCBjbGVhck9wZW5l
cihXZWJLaXRXZWJGcmFtZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDc2MTlkMWYuLjE0MThlMzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wMy0xMiAgQW50b25pbyBH
b21lcyAgPGFnb21lc0ByaW0uY29tPgorCisgICAgICAgIENvbnZlcnQgbm9kZXNGcm9tUmVjdCB0
ZXN0cyB0byB1c2UgSW50ZXJuYWxzIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4ODYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIG1hYyBzcGVjaWZpYyBzdXBwb3J0IGZvciBu
b2Rlc0Zyb21SZWN0IGZvciB0ZXN0aW5nIHB1cnBvc2VzIG9ubHksCisgICAgICAgIHNpbmNlIGl0
IGNhbiB3b3JrIGluIGEgY3Jvc3MtcG9ydCB3YXkgdGhyb3VnaCB0aGUgSW50ZXJuYWxzIGludGVy
ZmFjZS4KKworICAgICAgICAqIFdlYktpdC5vcmRlcjoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZp
ZXcubW06CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oOgorCiAyMDEyLTAzLTA5
ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgTm90aWZpY2F0
aW9uUHJlc2VudGVyIHRvIE5vdGlmaWNhdGlvbkNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViS2l0Lm9yZGVyIGIvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0Lm9yZGVyCmlu
ZGV4IGFjZDFhMzcuLjA0MGFlOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktp
dC5vcmRlcgorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJLaXQub3JkZXIKQEAgLTE4MTUsNyAr
MTgxNSw2IEBAIF9fWk4xNVdlYkNocm9tZUNsaWVudDRzaG93RXYKIF9fWk4xNVdlYkNocm9tZUNs
aWVudDE1Y2xvc2VXaW5kb3dTb29uRXYKIC1bV2ViVmlldyhXZWJJQkFjdGlvbnMpIHN0b3BMb2Fk
aW5nOl0KIC1bV2ViVmlldyhXZWJQcml2YXRlKSBfY2xvc2VXaW5kb3ddCi0tW1dlYlZpZXcoV2Vi
Vmlld1ByaXZhdGVOb2Rlc0Zyb21SZWN0KSBfbm9kZXNGcm9tUmVjdDpmb3JEb2N1bWVudDp4Onk6
dG9wOnJpZ2h0OmJvdHRvbTpsZWZ0Omlnbm9yZUNsaXBwaW5nOl0KIF9fWk4yMFdlYkZyYW1lTG9h
ZGVyQ2xpZW50MzhkaXNwYXRjaERlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbkVNTjdXZWJD
b3JlMTNQb2xpY3lDaGVja2VyRUZ2TlMwXzEyUG9saWN5QWN0aW9uRUVSS05TMF8xNk5hdmlnYXRp
b25BY3Rpb25FUktOUzBfMTVSZXNvdXJjZVJlcXVlc3RFTjNXVEYxMFBhc3NSZWZQdHJJTlMwXzlG
b3JtU3RhdGVFRUVSS05TQl82U3RyaW5nRQogLVtXZWJEZWZhdWx0UG9saWN5RGVsZWdhdGUgd2Vi
VmlldzpkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb246cmVxdWVzdDpuZXdGcmFtZU5hbWU6
ZGVjaXNpb25MaXN0ZW5lcjpdCiBfX1pOMjBXZWJGcmFtZUxvYWRlckNsaWVudDE4ZGlzcGF0Y2hD
cmVhdGVQYWdlRVJLTjdXZWJDb3JlMTZOYXZpZ2F0aW9uQWN0aW9uRQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCmluZGV4IDljZmU4YjMuLmMzMGYxYjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KQEAgLTY0NjEsMjUgKzY0NjEsNiBAQCBzdGF0aWMgdm9pZCBnbGli
Q29udGV4dEl0ZXJhdGlvbkNhbGxiYWNrKENGUnVuTG9vcE9ic2VydmVyUmVmLCBDRlJ1bkxvb3BB
Y3Rpdml0eQogCiBAZW5kCiAKLUBpbXBsZW1lbnRhdGlvbiBXZWJWaWV3IChXZWJWaWV3UHJpdmF0
ZU5vZGVzRnJvbVJlY3QpCi0KLS0gKEpTVmFsdWVSZWYpX25vZGVzRnJvbVJlY3Q6KEpTQ29udGV4
dFJlZiljb250ZXh0IGZvckRvY3VtZW50OihKU1ZhbHVlUmVmKXZhbHVlIHg6KGludCl4ICB5Oihp
bnQpeSB0b3A6KHVuc2lnbmVkKXRvcCByaWdodDoodW5zaWduZWQpcmlnaHQgYm90dG9tOih1bnNp
Z25lZClib3R0b20gbGVmdDoodW5zaWduZWQpbGVmdCBpZ25vcmVDbGlwcGluZzooQk9PTClpZ25v
cmVDbGlwcGluZwotewotICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3NlcnRpb25zT25seSk7Ci0g
ICAgRXhlY1N0YXRlKiBleGVjID0gdG9KUyhjb250ZXh0KTsKLSAgICBpZiAoIXZhbHVlKQotICAg
ICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0gICAgSlNWYWx1ZSBq
c1ZhbHVlID0gdG9KUyhleGVjLCB2YWx1ZSk7Ci0gICAgaWYgKCFqc1ZhbHVlLmluaGVyaXRzKCZK
U0RvY3VtZW50OjpzX2luZm8pKQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQo
Y29udGV4dCk7Ci0gICAgSlNEb2N1bWVudCoganNEb2N1bWVudCA9IHN0YXRpY19jYXN0PEpTRG9j
dW1lbnQqPihhc09iamVjdChqc1ZhbHVlKSk7Ci0gICAgRG9jdW1lbnQqIGRvY3VtZW50ID0ganNE
b2N1bWVudC0+aW1wbCgpOwotICAgIFJlZlB0cjxOb2RlTGlzdD4gbm9kZXMgPSBkb2N1bWVudC0+
bm9kZXNGcm9tUmVjdCh4LCB5LCB0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQsIGlnbm9yZUNsaXBw
aW5nKTsKLSAgICByZXR1cm4gdG9SZWYoZXhlYywgdG9KUyhleGVjLCBqc0RvY3VtZW50LT5nbG9i
YWxPYmplY3QoKSwgbm9kZXMuZ2V0KCkpKTsKLX0KLQotQGVuZAotCiB2b2lkIFdlYkluc3RhbGxN
ZW1vcnlQcmVzc3VyZUhhbmRsZXIodm9pZCkKIHsKICAgICBtZW1vcnlQcmVzc3VyZUhhbmRsZXIo
KS5pbnN0YWxsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2YXRlLmgK
aW5kZXggMWI2MTgyMS4uODU2NjU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld1ByaXZhdGUuaApAQCAtNzQ3LDEwICs3NDcsNiBAQCBDb3VsZCBiZSB3b3J0aCBhZGRpbmcg
dG8gdGhlIEFQSS4KIC0gKEpTVmFsdWVSZWYpX2NvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVk
SW5mbzooSlNDb250ZXh0UmVmKWNvbnRleHQgZm9yRWxlbWVudDooSlNWYWx1ZVJlZil2YWx1ZTsK
IEBlbmQKIAotQGludGVyZmFjZSBXZWJWaWV3IChXZWJWaWV3UHJpdmF0ZU5vZGVzRnJvbVJlY3Qp
Ci0tIChKU1ZhbHVlUmVmKV9ub2Rlc0Zyb21SZWN0OihKU0NvbnRleHRSZWYpY29udGV4dCBmb3JE
b2N1bWVudDooSlNWYWx1ZVJlZil2YWx1ZSB4OihpbnQpeCAgeTooaW50KXkgdG9wOih1bnNpZ25l
ZCl0b3AgcmlnaHQ6KHVuc2lnbmVkKXJpZ2h0IGJvdHRvbToodW5zaWduZWQpYm90dG9tIGxlZnQ6
KHVuc2lnbmVkKWxlZnQgaWdub3JlQ2xpcHBpbmc6KEJPT0wpaWdub3JlQ2xpcHBpbmc7Ci1AZW5k
Ci0KIEBpbnRlcmZhY2UgTlNPYmplY3QgKFdlYlZpZXdGcmFtZUxvYWREZWxlZ2F0ZVByaXZhdGUp
CiAtICh2b2lkKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgZGlkRmlyc3RMYXlvdXRJbkZyYW1l
OihXZWJGcmFtZSAqKWZyYW1lOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IGQ5YzRlZTkuLjA5MzQ0ZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDMtMTIgIEFudG9uaW8gR29t
ZXMgIDxhZ29tZXNAcmltLmNvbT4KKworICAgICAgICBDb252ZXJ0IG5vZGVzRnJvbVJlY3QgdGVz
dHMgdG8gdXNlIEludGVybmFscyBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgwODg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBEUlRTdXBwb3J0UXQ6Om5vZGVzRnJvbVJlY3Qg
c3VwcG9ydCwgc2luY2UKKyAgICAgICAgaXQgY2FuIHdvcmsgaW4gdGhlIGNyb3NzLXBvcnQgd2F5
IHRocm91Z2ggdGhlCisgICAgICAgIEludGVybmFscyBpbnRlcmZhY2UuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6CisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaDoKKwogMjAxMi0wMy0wOSAgSm9u
IExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIE5vdGlmaWNhdGlvblBy
ZXNlbnRlciB0byBOb3RpZmljYXRpb25DbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXgg
NDU3YjQ5ZS4uMzZkNjM1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTk5MiwyNyArOTky
LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2ltdWxhdGVEZXNrdG9wTm90aWZp
Y2F0aW9uQ2xpY2soY29uc3QgUVN0cmluZyYgdGkKICNlbmRpZgogfQogCi1RVmFyaWFudExpc3Qg
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6Om5vZGVzRnJvbVJlY3QoY29uc3QgUVdlYkVsZW1lbnQm
IGRvY3VtZW50LCBpbnQgeCwgaW50IHksIHVuc2lnbmVkIHRvcCwgdW5zaWduZWQgcmlnaHQsIHVu
c2lnbmVkIGJvdHRvbSwgdW5zaWduZWQgbGVmdCwgYm9vbCBpZ25vcmVDbGlwcGluZykKLXsKLSAg
ICBRVmFyaWFudExpc3QgcmVzOwotICAgIFdlYkNvcmU6OkVsZW1lbnQqIHdlYkVsZW1lbnQgPSBk
b2N1bWVudC5tX2VsZW1lbnQ7Ci0gICAgaWYgKCF3ZWJFbGVtZW50KQotICAgICAgICByZXR1cm4g
cmVzOwotCi0gICAgRG9jdW1lbnQqIGRvYyA9IHdlYkVsZW1lbnQtPmRvY3VtZW50KCk7Ci0gICAg
aWYgKCFkb2MpCi0gICAgICAgIHJldHVybiByZXM7Ci0gICAgUmVmUHRyPE5vZGVMaXN0PiBub2Rl
cyA9IGRvYy0+bm9kZXNGcm9tUmVjdCh4LCB5LCB0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQsIGln
bm9yZUNsaXBwaW5nKTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbm9kZXMtPmxlbmd0
aCgpOyBpKyspIHsKLSAgICAgICAgLy8gUVdlYkVsZW1lbnQgd2lsbCBiZSBudWxsIGlmIHRoZSBO
b2RlIGlzIG5vdCBhbiBIVE1MIEVsZW1lbnQKLSAgICAgICAgaWYgKG5vZGVzLT5pdGVtKGkpLT5p
c0hUTUxFbGVtZW50KCkpCi0gICAgICAgICAgICByZXMgPDwgUVZhcmlhbnQ6OmZyb21WYWx1ZShR
V2ViRWxlbWVudChub2Rlcy0+aXRlbShpKSkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBy
ZXMgPDwgUVZhcmlhbnQ6OmZyb21WYWx1ZShRRFJUTm9kZShub2Rlcy0+aXRlbShpKSkpOwotICAg
IH0KLSAgICByZXR1cm4gcmVzOwotfQotCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpz
ZXREZWZlcnNMb2FkaW5nKFFXZWJQYWdlKiBwYWdlLCBib29sIGZsYWcpCiB7CiAgICAgUGFnZSog
Y29yZVBhZ2UgPSBRV2ViUGFnZVByaXZhdGU6OmNvcmUocGFnZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmggYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgK
aW5kZXggZDk0OWU1MS4uYzc3YzQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaApAQCAtMjA2LDcgKzIw
Niw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIHNjYWxlUGFnZUJ5KFFXZWJGcmFtZSos
IGZsb2F0IHNjYWxlLCBjb25zdCBRUG9pbnQmIG9yaWdpbik7CiAKLSAgICBzdGF0aWMgUVZhcmlh
bnRMaXN0IG5vZGVzRnJvbVJlY3QoY29uc3QgUVdlYkVsZW1lbnQmIGRvY3VtZW50LCBpbnQgeCwg
aW50IHksIHVuc2lnbmVkIHRvcCwgdW5zaWduZWQgcmlnaHQsIHVuc2lnbmVkIGJvdHRvbSwgdW5z
aWduZWQgbGVmdCwgYm9vbCBpZ25vcmVDbGlwcGluZyk7CiAgICAgc3RhdGljIFFTdHJpbmcgcmVz
cG9uc2VNaW1lVHlwZShRV2ViRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBjbGVhck9wZW5lcihR
V2ViRnJhbWUqKTsKICAgICBzdGF0aWMgdm9pZCBhZGRVUkxUb1JlZGlyZWN0KGNvbnN0IFFTdHJp
bmcmIG9yaWdpbiwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRpb24pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIu
ZGVmCmluZGV4IDZjYTg0ODkuLjY1Y2MyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTE5
OSw4ICsxOTksMTAgQEAgRVhQT1JUUwogICAgICAgICA/dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFs
dWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVkNsaWVudFJl
Y3RAMUBAWgogICAgICAgICA/dG9KU0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZFeGVj
U3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVk5vZGVAMUBAWgogICAgICAgICA/dG9K
U0BXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2Jh
bE9iamVjdEAxQFBBVlJhbmdlQDFAQFoKKyAgICAgICAgP3RvSlNAV2ViQ29yZUBAWUE/QVZKU1Zh
bHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZOb2RlTGlz
dEAxQEBaCiAgICAgICAgID90b1JhbmdlQFdlYkNvcmVAQFlBUEFWUmFuZ2VAMUBWSlNWYWx1ZUBK
U0NAQEBaCiAgICAgICAgID91cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNARG9j
dW1lbnRAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID91c2VyUHJlZmVycmVkTGFuZ3VhZ2VzQFdl
YkNvcmVAQFlBP0FWPyRWZWN0b3JAVlN0cmluZ0BXVEZAQCQwQUBAV1RGQEBYWgogICAgICAgICA/
dmlld0BEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZGcmFtZVZpZXdAMkBYWgogICAgICAgICA/d2ls
bERldGFjaFBhZ2VARnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyQFdlYkNvcmVAQFVBRVhYWgorICAg
ICAgICA/bm9kZXNGcm9tUmVjdEBEb2N1bWVudEBXZWJDb3JlQEBRQkU/QVY/JFBhc3NSZWZQdHJA
Vk5vZGVMaXN0QFdlYkNvcmVAQEBXVEZAQEhISUlJSV9OQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9h
dXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
CmluZGV4IDJlNzE3MjQuLjAzNDZiM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3lt
Ym9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtMTAy
LDYgKzEwMiw4IEBAIF9aTjdXZWJDb3JlMjRGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIxNHdpbGxE
ZXRhY2hQYWdlRXY7CiBfWk43V2ViQ29yZTIyUnVudGltZUVuYWJsZWRGZWF0dXJlczMxaXNNdWx0
aXBsZVNoYWRvd1N1YnRyZWVzRW5hYmxlZEU7CiBfWk43V2ViQ29yZTIyUnVudGltZUVuYWJsZWRG
ZWF0dXJlczMyc2V0TXVsdGlwbGVTaGFkb3dTdWJ0cmVlc0VuYWJsZWRFYjsKIF9aTjdXZWJDb3Jl
MjJSdW50aW1lRW5hYmxlZEZlYXR1cmVzMThpc1NoYWRvd0RPTUVuYWJsZWRFOworX1pOSzdXZWJD
b3JlOERvY3VtZW50MTNub2Rlc0Zyb21SZWN0RWlpampqamI7CitfWk43V2ViQ29yZTR0b0pTRVBO
M0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzhOb2RlTGlzdEU7CiBs
b2NhbDoKIF9aKjsKIGN0aSo7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggOWZlZTE0MS4uOWI4YzE2ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAzLTEyICBB
bnRvbmlvIEdvbWVzICA8YWdvbWVzQHJpbS5jb20+CisKKyAgICAgICAgQ29udmVydCBub2Rlc0Zy
b21SZWN0IHRlc3RzIHRvIHVzZSBJbnRlcm5hbHMgaW50ZXJmYWNlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDg4NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2xlYW4gdXAgYWxsb3dzIHRvIHJl
bW92ZSBwb3J0IHNwZWNpZmljIGJpdHMgb2YgZWFjaAorICAgICAgICBEUlQgaW1wbGVtZW50YXRp
b24gdGhhdCBzdXBwb3J0cyB0ZXN0aW5nIERvY3VtZW50Ojpub2Rlc0Zyb21SZWN0LAorICAgICAg
ICBpbiBmYXZvciBvZiBtYWtpbmcgdXNlIG9mIHRoZSAnSW50ZXJuYWxzJyBpbnRlcmZhY2UgdG8g
dGVzdCBpdC4KKworICAgICAgICBUaGlzIG1ha2VzIGl0cyBjb2RlIGNvbnZlbmllbnRseSBtb3Jl
IGV4cGFuc2libGUgYW5kIGNsZWFuZXIuCisKKyAgICAgICAgQWxzbyByZW1vdmVkIHN0dWJzIGZy
b20gV2luIGFuZCBFRkwgRFJUcy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNG
dW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
Lmg6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcDoKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CisgICAgICAgIChMYXlvdXRU
ZXN0Q29udHJvbGxlcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RD
b250cm9sbGVyV2luLmNwcDoKKwogMjAxMi0wMy0xMSAgTWFjaWVqIFN0YWNob3dpYWsgIDxtanNA
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCAtLWluc3RydW1lbnRzIG9wdGlvbiB0byBzdW5zcGlk
ZXIgdG8gcHJvZmlsZSB3aXRoIEluc3RydW1lbnRzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggY2I4NDdiYS4uOTZhZWVkZCAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtNzQ3LDI0ICs3
NDcsNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZElu
Zm9DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dAogICAgIHJldHVybiBjb250cm9sbGVyLT5j
b21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oY29udGV4dCwgYXJndW1lbnRzWzBdKTsK
IH0KIAotc3RhdGljIEpTVmFsdWVSZWYgbm9kZXNGcm9tUmVjdENhbGxiYWNrKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
c2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAgICBpZiAoYXJndW1lbnRDb3VudCAhPSA4KQotICAgICAg
ICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBpbnQgeCA9IEpT
VmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMV0sIE5VTEwpOwotICAgIGludCB5ID0g
SlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1syXSwgTlVMTCk7Ci0gICAgaW50IHRv
cCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1l
bnRzWzNdLCBOVUxMKSk7Ci0gICAgaW50IHJpZ2h0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpT
VmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbNF0sIE5VTEwpKTsKLSAgICBpbnQgYm90
dG9tID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTVmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1
bWVudHNbNV0sIE5VTEwpKTsKLSAgICBpbnQgbGVmdCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihK
U1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzZdLCBOVUxMKSk7Ci0gICAgYm9vbCBp
Z25vcmVDbGlwcGluZyA9IEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzddKTsK
LQotICAgIC8vIEhhcyBtYWMgaW1wbGVtZW50YXRpb24uCi0gICAgTGF5b3V0VGVzdENvbnRyb2xs
ZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRUZXN0Q29udHJvbGxlcio+KEpTT2Jq
ZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgcmV0dXJuIGNvbnRyb2xsZXItPm5vZGVz
RnJvbVJlY3QoY29udGV4dCwgYXJndW1lbnRzWzBdLCB4LCB5LCB0b3AsIHJpZ2h0LCBib3R0b20s
IGxlZnQsIGlnbm9yZUNsaXBwaW5nKTsKLX0KLQogc3RhdGljIEpTVmFsdWVSZWYgbGF5ZXJUcmVl
QXNUZXh0Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9u
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIC8vIEhh
cyBtYWMgJiB3aW5kb3dzIGltcGxlbWVudGF0aW9uCkBAIC0yMzUzLDcgKzIzMzUsNiBAQCBKU1N0
YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAg
ICAgICAgeyAiY2xlYXJQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXQiLCBjbGVhclBlcnNpc3RlbnRV
c2VyU3R5bGVTaGVldENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImNsb3NlV2ViSW5zcGVj
dG9yIiwgY2xvc2VXZWJJbnNwZWN0b3JDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJjb21w
dXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8iLCBjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlz
aXRlZEluZm9DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJub2Rlc0Zyb21SZWN0Iiwgbm9k
ZXNGcm9tUmVjdENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImRlY29kZUhvc3ROYW1lIiwg
ZGVjb2RlSG9zdE5hbWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkaXNhYmxlSW1hZ2VM
b2FkaW5nIiwgZGlzYWJsZUltYWdlTG9hZGluZ0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
ImRpc2FsbG93SW5jcmVhc2VGb3JBcHBsaWNhdGlvbkNhY2hlUXVvdGEiLCBkaXNhbGxvd0luY3Jl
YXNlRm9yQXBwbGljYXRpb25DYWNoZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IDQ1MjY1ZGIuLmIzMjQ4ZDAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtNjks
NyArNjksNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0NvbW1hbmRFbmFibGVkKEpTU3RyaW5nUmVm
IG5hbWUpOwogICAgIHZvaWQga2VlcFdlYkhpc3RvcnkoKTsKICAgICBKU1ZhbHVlUmVmIGNvbXB1
dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyhKU0NvbnRleHRSZWYsIEpTVmFsdWVSZWYpOwot
ICAgIEpTVmFsdWVSZWYgbm9kZXNGcm9tUmVjdChKU0NvbnRleHRSZWYsIEpTVmFsdWVSZWYsIGlu
dCB4LCBpbnQgeSwgdW5zaWduZWQgdG9wLCB1bnNpZ25lZCByaWdodCwgdW5zaWduZWQgYm90dG9t
LCB1bnNpZ25lZCBsZWZ0LCBib29sIGlnbm9yZUNsaXBwaW5nKTsKICAgICB2b2lkIG5vdGlmeURv
bmUoKTsKICAgICBpbnQgbnVtYmVyT2ZQYWdlcyhmbG9hdCBwYWdlV2lkdGhJblBpeGVscywgZmxv
YXQgcGFnZUhlaWdodEluUGl4ZWxzKTsKICAgICBpbnQgbnVtYmVyT2ZQZW5kaW5nR2VvbG9jYXRp
b25QZXJtaXNzaW9uUmVxdWVzdHMoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvTGF5b3V0VGVzdENvbnRyb2xsZXJCbGFja0JlcnJ5LmNw
cAppbmRleCAxYzAyMDU0Li5kNGQyM2QyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ibGFja2JlcnJ5L0xheW91dFRlc3RDb250cm9sbGVyQmxhY2tCZXJyeS5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9MYXlvdXRUZXN0Q29udHJvbGxlckJsYWNrQmVy
cnkuY3BwCkBAIC03MjMsMTIgKzcyMyw2IEBAIGJvb2wgTGF5b3V0VGVzdENvbnRyb2xsZXI6Omhh
c1NwZWxsaW5nTWFya2VyKGludCBmcm9tLCBpbnQgbGVuZ3RoKQogICAgIHJldHVybiBtYWluRnJh
bWUtPmVkaXRvcigpLT5zZWxlY3Rpb25TdGFydEhhc01hcmtlckZvcihXZWJDb3JlOjpEb2N1bWVu
dE1hcmtlcjo6U3BlbGxpbmcsIGZyb20sIGxlbmd0aCk7CiB9CiAKLUpTVmFsdWVSZWYgTGF5b3V0
VGVzdENvbnRyb2xsZXI6Om5vZGVzRnJvbVJlY3QoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFs
dWVSZWYgdmFsdWUsIGludCB4LCBpbnQgeSwgdW5zaWduZWQgdG9wLCB1bnNpZ25lZCByaWdodCwg
dW5zaWduZWQgYm90dG9tLCB1bnNpZ25lZCBsZWZ0LCBib29sIGlnbm9yZUNsaXBwaW5nKQotewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOwotfQotCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRTZXJpYWxpemVIVFRQ
TG9hZHMoYm9vbCkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGlmIG5lZWRlZCBmb3IgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwNzU4LgpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xheW91dFRlc3RDb250cm9sbGVyRWZsLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9MYXlvdXRUZXN0Q29udHJvbGxlckVmbC5jcHAKaW5kZXgg
ZWI0YTI5My4uYjlmNTRjYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0xh
eW91dFRlc3RDb250cm9sbGVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
TGF5b3V0VGVzdENvbnRyb2xsZXJFZmwuY3BwCkBAIC0xMDksMTIgKzEwOSw2IEBAIEpTVmFsdWVS
ZWYgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5m
byhKU0NvbnRleHRSZWYKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
CiB9CiAKLUpTVmFsdWVSZWYgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om5vZGVzRnJvbVJlY3QoSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYsIGludCwgaW50LCB1bnNpZ25lZCwgdW5zaWdu
ZWQsIHVuc2lnbmVkLCB1bnNpZ25lZCwgYm9vbCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQogSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpsYXllclRyZWVBc1RleHQoKSBj
b25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCAxYTliMmM5Li42OWQ1
ZDUxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRy
b2xsZXJHdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29u
dHJvbGxlckd0ay5jcHAKQEAgLTEyNCwxMSArMTI0LDYgQEAgSlNWYWx1ZVJlZiBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6Y29tcHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEpTQ29udGV4dFJl
ZgogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAotSlNWYWx1
ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9tUmVjdChKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSwgaW50IHgsIGludCB5LCB1bnNpZ25lZCB0b3AsIHVuc2ln
bmVkIHJpZ2h0LCB1bnNpZ25lZCBib3R0b20sIHVuc2lnbmVkIGxlZnQsIGJvb2wgaWdub3JlQ2xp
cHBpbmcpCi17Ci0gICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6bm9kZXNGcm9t
UmVjdChjb250ZXh0LCB2YWx1ZSwgeCwgeSwgdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0LCBpZ25v
cmVDbGlwcGluZyk7Ci19Ci0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6bGF5ZXJUcmVlQXNUZXh0KCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogaW1wbGVt
ZW50CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRy
b2xsZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xs
ZXJNYWMubW0KaW5kZXggZWRkM2M2MS4uZDI2NzVkYiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQpAQCAtMjc2LDExICsyNzYs
NiBAQCBKU1ZhbHVlUmVmIExheW91dFRlc3RDb250cm9sbGVyOjpjb21wdXRlZFN0eWxlSW5jbHVk
aW5nVmlzaXRlZEluZm8oSlNDb250ZXh0UmVmCiAgICAgcmV0dXJuIFtbbWFpbkZyYW1lIHdlYlZp
ZXddIF9jb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm86Y29udGV4dCBmb3JFbGVtZW50
OnZhbHVlXTsKIH0KIAotSlNWYWx1ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bm9kZXNGcm9t
UmVjdChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSwgaW50IHgsIGludCB5
LCB1bnNpZ25lZCB0b3AsIHVuc2lnbmVkIHJpZ2h0LCB1bnNpZ25lZCBib3R0b20sIHVuc2lnbmVk
IGxlZnQsIGJvb2wgaWdub3JlQ2xpcHBpbmcpCi17Ci0gICAgcmV0dXJuIFtbbWFpbkZyYW1lIHdl
YlZpZXddIF9ub2Rlc0Zyb21SZWN0OmNvbnRleHQgZm9yRG9jdW1lbnQ6dmFsdWUgeDp4IHk6eSB0
b3A6dG9wIHJpZ2h0OnJpZ2h0IGJvdHRvbTpib3R0b20gbGVmdDpsZWZ0IGlnbm9yZUNsaXBwaW5n
Omlnbm9yZUNsaXBwaW5nXTsKLX0KLQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRl
c3RDb250cm9sbGVyOjpsYXllclRyZWVBc1RleHQoKSBjb25zdAogewogICAgIEpTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBzdHJpbmcoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKChD
RlN0cmluZ1JlZilbbWFpbkZyYW1lIF9sYXllclRyZWVBc1RleHRdKSk7CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCmluZGV4IDY2ZmRm
MWUuLjg2OWYyNjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuY3BwCkBAIC05NDksMTEgKzk0OSw2IEBAIGJvb2wgTGF5b3V0VGVzdENv
bnRyb2xsZXI6Omhhc1NwZWxsaW5nTWFya2VyKGludCwgaW50KQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotUVZhcmlhbnRMaXN0IExheW91dFRlc3RDb250cm9sbGVyOjpub2Rlc0Zyb21SZWN0KGNv
bnN0IFFXZWJFbGVtZW50JiBkb2N1bWVudCwgaW50IHgsIGludCB5LCB1bnNpZ25lZCB0b3AsIHVu
c2lnbmVkIHJpZ2h0LCB1bnNpZ25lZCBib3R0b20sIHVuc2lnbmVkIGxlZnQsIGJvb2wgaWdub3Jl
Q2xpcHBpbmcpCi17Ci0gICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpub2Rlc0Zy
b21SZWN0KGRvY3VtZW50LCB4LCB5LCB0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQsIGlnbm9yZUNs
aXBwaW5nKTsKLX0KLQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVVJMVG9SZWRpcmVj
dChjb25zdCBRU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFFTdHJpbmcmIGRlc3RpbmF0aW9uKQogewog
ICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjphZGRVUkxUb1JlZGlyZWN0KG9yaWdpbiwgZGVz
dGluYXRpb24pOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5oCmluZGV4IDQ3NWI5MjQuLjMyZjYxZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKQEAgLTI0Myw4ICsyNDMsNiBAQCBw
dWJsaWMgc2xvdHM6CiAgICAgdm9pZCBhYm9ydE1vZGFsKCkge30KICAgICBib29sIGhhc1NwZWxs
aW5nTWFya2VyKGludCBmcm9tLCBpbnQgbGVuZ3RoKTsKIAotICAgIFFWYXJpYW50TGlzdCBub2Rl
c0Zyb21SZWN0KGNvbnN0IFFXZWJFbGVtZW50JiBkb2N1bWVudCwgaW50IHgsIGludCB5LCB1bnNp
Z25lZCB0b3AsIHVuc2lnbmVkIHJpZ2h0LCB1bnNpZ25lZCBib3R0b20sIHVuc2lnbmVkIGxlZnQs
IGJvb2wgaWdub3JlQ2xpcHBpbmcpOwotCiAgICAgdm9pZCBhZGRVUkxUb1JlZGlyZWN0KGNvbnN0
IFFTdHJpbmcmIG9yaWdpbiwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRpb24pOwogCiAgICAgLyoK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxl
cldpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJX
aW4uY3BwCmluZGV4IDUxODVhOGYuLjU0MzA5NDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcApAQCAtMTc5LDEyICsxNzks
NiBAQCBKU1ZhbHVlUmVmIExheW91dFRlc3RDb250cm9sbGVyOjpjb21wdXRlZFN0eWxlSW5jbHVk
aW5nVmlzaXRlZEluZm8oSlNDb250ZXh0UmVmCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOwogfQogCi1KU1ZhbHVlUmVmIExheW91dFRlc3RDb250cm9sbGVyOjpub2Rl
c0Zyb21SZWN0KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlLCBpbnQgeCwg
aW50IHksIHVuc2lnbmVkIHRvcCwgdW5zaWduZWQgcmlnaHQsIHVuc2lnbmVkIGJvdHRvbSwgdW5z
aWduZWQgbGVmdCwgYm9vbCBpZ25vcmVDbGlwcGluZykKLXsKLSAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IHRoaXMuCi0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotfQot
CiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6OmxheWVyVHJl
ZUFzVGV4dCgpIGNvbnN0CiB7CiAgICAgQ09NUHRyPElXZWJGcmFtZVByaXZhdGU+IGZyYW1lUHJp
dmF0ZShRdWVyeSwgZnJhbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gv
TGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlv
dXRUZXN0Q29udHJvbGxlcld4LmNwcAppbmRleCBmZjc0NjQ0Li4xOTY5NTliIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcApAQCAt
NTM3LDEyICs1MzcsNiBAQCBKU1ZhbHVlUmVmIExheW91dFRlc3RDb250cm9sbGVyOjpjb21wdXRl
ZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oSlNDb250ZXh0UmVmLAogICAgIHJldHVybiAwOwog
fQogCi1KU1ZhbHVlUmVmIExheW91dFRlc3RDb250cm9sbGVyOjpub2Rlc0Zyb21SZWN0KEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZhbHVlLCBpbnQgeCwgaW50IHksIHVuc2lnbmVk
IHRvcCwgdW5zaWduZWQgcmlnaHQsIHVuc2lnbmVkIGJvdHRvbSwgdW5zaWduZWQgbGVmdCwgYm9v
bCBpZ25vcmVDbGlwcGluZykKLXsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCi0gICAg
cmV0dXJuIDA7Ci19Ci0KIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmF1dGhlbnRpY2F0ZVNl
c3Npb24oSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmLCBKU1N0cmluZ1JlZikKIHsKIH0KLS0gCjEu
Ny4xCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>