<?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>198093</bug_id>
          
          <creation_ts>2019-05-21 16:18:20 -0700</creation_ts>
          <short_desc>[CMake] Build with hidden visibility by default</short_desc>
          <delta_ts>2020-05-11 06:52:18 -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>CMake</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>MOVED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Christopher Reid">chris.reid</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>fujii</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1538034</commentid>
    <comment_count>0</comment_count>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2019-05-21 16:18:20 -0700</bug_when>
    <thetext>Hidden visibility is needed for CFI. Clang will only emit CFI checks for a class if it can infer hidden visibility.
Michael mentioned that there were some issues hit with GTK and hidden visibility where some static object instances can be duplicated in multiple shared objects https://bugs.webkit.org/show_bug.cgi?id=197920.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538043</commentid>
    <comment_count>1</comment_count>
      <attachid>370355</attachid>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2019-05-21 16:36:42 -0700</bug_when>
    <thetext>Created attachment 370355
WIP Patch

Currently compiles and runs gtk layout tests and minibrowser.
Only 25% of layout tests are passing with these changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538171</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-22 07:01:39 -0700</bug_when>
    <thetext>I think this should only be a problem for GTK though, because only GTK installs multiple shared libraries (libjavascriptcoregtk for JSC/WTF/bmalloc, and libwebkit2gtk for WebCore/WebKit). Ports that have only a single shared library (like WPE) should be OK with -fvisibility=hidden.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538236</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-22 10:11:13 -0700</bug_when>
    <thetext>You&apos;re going to want to review:

https://bugs.webkit.org/show_bug.cgi?id=179914#c49

And bug #182496.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538240</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-22 10:20:38 -0700</bug_when>
    <thetext>Also https://bugs.webkit.org/show_bug.cgi?id=181438#c40 and r226945.

Note, in particular, from bug #179914:

&quot;&quot;&quot;
Adding _ZN7bmalloc10PerProcessINS_12IsoTLSLayoutEE8s_objectE to the global section in the filter file fixes the crash
&quot;&quot;&quot;

To use -fvisibility=hidden, every global template is going to need to be listed in the linker version script. You will need to add a script to the build process to ensure the build fails if any symbols are missed. In bug #179914, Carlos indicates that he had a script that gets you partway there, at least at the time. You might ask him about that. Note there is an extern &quot;C++&quot; syntax to avoid the need to use mangled names in the linker script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538245</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-05-22 10:23:41 -0700</bug_when>
    <thetext>Oh, the script is Tools/Scripts/check-for-global-bss-symbols-in-webkigtk-libs, it already exists. Lucky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539709</commentid>
    <comment_count>6</comment_count>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2019-05-28 13:47:41 -0700</bug_when>
    <thetext>Thanks for those references, they have been helpful.

I edited the bss script to show duplicated bss symbols that are marked local in both shared objects.
One case of that was g_gigacageBasePtrs was being duplicated in each module which was causing failures in the cases I was looking at (and probably a large chunk of the other failures).
I didn&apos;t realize bmalloc has its own export macros switch, g_gigacageBasePtrs was supposed to be export but wasn&apos;t because BUSE_EXPORT_MACROS was off. I&apos;ll upload a new patch with that on.

The cases I was looking are now passing in minibrowser but WKTR is now deadlocking.

&gt; std::lock_guard&lt;Mutex&gt; lock(Heap::mutex());
&gt; for (unsigned i = numHeaps; i--;) {
&gt;     if (!isActiveHeapKind(static_cast&lt;HeapKind&gt;(i)))
&gt;         continue;
&gt;     PerProcess&lt;PerHeapKind&lt;Heap&gt;&gt;::get()-&gt;at(i).scavenge(lock, decommitter, deferredDecommits);

The heap mutex is acquired in the lock_guard then acquired again in the PerProcess&lt;&gt;::getSlowCase.
It seems similar to the other PerProcess issues that were linked.

&gt; $ objdump -t -j .bss -C libjavascriptcoregtk-4.0.so | grep s_object
&gt; 0000000002649098 l     O .bss	0000000000000008              .hidden bmalloc::PerProcess&lt;bmalloc::PerHeapKind&lt;bmalloc::Heap&gt; &gt;::s_object

&gt; $ objdump -t -j .bss -C ../bin/WebKitTestRunner | grep s_object
&gt; 0000000000651070 l     O .bss	0000000000000008              .hidden bmalloc::PerProcess&lt;bmalloc::PerHeapKind&lt;bmalloc::Heap&gt; &gt;::s_object

Interestingly there only seems to be a duplicate instance of it in WKTR. It&apos;s  not in the minibrowser binary or libwebkit2gtk.so. The other s_object instances that are in both the jsc and wk shared objects are all marked as global with objdump.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539710</commentid>
    <comment_count>7</comment_count>
      <attachid>370782</attachid>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2019-05-28 13:49:06 -0700</bug_when>
    <thetext>Created attachment 370782
WIP Patch

Turned on bmalloc exports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541811</commentid>
    <comment_count>8</comment_count>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2019-06-04 17:29:24 -0700</bug_when>
    <thetext>It looks like most of these cases are sorted out if we link WTF and bmalloc static libraries as whole archives
when building libjavascriptcoregtk.so then stop linking to those static libraries and just link to libjavascriptcoregtk.so later on.

The WKTR PerProcess deadlock was because WKTR was directly linking to libWTFGTK.a in its _LIBRARIES and it was preceding libjavascriptcoregtk.so in the link command
so functions were getting linked from there before libjavascriptcoregtk.so.

If we stop linking to bmalloc and WTF after building libjavascriptcoregtk.so then most of these issues will become build errors because of missing exports instead of subtle runtime issues.
The only instances of duplicated local .bss symbols after doing that is with statics defined in headers.
Specifically these `cached` statics are the only duplicated symbols I&apos;m seeing now https://github.com/WebKit/webkit/blob/master/Source/bmalloc/bmalloc/VMAllocate.h#L57.

I&apos;ll upload my WIP patch with cmake hacked together to stop linking to bmalloc and WTF static libs after libjavascriptcoregtk.so is built.
Don was looking at ways to achieve that properly in cmake.
I haven&apos;t been able to run layout tests on it yet since GTK layout tests are red at the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541812</commentid>
    <comment_count>9</comment_count>
      <attachid>371357</attachid>
    <who name="Christopher Reid">chris.reid</who>
    <bug_when>2019-06-04 17:34:56 -0700</bug_when>
    <thetext>Created attachment 371357
WIP Patch

hacking cmake to stop linking to libWTFGTK.a and libbmalloc.a after building libjavascriptcoregtk.so

Note: currently only builds in debug, release might need some more exports</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541822</commentid>
    <comment_count>10</comment_count>
      <attachid>371357</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-06-04 18:43:12 -0700</bug_when>
    <thetext>Comment on attachment 371357
WIP Patch

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

&gt; Source/JavaScriptCore/CMakeLists.txt:125
&gt; +    -Wl,--no-whole-archive

OBJECT library is better way to do it in CMake. See Bug 196866.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541843</commentid>
    <comment_count>11</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2019-06-04 19:32:17 -0700</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #10)
&gt; Comment on attachment 371357 [details]
&gt; WIP Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=371357&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/CMakeLists.txt:125
&gt; &gt; +    -Wl,--no-whole-archive
&gt; 
&gt; OBJECT library is better way to do it in CMake. See Bug 196866.

Chris is hitting https://gitlab.kitware.com/cmake/cmake/issues/18010 when using object libraries. Ubuntu comes with 3.10 but the fix came in 3.12</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541850</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-04 19:46:07 -0700</bug_when>
    <thetext>Wow... nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541856</commentid>
    <comment_count>13</comment_count>
      <attachid>371357</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-04 19:52:34 -0700</bug_when>
    <thetext>Comment on attachment 371357
WIP Patch

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

&gt; Source/JavaScriptCore/CMakeLists.txt:121
&gt; +    -lpthread

No doubt this is perfectly idiomatic CMake. Yup. :P

&gt; Source/JavaScriptCore/CMakeLists.txt:1317
&gt; +get_target_property(link_props JavaScriptCore INTERFACE_LINK_LIBRARIES)
&gt; +message(&quot;${link_props}&quot;)
&gt; +list(REMOVE_ITEM link_props WTF bmalloc -Wl,--whole-archive -Wl,--no-whole-archive)
&gt; +message(&quot;${link_props}&quot;)
&gt; +set_target_properties(JavaScriptCore PROPERTIES INTERFACE_LINK_LIBRARIES &quot;${link_props}&quot;)

Heh, well, awful as this is, I&apos;m quite impressed that you succeeded. I&apos;m excited for -fvisibility=hidden!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541884</commentid>
    <comment_count>14</comment_count>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2019-06-04 21:22:41 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #13)
&gt; Comment on attachment 371357 [details]
&gt; WIP Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=371357&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/CMakeLists.txt:121
&gt; &gt; +    -lpthread
&gt; 
&gt; No doubt this is perfectly idiomatic CMake. Yup. :P

🥺 WIP

Well get this cleaned up before landing but this should hopefully solve the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651261</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-05-11 06:52:18 -0700</bug_when>
    <thetext>The adventure continues in bug #210366.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370355</attachid>
            <date>2019-05-21 16:36:42 -0700</date>
            <delta_ts>2019-05-28 13:49:44 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>hidden-visibility.diff</filename>
            <type>text/plain</type>
            <size>12746</size>
            <attacher name="Christopher Reid">chris.reid</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDb250ZXh0UHJp
dmF0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHRQcml2YXRl
LmgKaW5kZXggZmM3MjcwZWQ1MmUuLjczOWZjNDk3NmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ29udGV4dFByaXZhdGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ29udGV4dFByaXZhdGUuaApAQCAtMjUsMTUgKzI1LDE0
IEBACiAjaW5jbHVkZSAiSlNDb250ZXh0UmVmLmgiCiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0
ci5oPgogCi1HUmVmUHRyPEpTQ0NvbnRleHQ+IGpzY0NvbnRleHRHZXRPckNyZWF0ZShKU0dsb2Jh
bENvbnRleHRSZWYpOwotSlNHbG9iYWxDb250ZXh0UmVmIGpzY0NvbnRleHRHZXRKU0NvbnRleHQo
SlNDQ29udGV4dCopOwotR1JlZlB0cjxKU0NWYWx1ZT4ganNjQ29udGV4dEdldE9yQ3JlYXRlVmFs
dWUoSlNDQ29udGV4dCosIEpTVmFsdWVSZWYpOwotdm9pZCBqc2NDb250ZXh0VmFsdWVEZXN0cm95
ZWQoSlNDQ29udGV4dCosIEpTVmFsdWVSZWYpOwotSlNDOjpKU09iamVjdCoganNjQ29udGV4dEdl
dEpTV3JhcHBlcihKU0NDb250ZXh0KiwgZ3BvaW50ZXIpOwotSlNDOjpKU09iamVjdCoganNjQ29u
dGV4dEdldE9yQ3JlYXRlSlNXcmFwcGVyKEpTQ0NvbnRleHQqLCBKU0NsYXNzUmVmLCBKU1ZhbHVl
UmVmIHByb3RvdHlwZSA9IG51bGxwdHIsIGdwb2ludGVyID0gbnVsbHB0ciwgR0Rlc3Ryb3lOb3Rp
ZnkgPSBudWxscHRyKTsKLUpTR2xvYmFsQ29udGV4dFJlZiBqc2NDb250ZXh0Q3JlYXRlQ29udGV4
dFdpdGhKU1dyYXBwZXIoSlNDQ29udGV4dCosIEpTQ2xhc3NSZWYsIEpTVmFsdWVSZWYgcHJvdG90
eXBlID0gbnVsbHB0ciwgZ3BvaW50ZXIgPSBudWxscHRyLCBHRGVzdHJveU5vdGlmeSA9IG51bGxw
dHIpOwotZ3BvaW50ZXIganNjQ29udGV4dFdyYXBwZWRPYmplY3QoSlNDQ29udGV4dCosIEpTT2Jq
ZWN0UmVmKTsKLUpTQ0NsYXNzKiBqc2NDb250ZXh0R2V0UmVnaXN0ZXJlZENsYXNzKEpTQ0NvbnRl
eHQqLCBKU0NsYXNzUmVmKTsKK0pTX0VYUE9SVF9QUklWQVRFIEdSZWZQdHI8SlNDQ29udGV4dD4g
anNjQ29udGV4dEdldE9yQ3JlYXRlKEpTR2xvYmFsQ29udGV4dFJlZik7CitKU19FWFBPUlRfUFJJ
VkFURSBKU0dsb2JhbENvbnRleHRSZWYganNjQ29udGV4dEdldEpTQ29udGV4dChKU0NDb250ZXh0
Kik7CitKU19FWFBPUlRfUFJJVkFURSBHUmVmUHRyPEpTQ1ZhbHVlPiBqc2NDb250ZXh0R2V0T3JD
cmVhdGVWYWx1ZShKU0NDb250ZXh0KiwgSlNWYWx1ZVJlZik7CitKU19FWFBPUlRfUFJJVkFURSB2
b2lkIGpzY0NvbnRleHRWYWx1ZURlc3Ryb3llZChKU0NDb250ZXh0KiwgSlNWYWx1ZVJlZik7CitK
U19FWFBPUlRfUFJJVkFURSBKU0M6OkpTT2JqZWN0KiBqc2NDb250ZXh0R2V0SlNXcmFwcGVyKEpT
Q0NvbnRleHQqLCBncG9pbnRlcik7IEpTQzo6SlNPYmplY3QqIGpzY0NvbnRleHRHZXRPckNyZWF0
ZUpTV3JhcHBlcihKU0NDb250ZXh0KiwgSlNDbGFzc1JlZiwgSlNWYWx1ZVJlZiBwcm90b3R5cGUg
PSBudWxscHRyLCBncG9pbnRlciA9IG51bGxwdHIsIEdEZXN0cm95Tm90aWZ5ID0gbnVsbHB0cik7
CitKU19FWFBPUlRfUFJJVkFURSBKU0dsb2JhbENvbnRleHRSZWYganNjQ29udGV4dENyZWF0ZUNv
bnRleHRXaXRoSlNXcmFwcGVyKEpTQ0NvbnRleHQqLCBKU0NsYXNzUmVmLCBKU1ZhbHVlUmVmIHBy
b3RvdHlwZSA9IG51bGxwdHIsIGdwb2ludGVyID0gbnVsbHB0ciwgR0Rlc3Ryb3lOb3RpZnkgPSBu
dWxscHRyKTsKK0pTX0VYUE9SVF9QUklWQVRFIGdwb2ludGVyIGpzY0NvbnRleHRXcmFwcGVkT2Jq
ZWN0KEpTQ0NvbnRleHQqLCBKU09iamVjdFJlZik7CitKU19FWFBPUlRfUFJJVkFURSBKU0NDbGFz
cyoganNjQ29udGV4dEdldFJlZ2lzdGVyZWRDbGFzcyhKU0NDb250ZXh0KiwgSlNDbGFzc1JlZik7
CiAKIHN0cnVjdCBDYWxsYmFja0RhdGEgewogICAgIEdSZWZQdHI8SlNDQ29udGV4dD4gY29udGV4
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWYWx1ZVBy
aXZhdGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWYWx1ZVByaXZhdGUu
aAppbmRleCA2MjE0NDM1M2Y1NS4uOTMxN2QwMjhhZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWYWx1ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL2dsaWIvSlNDVmFsdWVQcml2YXRlLmgKQEAgLTIxLDUgKzIxLDUgQEAKIAog
I2luY2x1ZGUgIkpTQ1ZhbHVlLmgiCiAKLUpTVmFsdWVSZWYganNjVmFsdWVHZXRKU1ZhbHVlKEpT
Q1ZhbHVlKik7Ci1KU0NWYWx1ZSoganNjVmFsdWVDcmVhdGUoSlNDQ29udGV4dCosIEpTVmFsdWVS
ZWYpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNWYWx1ZVJlZiBqc2NWYWx1ZUdldEpTVmFsdWUoSlND
VmFsdWUqKTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTQ1ZhbHVlKiBqc2NWYWx1ZUNyZWF0ZShKU0ND
b250ZXh0KiwgSlNWYWx1ZVJlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3JlbW90ZS9nbGliL1JlbW90ZUluc3BlY3RvclNlcnZlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIu
aAppbmRleCBmNmM3YjRlZmJkZS4uZTViZmM0MzlmZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2dsaWIvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVJ
bnNwZWN0b3JTZXJ2ZXIuaApAQCAtNDQsMTAgKzQ0LDEwIEBAIG5hbWVzcGFjZSBJbnNwZWN0b3Ig
ewogCiBjbGFzcyBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZW1vdGVJbnNwZWN0b3JTZXJ2ZXImIHNpbmdsZXRvbigpOwotICAgIH5SZW1vdGVJbnNwZWN0b3JT
ZXJ2ZXIoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVtb3RlSW5zcGVjdG9yU2Vy
dmVyJiBzaW5nbGV0b24oKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB+UmVtb3RlSW5zcGVjdG9y
U2VydmVyKCk7CiAKLSAgICBib29sIHN0YXJ0KGNvbnN0IGNoYXIqIGFkZHJlc3MsIHVuc2lnbmVk
IHBvcnQpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgc3RhcnQoY29uc3QgY2hhciogYWRk
cmVzcywgdW5zaWduZWQgcG9ydCk7CiAgICAgYm9vbCBpc1J1bm5pbmcoKSBjb25zdCB7IHJldHVy
biAhIW1fZGJ1c1NlcnZlcjsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVJbnNwZWN0b3JVdGlscy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVJbnNwZWN0
b3JVdGlscy5oCmluZGV4IDZmOTVhYjVjNTJhLi5lYTQzMzA3YWJkZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVJbnNwZWN0b3JV
dGlscy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2dsaWIv
UmVtb3RlSW5zcGVjdG9yVXRpbHMuaApAQCAtMzUsNyArMzUsNyBAQCB0eXBlZGVmIHN0cnVjdCBf
R0J5dGVzIEdCeXRlczsKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCiBHUmVmUHRyPEdCeXRlcz4g
YmFja2VuZENvbW1hbmRzKCk7Ci1jb25zdCBDU3RyaW5nJiBiYWNrZW5kQ29tbWFuZHNIYXNoKCk7
CitKU19FWFBPUlRfUFJJVkFURSBjb25zdCBDU3RyaW5nJiBiYWNrZW5kQ29tbWFuZHNIYXNoKCk7
CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Db250ZW50VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVu
dFR5cGUuaAppbmRleCBjODJiNWI3MTk3Yy4uMjNlMWYxMmJmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vQ29udGVudFR5cGUuaApAQCAtMzcsMTEgKzM3LDExIEBAIHB1YmxpYzoKICAgICBleHBs
aWNpdCBDb250ZW50VHlwZShjb25zdCBTdHJpbmcmIHR5cGUpOwogICAgIENvbnRlbnRUeXBlKCkg
PSBkZWZhdWx0OwogCi0gICAgc3RhdGljIGNvbnN0IFN0cmluZyYgY29kZWNzUGFyYW1ldGVyKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IFN0cmluZyYgY29kZWNzUGFyYW1ldGVy
KCk7CiAgICAgc3RhdGljIGNvbnN0IFN0cmluZyYgcHJvZmlsZXNQYXJhbWV0ZXIoKTsKIAotICAg
IFN0cmluZyBwYXJhbWV0ZXIoY29uc3QgU3RyaW5nJiBwYXJhbWV0ZXJOYW1lKSBjb25zdDsKLSAg
ICBTdHJpbmcgY29udGFpbmVyVHlwZSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmlu
ZyBwYXJhbWV0ZXIoY29uc3QgU3RyaW5nJiBwYXJhbWV0ZXJOYW1lKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBTdHJpbmcgY29udGFpbmVyVHlwZSgpIGNvbnN0OwogICAgIFZlY3RvcjxTdHJp
bmc+IGNvZGVjcygpIGNvbnN0OwogICAgIFZlY3RvcjxTdHJpbmc+IHByb2ZpbGVzKCkgY29uc3Q7
CiAgICAgY29uc3QgU3RyaW5nJiByYXcoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDNlMTI2
M2JiYjYzLi42NzlmZGQ5MTJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5oCkBAIC00MDIsMTUgKzQwMiwxNSBAQCBwdWJsaWM6CiAgICAgUHJl
bG9hZCBwcmVsb2FkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRQcmVsb2FkKFByZWxvYWQpOwogCi0g
ICAgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKCk7Ci0gICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdl
ZCgpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZCgpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoKTsKICAgICB2b2lkIHZvbHVt
ZUNoYW5nZWQoZG91YmxlKTsKICAgICB2b2lkIG11dGVDaGFuZ2VkKGJvb2wpOwotICAgIHZvaWQg
dGltZUNoYW5nZWQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHRpbWVDaGFuZ2VkKCk7CiAg
ICAgdm9pZCBzaXplQ2hhbmdlZCgpOwogICAgIHZvaWQgcmF0ZUNoYW5nZWQoKTsKICAgICB2b2lk
IHBsYXliYWNrU3RhdGVDaGFuZ2VkKCk7Ci0gICAgdm9pZCBkdXJhdGlvbkNoYW5nZWQoKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGR1cmF0aW9uQ2hhbmdlZCgpOwogICAgIHZvaWQgZmlyc3RW
aWRlb0ZyYW1lQXZhaWxhYmxlKCk7CiAgICAgdm9pZCBjaGFyYWN0ZXJpc3RpY0NoYW5nZWQoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1U
aW1lUmFuZ2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRp
bWVSYW5nZXMuaAppbmRleCAxODg4Njk1Yzc2ZS4uOWEzYWU4YWQ2M2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5oCkBA
IC00MCwxMiArNDAsMTIgQEAgY2xhc3MgUGxhdGZvcm1UaW1lUmFuZ2VzIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBQbGF0Zm9ybVRpbWVSYW5n
ZXMoKSB7IH0KLSAgICBQbGF0Zm9ybVRpbWVSYW5nZXMoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwg
Y29uc3QgTWVkaWFUaW1lJiBlbmQpOworICAgIFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtVGltZVJh
bmdlcyhjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCk7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCBNZWRpYVRpbWUgc3RhcnQodW5zaWduZWQgaW5kZXgpIGNvbnN0Owog
ICAgIE1lZGlhVGltZSBzdGFydCh1bnNpZ25lZCBpbmRleCwgYm9vbCYgdmFsaWQpIGNvbnN0Owog
ICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlhVGltZSBlbmQodW5zaWduZWQgaW5kZXgpIGNvbnN0Owot
ICAgIE1lZGlhVGltZSBlbmQodW5zaWduZWQgaW5kZXgsIGJvb2wmIHZhbGlkKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBNZWRpYVRpbWUgZW5kKHVuc2lnbmVkIGluZGV4LCBib29sJiB2YWxp
ZCkgY29uc3Q7CiAgICAgTWVkaWFUaW1lIGR1cmF0aW9uKHVuc2lnbmVkIGluZGV4KSBjb25zdDsK
ICAgICBNZWRpYVRpbWUgbWF4aW11bUJ1ZmZlcmVkVGltZSgpIGNvbnN0OwogCkBAIC01OSwxMSAr
NTksMTEgQEAgcHVibGljOgogICAgIAogICAgIGJvb2wgY29udGFpbihjb25zdCBNZWRpYVRpbWUm
KSBjb25zdDsKIAotICAgIHNpemVfdCBmaW5kKGNvbnN0IE1lZGlhVGltZSYpIGNvbnN0OworICAg
IFdFQkNPUkVfRVhQT1JUIHNpemVfdCBmaW5kKGNvbnN0IE1lZGlhVGltZSYpIGNvbnN0OwogICAg
IAogICAgIE1lZGlhVGltZSBuZWFyZXN0KGNvbnN0IE1lZGlhVGltZSYpIGNvbnN0OwogCi0gICAg
TWVkaWFUaW1lIHRvdGFsRHVyYXRpb24oKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRp
YVRpbWUgdG90YWxEdXJhdGlvbigpIGNvbnN0OwogCiAgICAgdm9pZCBkdW1wKFdURjo6UHJpbnRT
dHJlYW0mKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vUmVmUHRyQ2Fpcm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL1JlZlB0ckNhaXJvLmgKaW5kZXggYWExZDE5MjI2YjMuLmVjMDc2NzhkYjI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9SZWZQdHJD
YWlyby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1JlZlB0
ckNhaXJvLmgKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdURiB7CiB0ZW1wbGF0ZTw+IHZv
aWQgcmVmSWZOb3ROdWxsKGNhaXJvX3QqIHB0cik7CiB0ZW1wbGF0ZTw+IFdFQkNPUkVfRVhQT1JU
IHZvaWQgZGVyZWZJZk5vdE51bGwoY2Fpcm9fdCogcHRyKTsKIAotdGVtcGxhdGU8PiB2b2lkIHJl
ZklmTm90TnVsbChjYWlyb19zdXJmYWNlX3QqIHB0cik7Cit0ZW1wbGF0ZTw+IFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcmVmSWZOb3ROdWxsKGNhaXJvX3N1cmZhY2VfdCogcHRyKTsKIHRlbXBsYXRlPD4g
V0VCQ09SRV9FWFBPUlQgdm9pZCBkZXJlZklmTm90TnVsbChjYWlyb19zdXJmYWNlX3QqIHB0cik7
CiAKIHRlbXBsYXRlPD4gdm9pZCByZWZJZk5vdE51bGwoY2Fpcm9fZm9udF9mYWNlX3QqIHB0cik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ2VydGlm
aWNhdGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ2VydGlm
aWNhdGVJbmZvLmgKaW5kZXggOTM5YmFlNTgwYTcuLmYxNDdiNzU4NWE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0NlcnRpZmljYXRlSW5mby5o
CkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlc291cmNlRXJy
b3I7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogCi1jbGFzcyBDZXJ0aWZpY2F0ZUluZm8gIDog
cHVibGljIENlcnRpZmljYXRlSW5mb0Jhc2UgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgQ2VydGlm
aWNhdGVJbmZvICA6IHB1YmxpYyBDZXJ0aWZpY2F0ZUluZm9CYXNlIHsKIHB1YmxpYzoKICAgICBD
ZXJ0aWZpY2F0ZUluZm8oKTsKICAgICBleHBsaWNpdCBDZXJ0aWZpY2F0ZUluZm8oY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5oCmluZGV4IGZmYmQ0OWE3
NjJhLi4xZGQ0MTNlNWJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29ya1Nlc3Npb24uaApAQCAtNjUsNyArNjUsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc2V0SW5pdGlhbEFjY2VwdExhbmd1YWdlcyhjb25zdCBD
U3RyaW5nJik7CiAgICAgdm9pZCBzZXRBY2NlcHRMYW5ndWFnZXMoY29uc3QgQ1N0cmluZyYpOwog
Ci0gICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkSWdub3JlVExTRXJyb3JzKGJvb2wpOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldFNob3VsZElnbm9yZVRMU0Vycm9ycyhib29sKTsK
ICAgICBzdGF0aWMgT3B0aW9uYWw8UmVzb3VyY2VFcnJvcj4gY2hlY2tUTFNFcnJvcnMoY29uc3Qg
VVJMJiwgR1Rsc0NlcnRpZmljYXRlKiwgR1Rsc0NlcnRpZmljYXRlRmxhZ3MpOwogICAgIHN0YXRp
YyB2b2lkIGFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBDZXJ0aWZp
Y2F0ZUluZm8mLCBjb25zdCBTdHJpbmcmIGhvc3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9ndGsvSW5wdXRNZXRob2RGaWx0ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2d0ay9JbnB1dE1ldGhvZEZpbHRlci5oCmluZGV4IDJhNGFmNmFjMDNjLi5kMDA0NjI3
NzE5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0lucHV0TWV0aG9k
RmlsdGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0lucHV0TWV0aG9kRmls
dGVyLmgKQEAgLTIwLDYgKzIwLDcgQEAKICNpZm5kZWYgSW5wdXRNZXRob2RGaWx0ZXJfaAogI2Rl
ZmluZSBJbnB1dE1ldGhvZEZpbHRlcl9oCiAKKyNpbmNsdWRlICJXS0RlY2xhcmF0aW9uU3BlY2lm
aWVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KICNpbmNsdWRlIDx3dGYvRnVu
Y3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KQEAgLTQ2LDIxICs0NywyMSBA
QCBwdWJsaWM6CiAgICAgICAgIEV2ZW50Tm90RmFrZWQKICAgICB9OwogCi0gICAgSW5wdXRNZXRo
b2RGaWx0ZXIoKTsKLSAgICB+SW5wdXRNZXRob2RGaWx0ZXIoKTsKKyAgICBXS19FWFBPUlQgSW5w
dXRNZXRob2RGaWx0ZXIoKTsKKyAgICBXS19FWFBPUlQgfklucHV0TWV0aG9kRmlsdGVyKCk7CiAK
ICAgICBHdGtJTUNvbnRleHQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0
KCk7IH0KIAogICAgIHZvaWQgc2V0UGFnZShXZWJQYWdlUHJveHkqIHBhZ2UpIHsgbV9wYWdlID0g
cGFnZTsgfQogCi0gICAgdm9pZCBzZXRFbmFibGVkKGJvb2wpOworICAgIFdLX0VYUE9SVCB2b2lk
IHNldEVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRDdXJzb3JSZWN0KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmKTsKIAogICAgIHVzaW5nIEZpbHRlcktleUV2ZW50Q29tcGxldGlvbkhhbmRsZXIg
PSBGdW5jdGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6OkNvbXBvc2l0aW9uUmVzdWx0cyYsIElucHV0
TWV0aG9kRmlsdGVyOjpFdmVudEZha2VkRm9yQ29tcG9zaXRpb24pPjsKLSAgICB2b2lkIGZpbHRl
cktleUV2ZW50KEdka0V2ZW50S2V5KiwgRmlsdGVyS2V5RXZlbnRDb21wbGV0aW9uSGFuZGxlciYm
ID0gbnVsbHB0cik7Ci0gICAgdm9pZCBub3RpZnlGb2N1c2VkSW4oKTsKLSAgICB2b2lkIG5vdGlm
eUZvY3VzZWRPdXQoKTsKLSAgICB2b2lkIG5vdGlmeU1vdXNlQnV0dG9uUHJlc3MoKTsKKyAgICBX
S19FWFBPUlQgdm9pZCBmaWx0ZXJLZXlFdmVudChHZGtFdmVudEtleSosIEZpbHRlcktleUV2ZW50
Q29tcGxldGlvbkhhbmRsZXImJiA9IG51bGxwdHIpOworICAgIFdLX0VYUE9SVCB2b2lkIG5vdGlm
eUZvY3VzZWRJbigpOworICAgIFdLX0VYUE9SVCB2b2lkIG5vdGlmeUZvY3VzZWRPdXQoKTsKKyAg
ICBXS19FWFBPUlQgdm9pZCBub3RpZnlNb3VzZUJ1dHRvblByZXNzKCk7CiAKICNpZiBFTkFCTEUo
QVBJX1RFU1RTKQogICAgIHZvaWQgc2V0VGVzdGluZ01vZGUoYm9vbCBlbmFibGUpIHsgbV90ZXN0
aW5nTW9kZSA9IGVuYWJsZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsu
Y21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQppbmRleCBkMjkwYmVmZmRkOS4u
ZGNkZmRjNTg3OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCisr
KyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCkBAIC0xOTQsNiArMTk0LDcgQEAgc2V0
KEdES19JTkNMVURFX0RJUlMgJHtHREszX0lOQ0xVREVfRElSU30pCiBTRVRfQU5EX0VYUE9TRV9U
T19CVUlMRChIQVZFX0dUS19HRVNUVVJFUyAke0dUSzNfU1VQUE9SVFNfR0VTVFVSRVN9KQogU0VU
X0FORF9FWFBPU0VfVE9fQlVJTEQoSEFWRV9HVEtfVU5JWF9QUklOVElORyAke0dUS1VuaXhQcmlu
dF9GT1VORH0pCiBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChIQVZFX09TX0RBUktfTU9ERV9TVVBQ
T1JUIDEpCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfRVhQT1JUX01BQ1JPUyBPTikKIAog
c2V0KGdsaWJfY29tcG9uZW50cyBnaW8gZ2lvLXVuaXggZ29iamVjdCBndGhyZWFkIGdtb2R1bGUp
CiBmaW5kX3BhY2thZ2UoR0xJQiAyLjM2IFJFUVVJUkVEIENPTVBPTkVOVFMgJHtnbGliX2NvbXBv
bmVudHN9KQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL1dlYktpdENvbXBpbGVyRmxhZ3MuY21h
a2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0Q29tcGlsZXJGbGFncy5jbWFrZQppbmRleCBmNTZhNDdi
YmU0Yi4uMDFmNWQwZTAwZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9XZWJLaXRDb21waWxl
ckZsYWdzLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9XZWJLaXRDb21waWxlckZsYWdzLmNtYWtl
CkBAIC0xMDMsNiArMTAzLDcgQEAgaWYgKENPTVBJTEVSX0lTX0dDQ19PUl9DTEFORykKICAgICBl
bHNlICgpCiAgICAgICAgIFdFQktJVF9BUFBFTkRfR0xPQkFMX0NPTVBJTEVSX0ZMQUdTKC1mbm8t
ZXhjZXB0aW9ucykKICAgICAgICAgV0VCS0lUX0FQUEVORF9HTE9CQUxfQ1hYX0ZMQUdTKC1mbm8t
cnR0aSkKKyAgICAgICAgV0VCS0lUX0FQUEVORF9HTE9CQUxfQ09NUElMRVJfRkxBR1MoLWZ2aXNp
YmlsaXR5PWhpZGRlbikKIAogICAgICAgICBjaGVja19jeHhfY29tcGlsZXJfZmxhZygiLXN0ZD1j
KysxNyIgQ1hYX0NPTVBJTEVSX1NVUFBPUlRTX0NYWDE3KQogICAgICAgICBpZiAoQ1hYX0NPTVBJ
TEVSX1NVUFBPUlRTX0NYWDE3KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9Jbmpl
Y3RlZEJ1bmRsZU1haW4uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9JbmplY3RlZEJ1bmRsZU1h
aW4uY3BwCmluZGV4IGIyNTM3ZjczN2Q1Li42NTkwZjZiZGRlNiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9JbmplY3RlZEJ1bmRsZU1haW4uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvSW5qZWN0ZWRCdW5kbGVNYWluLmNwcApAQCAtMzIsNiArMzIsOCBAQAogCiAjaWYgZGVm
aW5lZChXSU4zMikgfHwgZGVmaW5lZChfV0lOMzIpCiBleHRlcm4gIkMiIF9fZGVjbHNwZWMoZGxs
ZXhwb3J0KSAKKyNlbGlmIGRlZmluZWQodW5peCkgfHwgZGVmaW5lZChfX3VuaXgpIC8vIFRPRE8g
Tm90IHN1cmUgaG93IHRoaXMgd2FzIGFsc28gd29ya2luZyBiZWZvcmUKK2V4dGVybiAiQyIgX19h
dHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpKSkKICNlbHNlCiBleHRlcm4gIkMiCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGVNYWluLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVNYWluLmNwcAppbmRleCBkZmEzZDMxOGY1Ny4uMmY0YzNmYTI1
ZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVNYWluLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlTWFpbi5jcHAKQEAgLTMwLDYgKzMwLDggQEAKIAogI2lmIGRl
ZmluZWQoV0lOMzIpCiBleHRlcm4gIkMiIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQorI2VsaWYgZGVm
aW5lZCh1bml4KSB8fCBkZWZpbmVkKF9fdW5peCkgLy8gVE9ETyBOb3Qgc3VyZSBob3cgdGhlc2Ug
d29ya2VkIGJlZm9yZQorZXh0ZXJuICJDIiBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZh
dWx0IikpKQogI2Vsc2UKIGV4dGVybiAiQyIKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370782</attachid>
            <date>2019-05-28 13:49:06 -0700</date>
            <delta_ts>2019-06-04 17:35:20 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>hidden-visibility.diff</filename>
            <type>text/plain</type>
            <size>13343</size>
            <attacher name="Christopher Reid">chris.reid</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDb250ZXh0UHJp
dmF0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHRQcml2YXRl
LmgKaW5kZXggZmM3MjcwZWQ1MmUuLjczOWZjNDk3NmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ29udGV4dFByaXZhdGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ29udGV4dFByaXZhdGUuaApAQCAtMjUsMTUgKzI1LDE0
IEBACiAjaW5jbHVkZSAiSlNDb250ZXh0UmVmLmgiCiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0
ci5oPgogCi1HUmVmUHRyPEpTQ0NvbnRleHQ+IGpzY0NvbnRleHRHZXRPckNyZWF0ZShKU0dsb2Jh
bENvbnRleHRSZWYpOwotSlNHbG9iYWxDb250ZXh0UmVmIGpzY0NvbnRleHRHZXRKU0NvbnRleHQo
SlNDQ29udGV4dCopOwotR1JlZlB0cjxKU0NWYWx1ZT4ganNjQ29udGV4dEdldE9yQ3JlYXRlVmFs
dWUoSlNDQ29udGV4dCosIEpTVmFsdWVSZWYpOwotdm9pZCBqc2NDb250ZXh0VmFsdWVEZXN0cm95
ZWQoSlNDQ29udGV4dCosIEpTVmFsdWVSZWYpOwotSlNDOjpKU09iamVjdCoganNjQ29udGV4dEdl
dEpTV3JhcHBlcihKU0NDb250ZXh0KiwgZ3BvaW50ZXIpOwotSlNDOjpKU09iamVjdCoganNjQ29u
dGV4dEdldE9yQ3JlYXRlSlNXcmFwcGVyKEpTQ0NvbnRleHQqLCBKU0NsYXNzUmVmLCBKU1ZhbHVl
UmVmIHByb3RvdHlwZSA9IG51bGxwdHIsIGdwb2ludGVyID0gbnVsbHB0ciwgR0Rlc3Ryb3lOb3Rp
ZnkgPSBudWxscHRyKTsKLUpTR2xvYmFsQ29udGV4dFJlZiBqc2NDb250ZXh0Q3JlYXRlQ29udGV4
dFdpdGhKU1dyYXBwZXIoSlNDQ29udGV4dCosIEpTQ2xhc3NSZWYsIEpTVmFsdWVSZWYgcHJvdG90
eXBlID0gbnVsbHB0ciwgZ3BvaW50ZXIgPSBudWxscHRyLCBHRGVzdHJveU5vdGlmeSA9IG51bGxw
dHIpOwotZ3BvaW50ZXIganNjQ29udGV4dFdyYXBwZWRPYmplY3QoSlNDQ29udGV4dCosIEpTT2Jq
ZWN0UmVmKTsKLUpTQ0NsYXNzKiBqc2NDb250ZXh0R2V0UmVnaXN0ZXJlZENsYXNzKEpTQ0NvbnRl
eHQqLCBKU0NsYXNzUmVmKTsKK0pTX0VYUE9SVF9QUklWQVRFIEdSZWZQdHI8SlNDQ29udGV4dD4g
anNjQ29udGV4dEdldE9yQ3JlYXRlKEpTR2xvYmFsQ29udGV4dFJlZik7CitKU19FWFBPUlRfUFJJ
VkFURSBKU0dsb2JhbENvbnRleHRSZWYganNjQ29udGV4dEdldEpTQ29udGV4dChKU0NDb250ZXh0
Kik7CitKU19FWFBPUlRfUFJJVkFURSBHUmVmUHRyPEpTQ1ZhbHVlPiBqc2NDb250ZXh0R2V0T3JD
cmVhdGVWYWx1ZShKU0NDb250ZXh0KiwgSlNWYWx1ZVJlZik7CitKU19FWFBPUlRfUFJJVkFURSB2
b2lkIGpzY0NvbnRleHRWYWx1ZURlc3Ryb3llZChKU0NDb250ZXh0KiwgSlNWYWx1ZVJlZik7CitK
U19FWFBPUlRfUFJJVkFURSBKU0M6OkpTT2JqZWN0KiBqc2NDb250ZXh0R2V0SlNXcmFwcGVyKEpT
Q0NvbnRleHQqLCBncG9pbnRlcik7IEpTQzo6SlNPYmplY3QqIGpzY0NvbnRleHRHZXRPckNyZWF0
ZUpTV3JhcHBlcihKU0NDb250ZXh0KiwgSlNDbGFzc1JlZiwgSlNWYWx1ZVJlZiBwcm90b3R5cGUg
PSBudWxscHRyLCBncG9pbnRlciA9IG51bGxwdHIsIEdEZXN0cm95Tm90aWZ5ID0gbnVsbHB0cik7
CitKU19FWFBPUlRfUFJJVkFURSBKU0dsb2JhbENvbnRleHRSZWYganNjQ29udGV4dENyZWF0ZUNv
bnRleHRXaXRoSlNXcmFwcGVyKEpTQ0NvbnRleHQqLCBKU0NsYXNzUmVmLCBKU1ZhbHVlUmVmIHBy
b3RvdHlwZSA9IG51bGxwdHIsIGdwb2ludGVyID0gbnVsbHB0ciwgR0Rlc3Ryb3lOb3RpZnkgPSBu
dWxscHRyKTsKK0pTX0VYUE9SVF9QUklWQVRFIGdwb2ludGVyIGpzY0NvbnRleHRXcmFwcGVkT2Jq
ZWN0KEpTQ0NvbnRleHQqLCBKU09iamVjdFJlZik7CitKU19FWFBPUlRfUFJJVkFURSBKU0NDbGFz
cyoganNjQ29udGV4dEdldFJlZ2lzdGVyZWRDbGFzcyhKU0NDb250ZXh0KiwgSlNDbGFzc1JlZik7
CiAKIHN0cnVjdCBDYWxsYmFja0RhdGEgewogICAgIEdSZWZQdHI8SlNDQ29udGV4dD4gY29udGV4
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWYWx1ZVBy
aXZhdGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWYWx1ZVByaXZhdGUu
aAppbmRleCA2MjE0NDM1M2Y1NS4uOTMxN2QwMjhhZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWYWx1ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL2dsaWIvSlNDVmFsdWVQcml2YXRlLmgKQEAgLTIxLDUgKzIxLDUgQEAKIAog
I2luY2x1ZGUgIkpTQ1ZhbHVlLmgiCiAKLUpTVmFsdWVSZWYganNjVmFsdWVHZXRKU1ZhbHVlKEpT
Q1ZhbHVlKik7Ci1KU0NWYWx1ZSoganNjVmFsdWVDcmVhdGUoSlNDQ29udGV4dCosIEpTVmFsdWVS
ZWYpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNWYWx1ZVJlZiBqc2NWYWx1ZUdldEpTVmFsdWUoSlND
VmFsdWUqKTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTQ1ZhbHVlKiBqc2NWYWx1ZUNyZWF0ZShKU0ND
b250ZXh0KiwgSlNWYWx1ZVJlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL3JlbW90ZS9nbGliL1JlbW90ZUluc3BlY3RvclNlcnZlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIu
aAppbmRleCBmNmM3YjRlZmJkZS4uZTViZmM0MzlmZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2dsaWIvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVJ
bnNwZWN0b3JTZXJ2ZXIuaApAQCAtNDQsMTAgKzQ0LDEwIEBAIG5hbWVzcGFjZSBJbnNwZWN0b3Ig
ewogCiBjbGFzcyBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZW1vdGVJbnNwZWN0b3JTZXJ2ZXImIHNpbmdsZXRvbigpOwotICAgIH5SZW1vdGVJbnNwZWN0b3JT
ZXJ2ZXIoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBzdGF0aWMgUmVtb3RlSW5zcGVjdG9yU2Vy
dmVyJiBzaW5nbGV0b24oKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB+UmVtb3RlSW5zcGVjdG9y
U2VydmVyKCk7CiAKLSAgICBib29sIHN0YXJ0KGNvbnN0IGNoYXIqIGFkZHJlc3MsIHVuc2lnbmVk
IHBvcnQpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgc3RhcnQoY29uc3QgY2hhciogYWRk
cmVzcywgdW5zaWduZWQgcG9ydCk7CiAgICAgYm9vbCBpc1J1bm5pbmcoKSBjb25zdCB7IHJldHVy
biAhIW1fZGJ1c1NlcnZlcjsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVJbnNwZWN0b3JVdGlscy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVJbnNwZWN0
b3JVdGlscy5oCmluZGV4IDZmOTVhYjVjNTJhLi5lYTQzMzA3YWJkZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVJbnNwZWN0b3JV
dGlscy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2dsaWIv
UmVtb3RlSW5zcGVjdG9yVXRpbHMuaApAQCAtMzUsNyArMzUsNyBAQCB0eXBlZGVmIHN0cnVjdCBf
R0J5dGVzIEdCeXRlczsKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCiBHUmVmUHRyPEdCeXRlcz4g
YmFja2VuZENvbW1hbmRzKCk7Ci1jb25zdCBDU3RyaW5nJiBiYWNrZW5kQ29tbWFuZHNIYXNoKCk7
CitKU19FWFBPUlRfUFJJVkFURSBjb25zdCBDU3RyaW5nJiBiYWNrZW5kQ29tbWFuZHNIYXNoKCk7
CiAKIH0gLy8gbmFtZXNwYWNlIEluc3BlY3RvcgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Db250ZW50VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVu
dFR5cGUuaAppbmRleCBjODJiNWI3MTk3Yy4uMjNlMWYxMmJmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vQ29udGVudFR5cGUuaApAQCAtMzcsMTEgKzM3LDExIEBAIHB1YmxpYzoKICAgICBleHBs
aWNpdCBDb250ZW50VHlwZShjb25zdCBTdHJpbmcmIHR5cGUpOwogICAgIENvbnRlbnRUeXBlKCkg
PSBkZWZhdWx0OwogCi0gICAgc3RhdGljIGNvbnN0IFN0cmluZyYgY29kZWNzUGFyYW1ldGVyKCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IFN0cmluZyYgY29kZWNzUGFyYW1ldGVy
KCk7CiAgICAgc3RhdGljIGNvbnN0IFN0cmluZyYgcHJvZmlsZXNQYXJhbWV0ZXIoKTsKIAotICAg
IFN0cmluZyBwYXJhbWV0ZXIoY29uc3QgU3RyaW5nJiBwYXJhbWV0ZXJOYW1lKSBjb25zdDsKLSAg
ICBTdHJpbmcgY29udGFpbmVyVHlwZSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmlu
ZyBwYXJhbWV0ZXIoY29uc3QgU3RyaW5nJiBwYXJhbWV0ZXJOYW1lKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBTdHJpbmcgY29udGFpbmVyVHlwZSgpIGNvbnN0OwogICAgIFZlY3RvcjxTdHJp
bmc+IGNvZGVjcygpIGNvbnN0OwogICAgIFZlY3RvcjxTdHJpbmc+IHByb2ZpbGVzKCkgY29uc3Q7
CiAgICAgY29uc3QgU3RyaW5nJiByYXcoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDNlMTI2
M2JiYjYzLi42NzlmZGQ5MTJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5oCkBAIC00MDIsMTUgKzQwMiwxNSBAQCBwdWJsaWM6CiAgICAgUHJl
bG9hZCBwcmVsb2FkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRQcmVsb2FkKFByZWxvYWQpOwogCi0g
ICAgdm9pZCBuZXR3b3JrU3RhdGVDaGFuZ2VkKCk7Ci0gICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdl
ZCgpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZCgpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVhZHlTdGF0ZUNoYW5nZWQoKTsKICAgICB2b2lkIHZvbHVt
ZUNoYW5nZWQoZG91YmxlKTsKICAgICB2b2lkIG11dGVDaGFuZ2VkKGJvb2wpOwotICAgIHZvaWQg
dGltZUNoYW5nZWQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHRpbWVDaGFuZ2VkKCk7CiAg
ICAgdm9pZCBzaXplQ2hhbmdlZCgpOwogICAgIHZvaWQgcmF0ZUNoYW5nZWQoKTsKICAgICB2b2lk
IHBsYXliYWNrU3RhdGVDaGFuZ2VkKCk7Ci0gICAgdm9pZCBkdXJhdGlvbkNoYW5nZWQoKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGR1cmF0aW9uQ2hhbmdlZCgpOwogICAgIHZvaWQgZmlyc3RW
aWRlb0ZyYW1lQXZhaWxhYmxlKCk7CiAgICAgdm9pZCBjaGFyYWN0ZXJpc3RpY0NoYW5nZWQoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1U
aW1lUmFuZ2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRp
bWVSYW5nZXMuaAppbmRleCAxODg4Njk1Yzc2ZS4uOWEzYWU4YWQ2M2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5oCkBA
IC00MCwxMiArNDAsMTIgQEAgY2xhc3MgUGxhdGZvcm1UaW1lUmFuZ2VzIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBQbGF0Zm9ybVRpbWVSYW5n
ZXMoKSB7IH0KLSAgICBQbGF0Zm9ybVRpbWVSYW5nZXMoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwg
Y29uc3QgTWVkaWFUaW1lJiBlbmQpOworICAgIFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtVGltZVJh
bmdlcyhjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCk7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCBNZWRpYVRpbWUgc3RhcnQodW5zaWduZWQgaW5kZXgpIGNvbnN0Owog
ICAgIE1lZGlhVGltZSBzdGFydCh1bnNpZ25lZCBpbmRleCwgYm9vbCYgdmFsaWQpIGNvbnN0Owog
ICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlhVGltZSBlbmQodW5zaWduZWQgaW5kZXgpIGNvbnN0Owot
ICAgIE1lZGlhVGltZSBlbmQodW5zaWduZWQgaW5kZXgsIGJvb2wmIHZhbGlkKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBNZWRpYVRpbWUgZW5kKHVuc2lnbmVkIGluZGV4LCBib29sJiB2YWxp
ZCkgY29uc3Q7CiAgICAgTWVkaWFUaW1lIGR1cmF0aW9uKHVuc2lnbmVkIGluZGV4KSBjb25zdDsK
ICAgICBNZWRpYVRpbWUgbWF4aW11bUJ1ZmZlcmVkVGltZSgpIGNvbnN0OwogCkBAIC01OSwxMSAr
NTksMTEgQEAgcHVibGljOgogICAgIAogICAgIGJvb2wgY29udGFpbihjb25zdCBNZWRpYVRpbWUm
KSBjb25zdDsKIAotICAgIHNpemVfdCBmaW5kKGNvbnN0IE1lZGlhVGltZSYpIGNvbnN0OworICAg
IFdFQkNPUkVfRVhQT1JUIHNpemVfdCBmaW5kKGNvbnN0IE1lZGlhVGltZSYpIGNvbnN0OwogICAg
IAogICAgIE1lZGlhVGltZSBuZWFyZXN0KGNvbnN0IE1lZGlhVGltZSYpIGNvbnN0OwogCi0gICAg
TWVkaWFUaW1lIHRvdGFsRHVyYXRpb24oKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRp
YVRpbWUgdG90YWxEdXJhdGlvbigpIGNvbnN0OwogCiAgICAgdm9pZCBkdW1wKFdURjo6UHJpbnRT
dHJlYW0mKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vUmVmUHRyQ2Fpcm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL1JlZlB0ckNhaXJvLmgKaW5kZXggYWExZDE5MjI2YjMuLmVjMDc2NzhkYjI0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9SZWZQdHJD
YWlyby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1JlZlB0
ckNhaXJvLmgKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdURiB7CiB0ZW1wbGF0ZTw+IHZv
aWQgcmVmSWZOb3ROdWxsKGNhaXJvX3QqIHB0cik7CiB0ZW1wbGF0ZTw+IFdFQkNPUkVfRVhQT1JU
IHZvaWQgZGVyZWZJZk5vdE51bGwoY2Fpcm9fdCogcHRyKTsKIAotdGVtcGxhdGU8PiB2b2lkIHJl
ZklmTm90TnVsbChjYWlyb19zdXJmYWNlX3QqIHB0cik7Cit0ZW1wbGF0ZTw+IFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcmVmSWZOb3ROdWxsKGNhaXJvX3N1cmZhY2VfdCogcHRyKTsKIHRlbXBsYXRlPD4g
V0VCQ09SRV9FWFBPUlQgdm9pZCBkZXJlZklmTm90TnVsbChjYWlyb19zdXJmYWNlX3QqIHB0cik7
CiAKIHRlbXBsYXRlPD4gdm9pZCByZWZJZk5vdE51bGwoY2Fpcm9fZm9udF9mYWNlX3QqIHB0cik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9G
b250Q2FjaGVGcmVlVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
cmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKaW5kZXggZDVhYzBlZDY5MWEuLmM2ZTY4NmFj
NDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlw
ZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAj
aW5jbHVkZSAiVVRGMTZVQ2hhcjMySXRlcmF0b3IuaCIKICNpbmNsdWRlIDxjYWlyby1mdC5oPgog
I2luY2x1ZGUgPGNhaXJvLmg+CisjaW5jbHVkZSA8Zm9udGNvbmZpZy9mb250Y29uZmlnLmg+CiAj
aW5jbHVkZSA8Zm9udGNvbmZpZy9mY2ZyZWV0eXBlLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlv
bnMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmgKaW5kZXggOTM5
YmFlNTgwYTcuLmYxNDdiNzU4NWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvQ2VydGlmaWNhdGVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9zb3VwL0NlcnRpZmljYXRlSW5mby5oCkBAIC00MCw3ICs0MCw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZVJl
c3BvbnNlOwogCi1jbGFzcyBDZXJ0aWZpY2F0ZUluZm8gIDogcHVibGljIENlcnRpZmljYXRlSW5m
b0Jhc2UgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQgQ2VydGlmaWNhdGVJbmZvICA6IHB1YmxpYyBD
ZXJ0aWZpY2F0ZUluZm9CYXNlIHsKIHB1YmxpYzoKICAgICBDZXJ0aWZpY2F0ZUluZm8oKTsKICAg
ICBleHBsaWNpdCBDZXJ0aWZpY2F0ZUluZm8oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Nv
dXBOZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1NvdXBOZXR3b3JrU2Vzc2lvbi5oCmluZGV4IGZmYmQ0OWE3NjJhLi4xZGQ0MTNlNWJiNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBOZXR3b3Jr
U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3Vw
TmV0d29ya1Nlc3Npb24uaApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZv
aWQgc2V0SW5pdGlhbEFjY2VwdExhbmd1YWdlcyhjb25zdCBDU3RyaW5nJik7CiAgICAgdm9pZCBz
ZXRBY2NlcHRMYW5ndWFnZXMoY29uc3QgQ1N0cmluZyYpOwogCi0gICAgc3RhdGljIHZvaWQgc2V0
U2hvdWxkSWdub3JlVExTRXJyb3JzKGJvb2wpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2
b2lkIHNldFNob3VsZElnbm9yZVRMU0Vycm9ycyhib29sKTsKICAgICBzdGF0aWMgT3B0aW9uYWw8
UmVzb3VyY2VFcnJvcj4gY2hlY2tUTFNFcnJvcnMoY29uc3QgVVJMJiwgR1Rsc0NlcnRpZmljYXRl
KiwgR1Rsc0NlcnRpZmljYXRlRmxhZ3MpOwogICAgIHN0YXRpYyB2b2lkIGFsbG93U3BlY2lmaWNI
VFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBDZXJ0aWZpY2F0ZUluZm8mLCBjb25zdCBTdHJp
bmcmIGhvc3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvSW5w
dXRNZXRob2RGaWx0ZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9JbnB1dE1ldGhv
ZEZpbHRlci5oCmluZGV4IDJhNGFmNmFjMDNjLi5kMDA0NjI3NzE5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0lucHV0TWV0aG9kRmlsdGVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ3RrL0lucHV0TWV0aG9kRmlsdGVyLmgKQEAgLTIwLDYgKzIwLDcg
QEAKICNpZm5kZWYgSW5wdXRNZXRob2RGaWx0ZXJfaAogI2RlZmluZSBJbnB1dE1ldGhvZEZpbHRl
cl9oCiAKKyNpbmNsdWRlICJXS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvSW50UG9pbnQuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KQEAgLTQ2LDIxICs0NywyMSBAQCBwdWJsaWM6CiAgICAgICAgIEV2
ZW50Tm90RmFrZWQKICAgICB9OwogCi0gICAgSW5wdXRNZXRob2RGaWx0ZXIoKTsKLSAgICB+SW5w
dXRNZXRob2RGaWx0ZXIoKTsKKyAgICBXS19FWFBPUlQgSW5wdXRNZXRob2RGaWx0ZXIoKTsKKyAg
ICBXS19FWFBPUlQgfklucHV0TWV0aG9kRmlsdGVyKCk7CiAKICAgICBHdGtJTUNvbnRleHQqIGNv
bnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KIAogICAgIHZvaWQgc2V0
UGFnZShXZWJQYWdlUHJveHkqIHBhZ2UpIHsgbV9wYWdlID0gcGFnZTsgfQogCi0gICAgdm9pZCBz
ZXRFbmFibGVkKGJvb2wpOworICAgIFdLX0VYUE9SVCB2b2lkIHNldEVuYWJsZWQoYm9vbCk7CiAg
ICAgdm9pZCBzZXRDdXJzb3JSZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKIAogICAgIHVz
aW5nIEZpbHRlcktleUV2ZW50Q29tcGxldGlvbkhhbmRsZXIgPSBGdW5jdGlvbjx2b2lkKGNvbnN0
IFdlYkNvcmU6OkNvbXBvc2l0aW9uUmVzdWx0cyYsIElucHV0TWV0aG9kRmlsdGVyOjpFdmVudEZh
a2VkRm9yQ29tcG9zaXRpb24pPjsKLSAgICB2b2lkIGZpbHRlcktleUV2ZW50KEdka0V2ZW50S2V5
KiwgRmlsdGVyS2V5RXZlbnRDb21wbGV0aW9uSGFuZGxlciYmID0gbnVsbHB0cik7Ci0gICAgdm9p
ZCBub3RpZnlGb2N1c2VkSW4oKTsKLSAgICB2b2lkIG5vdGlmeUZvY3VzZWRPdXQoKTsKLSAgICB2
b2lkIG5vdGlmeU1vdXNlQnV0dG9uUHJlc3MoKTsKKyAgICBXS19FWFBPUlQgdm9pZCBmaWx0ZXJL
ZXlFdmVudChHZGtFdmVudEtleSosIEZpbHRlcktleUV2ZW50Q29tcGxldGlvbkhhbmRsZXImJiA9
IG51bGxwdHIpOworICAgIFdLX0VYUE9SVCB2b2lkIG5vdGlmeUZvY3VzZWRJbigpOworICAgIFdL
X0VYUE9SVCB2b2lkIG5vdGlmeUZvY3VzZWRPdXQoKTsKKyAgICBXS19FWFBPUlQgdm9pZCBub3Rp
ZnlNb3VzZUJ1dHRvblByZXNzKCk7CiAKICNpZiBFTkFCTEUoQVBJX1RFU1RTKQogICAgIHZvaWQg
c2V0VGVzdGluZ01vZGUoYm9vbCBlbmFibGUpIHsgbV90ZXN0aW5nTW9kZSA9IGVuYWJsZTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UgYi9Tb3VyY2UvY21ha2Uv
T3B0aW9uc0dUSy5jbWFrZQppbmRleCBkMjkwYmVmZmRkOS4uYmJiYzZhNzM0OTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRp
b25zR1RLLmNtYWtlCkBAIC0xOTQsNiArMTk0LDggQEAgc2V0KEdES19JTkNMVURFX0RJUlMgJHtH
REszX0lOQ0xVREVfRElSU30pCiBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChIQVZFX0dUS19HRVNU
VVJFUyAke0dUSzNfU1VQUE9SVFNfR0VTVFVSRVN9KQogU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQo
SEFWRV9HVEtfVU5JWF9QUklOVElORyAke0dUS1VuaXhQcmludF9GT1VORH0pCiBTRVRfQU5EX0VY
UE9TRV9UT19CVUlMRChIQVZFX09TX0RBUktfTU9ERV9TVVBQT1JUIDEpCitTRVRfQU5EX0VYUE9T
RV9UT19CVUlMRChVU0VfRVhQT1JUX01BQ1JPUyBPTikKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxE
KEJVU0VfRVhQT1JUX01BQ1JPUyBPTikKIAogc2V0KGdsaWJfY29tcG9uZW50cyBnaW8gZ2lvLXVu
aXggZ29iamVjdCBndGhyZWFkIGdtb2R1bGUpCiBmaW5kX3BhY2thZ2UoR0xJQiAyLjM2IFJFUVVJ
UkVEIENPTVBPTkVOVFMgJHtnbGliX2NvbXBvbmVudHN9KQpkaWZmIC0tZ2l0IGEvU291cmNlL2Nt
YWtlL1dlYktpdENvbXBpbGVyRmxhZ3MuY21ha2UgYi9Tb3VyY2UvY21ha2UvV2ViS2l0Q29tcGls
ZXJGbGFncy5jbWFrZQppbmRleCBmNTZhNDdiYmU0Yi4uMDFmNWQwZTAwZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9jbWFrZS9XZWJLaXRDb21waWxlckZsYWdzLmNtYWtlCisrKyBiL1NvdXJjZS9jbWFr
ZS9XZWJLaXRDb21waWxlckZsYWdzLmNtYWtlCkBAIC0xMDMsNiArMTAzLDcgQEAgaWYgKENPTVBJ
TEVSX0lTX0dDQ19PUl9DTEFORykKICAgICBlbHNlICgpCiAgICAgICAgIFdFQktJVF9BUFBFTkRf
R0xPQkFMX0NPTVBJTEVSX0ZMQUdTKC1mbm8tZXhjZXB0aW9ucykKICAgICAgICAgV0VCS0lUX0FQ
UEVORF9HTE9CQUxfQ1hYX0ZMQUdTKC1mbm8tcnR0aSkKKyAgICAgICAgV0VCS0lUX0FQUEVORF9H
TE9CQUxfQ09NUElMRVJfRkxBR1MoLWZ2aXNpYmlsaXR5PWhpZGRlbikKIAogICAgICAgICBjaGVj
a19jeHhfY29tcGlsZXJfZmxhZygiLXN0ZD1jKysxNyIgQ1hYX0NPTVBJTEVSX1NVUFBPUlRTX0NY
WDE3KQogICAgICAgICBpZiAoQ1hYX0NPTVBJTEVSX1NVUFBPUlRTX0NYWDE3KQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9JbmplY3RlZEJ1bmRsZU1haW4uY3BwIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9JbmplY3RlZEJ1bmRsZU1haW4uY3BwCmluZGV4IGIyNTM3ZjczN2Q1Li42NTkw
ZjZiZGRlNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9JbmplY3RlZEJ1bmRsZU1h
aW4uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvSW5qZWN0ZWRCdW5kbGVNYWluLmNwcApA
QCAtMzIsNiArMzIsOCBAQAogCiAjaWYgZGVmaW5lZChXSU4zMikgfHwgZGVmaW5lZChfV0lOMzIp
CiBleHRlcm4gIkMiIF9fZGVjbHNwZWMoZGxsZXhwb3J0KSAKKyNlbGlmIGRlZmluZWQodW5peCkg
fHwgZGVmaW5lZChfX3VuaXgpIC8vIFRPRE8gTm90IHN1cmUgaG93IHRoaXMgd2FzIGFsc28gd29y
a2luZyBiZWZvcmUKK2V4dGVybiAiQyIgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVs
dCIpKSkKICNlbHNlCiBleHRlcm4gIkMiCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVNYWluLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVNYWluLmNwcApp
bmRleCBkZmEzZDMxOGY1Ny4uMmY0YzNmYTI1ZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVNYWluLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlTWFpbi5jcHAK
QEAgLTMwLDYgKzMwLDggQEAKIAogI2lmIGRlZmluZWQoV0lOMzIpCiBleHRlcm4gIkMiIF9fZGVj
bHNwZWMoZGxsZXhwb3J0KQorI2VsaWYgZGVmaW5lZCh1bml4KSB8fCBkZWZpbmVkKF9fdW5peCkg
Ly8gVE9ETyBOb3Qgc3VyZSBob3cgdGhlc2Ugd29ya2VkIGJlZm9yZQorZXh0ZXJuICJDIiBfX2F0
dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQogI2Vsc2UKIGV4dGVybiAiQyIKICNl
bmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371357</attachid>
            <date>2019-06-04 17:34:56 -0700</date>
            <delta_ts>2019-06-04 17:34:56 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>hidden-visibility-potential-fix.diff</filename>
            <type>text/plain</type>
            <size>20030</size>
            <attacher name="Christopher Reid">chris.reid</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NDb250ZXh0UHJp
dmF0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9nbGliL0pTQ0NvbnRleHRQcml2YXRl
LmgKaW5kZXggZmM3MjcwZWQ1MmUuLjczOWZjNDk3NmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ29udGV4dFByaXZhdGUuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL2dsaWIvSlNDQ29udGV4dFByaXZhdGUuaApAQCAtMjUsMTUgKzI1LDE0
IEBACiAjaW5jbHVkZSAiSlNDb250ZXh0UmVmLmgiCiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0
ci5oPgogCi1HUmVmUHRyPEpTQ0NvbnRleHQ+IGpzY0NvbnRleHRHZXRPckNyZWF0ZShKU0dsb2Jh
bENvbnRleHRSZWYpOwotSlNHbG9iYWxDb250ZXh0UmVmIGpzY0NvbnRleHRHZXRKU0NvbnRleHQo
SlNDQ29udGV4dCopOwotR1JlZlB0cjxKU0NWYWx1ZT4ganNjQ29udGV4dEdldE9yQ3JlYXRlVmFs
dWUoSlNDQ29udGV4dCosIEpTVmFsdWVSZWYpOwotdm9pZCBqc2NDb250ZXh0VmFsdWVEZXN0cm95
ZWQoSlNDQ29udGV4dCosIEpTVmFsdWVSZWYpOwotSlNDOjpKU09iamVjdCoganNjQ29udGV4dEdl
dEpTV3JhcHBlcihKU0NDb250ZXh0KiwgZ3BvaW50ZXIpOwotSlNDOjpKU09iamVjdCoganNjQ29u
dGV4dEdldE9yQ3JlYXRlSlNXcmFwcGVyKEpTQ0NvbnRleHQqLCBKU0NsYXNzUmVmLCBKU1ZhbHVl
UmVmIHByb3RvdHlwZSA9IG51bGxwdHIsIGdwb2ludGVyID0gbnVsbHB0ciwgR0Rlc3Ryb3lOb3Rp
ZnkgPSBudWxscHRyKTsKLUpTR2xvYmFsQ29udGV4dFJlZiBqc2NDb250ZXh0Q3JlYXRlQ29udGV4
dFdpdGhKU1dyYXBwZXIoSlNDQ29udGV4dCosIEpTQ2xhc3NSZWYsIEpTVmFsdWVSZWYgcHJvdG90
eXBlID0gbnVsbHB0ciwgZ3BvaW50ZXIgPSBudWxscHRyLCBHRGVzdHJveU5vdGlmeSA9IG51bGxw
dHIpOwotZ3BvaW50ZXIganNjQ29udGV4dFdyYXBwZWRPYmplY3QoSlNDQ29udGV4dCosIEpTT2Jq
ZWN0UmVmKTsKLUpTQ0NsYXNzKiBqc2NDb250ZXh0R2V0UmVnaXN0ZXJlZENsYXNzKEpTQ0NvbnRl
eHQqLCBKU0NsYXNzUmVmKTsKK0pTX0VYUE9SVF9QUklWQVRFIEdSZWZQdHI8SlNDQ29udGV4dD4g
anNjQ29udGV4dEdldE9yQ3JlYXRlKEpTR2xvYmFsQ29udGV4dFJlZik7CitKU19FWFBPUlRfUFJJ
VkFURSBKU0dsb2JhbENvbnRleHRSZWYganNjQ29udGV4dEdldEpTQ29udGV4dChKU0NDb250ZXh0
Kik7CitKU19FWFBPUlRfUFJJVkFURSBHUmVmUHRyPEpTQ1ZhbHVlPiBqc2NDb250ZXh0R2V0T3JD
cmVhdGVWYWx1ZShKU0NDb250ZXh0KiwgSlNWYWx1ZVJlZik7CitKU19FWFBPUlRfUFJJVkFURSB2
b2lkIGpzY0NvbnRleHRWYWx1ZURlc3Ryb3llZChKU0NDb250ZXh0KiwgSlNWYWx1ZVJlZik7CitK
U19FWFBPUlRfUFJJVkFURSBKU0M6OkpTT2JqZWN0KiBqc2NDb250ZXh0R2V0SlNXcmFwcGVyKEpT
Q0NvbnRleHQqLCBncG9pbnRlcik7IEpTQzo6SlNPYmplY3QqIGpzY0NvbnRleHRHZXRPckNyZWF0
ZUpTV3JhcHBlcihKU0NDb250ZXh0KiwgSlNDbGFzc1JlZiwgSlNWYWx1ZVJlZiBwcm90b3R5cGUg
PSBudWxscHRyLCBncG9pbnRlciA9IG51bGxwdHIsIEdEZXN0cm95Tm90aWZ5ID0gbnVsbHB0cik7
CitKU19FWFBPUlRfUFJJVkFURSBKU0dsb2JhbENvbnRleHRSZWYganNjQ29udGV4dENyZWF0ZUNv
bnRleHRXaXRoSlNXcmFwcGVyKEpTQ0NvbnRleHQqLCBKU0NsYXNzUmVmLCBKU1ZhbHVlUmVmIHBy
b3RvdHlwZSA9IG51bGxwdHIsIGdwb2ludGVyID0gbnVsbHB0ciwgR0Rlc3Ryb3lOb3RpZnkgPSBu
dWxscHRyKTsKK0pTX0VYUE9SVF9QUklWQVRFIGdwb2ludGVyIGpzY0NvbnRleHRXcmFwcGVkT2Jq
ZWN0KEpTQ0NvbnRleHQqLCBKU09iamVjdFJlZik7CitKU19FWFBPUlRfUFJJVkFURSBKU0NDbGFz
cyoganNjQ29udGV4dEdldFJlZ2lzdGVyZWRDbGFzcyhKU0NDb250ZXh0KiwgSlNDbGFzc1JlZik7
CiAKIHN0cnVjdCBDYWxsYmFja0RhdGEgewogICAgIEdSZWZQdHI8SlNDQ29udGV4dD4gY29udGV4
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWYWx1ZVBy
aXZhdGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWYWx1ZVByaXZhdGUu
aAppbmRleCA2MjE0NDM1M2Y1NS4uOTMxN2QwMjhhZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvZ2xpYi9KU0NWYWx1ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL2dsaWIvSlNDVmFsdWVQcml2YXRlLmgKQEAgLTIxLDUgKzIxLDUgQEAKIAog
I2luY2x1ZGUgIkpTQ1ZhbHVlLmgiCiAKLUpTVmFsdWVSZWYganNjVmFsdWVHZXRKU1ZhbHVlKEpT
Q1ZhbHVlKik7Ci1KU0NWYWx1ZSoganNjVmFsdWVDcmVhdGUoSlNDQ29udGV4dCosIEpTVmFsdWVS
ZWYpOworSlNfRVhQT1JUX1BSSVZBVEUgSlNWYWx1ZVJlZiBqc2NWYWx1ZUdldEpTVmFsdWUoSlND
VmFsdWUqKTsKK0pTX0VYUE9SVF9QUklWQVRFIEpTQ1ZhbHVlKiBqc2NWYWx1ZUNyZWF0ZShKU0ND
b250ZXh0KiwgSlNWYWx1ZVJlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5k
ZXggOTQxNWVhMDcxNTQuLjI4ZWZiMzhlYThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC0xMTUsNyArMTE1LDE0IEBAIHNldChKYXZhU2NyaXB0Q29yZV9PQkpFQ1RfTFVU
X1NPVVJDRVMKICkKIAogc2V0KEphdmFTY3JpcHRDb3JlX0xJQlJBUklFUwotICAgIFdlYktpdDo6
V1RGCisgICAgSUNVOjp1YworICAgIElDVTo6ZGF0YQorICAgIElDVTo6aTE4bgorICAgIC1scHRo
cmVhZAorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgJHtDTUFLRV9ETF9MSUJTfQorICAgIC1X
bCwtLXdob2xlLWFyY2hpdmUgV1RGIGJtYWxsb2MKKyAgICAtV2wsLS1uby13aG9sZS1hcmNoaXZl
CiApCiAKIGlmIChVU0VfQ0FQU1RPTkUpCkBAIC0xMzAzLDYgKzEzMTAsMTIgQEAgV0VCS0lUX0NP
TVBVVEVfU09VUkNFUyhKYXZhU2NyaXB0Q29yZSkKIFdFQktJVF9XUkFQX1NPVVJDRUxJU1QoJHtK
YXZhU2NyaXB0Q29yZV9TT1VSQ0VTfSkKIFdFQktJVF9GUkFNRVdPUksoSmF2YVNjcmlwdENvcmUp
CiAKK2dldF90YXJnZXRfcHJvcGVydHkobGlua19wcm9wcyBKYXZhU2NyaXB0Q29yZSBJTlRFUkZB
Q0VfTElOS19MSUJSQVJJRVMpCittZXNzYWdlKCIke2xpbmtfcHJvcHN9IikKK2xpc3QoUkVNT1ZF
X0lURU0gbGlua19wcm9wcyBXVEYgYm1hbGxvYyAtV2wsLS13aG9sZS1hcmNoaXZlIC1XbCwtLW5v
LXdob2xlLWFyY2hpdmUpCittZXNzYWdlKCIke2xpbmtfcHJvcHN9IikKK3NldF90YXJnZXRfcHJv
cGVydGllcyhKYXZhU2NyaXB0Q29yZSBQUk9QRVJUSUVTIElOVEVSRkFDRV9MSU5LX0xJQlJBUklF
UyAiJHtsaW5rX3Byb3BzfSIpCisKIGlmIChOT1QgIiR7UE9SVH0iIFNUUkVRVUFMICJNYWMiKQog
ICAgIGlmICgke0phdmFTY3JpcHRDb3JlX0xJQlJBUllfVFlQRX0gU1RSRVFVQUwgIlNIQVJFRCIp
CiAgICAgICAgIFdFQktJVF9QT1BVTEFURV9MSUJSQVJZX1ZFUlNJT04oSkFWQVNDUklQVENPUkUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3JlbW90ZS9nbGli
L1JlbW90ZUluc3BlY3RvclNlcnZlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9yZW1vdGUvZ2xpYi9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuaAppbmRleCBmNmM3YjRlZmJkZS4u
ZTViZmM0MzlmZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
cmVtb3RlL2dsaWIvUmVtb3RlSW5zcGVjdG9yU2VydmVyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIuaApAQCAt
NDQsMTAgKzQ0LDEwIEBAIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCiBjbGFzcyBSZW1vdGVJbnNw
ZWN0b3JTZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBSZW1vdGVJbnNwZWN0b3JTZXJ2ZXIm
IHNpbmdsZXRvbigpOwotICAgIH5SZW1vdGVJbnNwZWN0b3JTZXJ2ZXIoKTsKKyAgICBKU19FWFBP
UlRfUFJJVkFURSBzdGF0aWMgUmVtb3RlSW5zcGVjdG9yU2VydmVyJiBzaW5nbGV0b24oKTsKKyAg
ICBKU19FWFBPUlRfUFJJVkFURSB+UmVtb3RlSW5zcGVjdG9yU2VydmVyKCk7CiAKLSAgICBib29s
IHN0YXJ0KGNvbnN0IGNoYXIqIGFkZHJlc3MsIHVuc2lnbmVkIHBvcnQpOworICAgIEpTX0VYUE9S
VF9QUklWQVRFIGJvb2wgc3RhcnQoY29uc3QgY2hhciogYWRkcmVzcywgdW5zaWduZWQgcG9ydCk7
CiAgICAgYm9vbCBpc1J1bm5pbmcoKSBjb25zdCB7IHJldHVybiAhIW1fZGJ1c1NlcnZlcjsgfQog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9y
ZW1vdGUvZ2xpYi9SZW1vdGVJbnNwZWN0b3JVdGlscy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVJbnNwZWN0b3JVdGlscy5oCmluZGV4IDZmOTVh
YjVjNTJhLi5lYTQzMzA3YWJkZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9yZW1vdGUvZ2xpYi9SZW1vdGVJbnNwZWN0b3JVdGlscy5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcmVtb3RlL2dsaWIvUmVtb3RlSW5zcGVjdG9yVXRpbHMu
aApAQCAtMzUsNyArMzUsNyBAQCB0eXBlZGVmIHN0cnVjdCBfR0J5dGVzIEdCeXRlczsKIG5hbWVz
cGFjZSBJbnNwZWN0b3IgewogCiBHUmVmUHRyPEdCeXRlcz4gYmFja2VuZENvbW1hbmRzKCk7Ci1j
b25zdCBDU3RyaW5nJiBiYWNrZW5kQ29tbWFuZHNIYXNoKCk7CitKU19FWFBPUlRfUFJJVkFURSBj
b25zdCBDU3RyaW5nJiBiYWNrZW5kQ29tbWFuZHNIYXNoKCk7CiAKIH0gLy8gbmFtZXNwYWNlIElu
c3BlY3RvcgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oIGIvU291cmNl
L1dURi93dGYvRGF0ZU1hdGguaAppbmRleCA4YmE4OWU3OGRkMi4uNWRhZGNmYWJmZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKKysrIGIvU291cmNlL1dURi93dGYvRGF0
ZU1hdGguaApAQCAtOTIsNyArOTIsNyBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgZG91YmxlIHBhcnNl
RGF0ZUZyb21OdWxsVGVybWluYXRlZENoYXJhY3RlcnMoY29uc3QgY2hhciogZGF0ZQogV1RGX0VY
UE9SVF9QUklWQVRFIGRvdWJsZSBwYXJzZURhdGVGcm9tTnVsbFRlcm1pbmF0ZWRDaGFyYWN0ZXJz
KGNvbnN0IGNoYXIqIGRhdGVTdHJpbmcsIGJvb2wmIGhhdmVUWiwgaW50JiBvZmZzZXQpOwogV1RG
X0VYUE9SVF9QUklWQVRFIGRvdWJsZSB0aW1lQ2xpcChkb3VibGUpOwogLy8gZGF5T2ZXZWVrOiBb
MCwgNl0gMCBiZWluZyBNb25kYXksIGRheTogWzEsIDMxXSwgbW9udGg6IFswLCAxMV0sIHllYXI6
IGV4OiAyMDExLCBob3VyczogWzAsIDIzXSwgbWludXRlczogWzAsIDU5XSwgc2Vjb25kczogWzAs
IDU5XSwgdXRjT2Zmc2V0OiBbLTcyMCw3MjBdLiAKLVN0cmluZyBtYWtlUkZDMjgyMkRhdGVTdHJp
bmcodW5zaWduZWQgZGF5T2ZXZWVrLCB1bnNpZ25lZCBkYXksIHVuc2lnbmVkIG1vbnRoLCB1bnNp
Z25lZCB5ZWFyLCB1bnNpZ25lZCBob3VycywgdW5zaWduZWQgbWludXRlcywgdW5zaWduZWQgc2Vj
b25kcywgaW50IHV0Y09mZnNldCk7CitXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIG1ha2VSRkMy
ODIyRGF0ZVN0cmluZyh1bnNpZ25lZCBkYXlPZldlZWssIHVuc2lnbmVkIGRheSwgdW5zaWduZWQg
bW9udGgsIHVuc2lnbmVkIHllYXIsIHVuc2lnbmVkIGhvdXJzLCB1bnNpZ25lZCBtaW51dGVzLCB1
bnNpZ25lZCBzZWNvbmRzLCBpbnQgdXRjT2Zmc2V0KTsKIAogaW5saW5lIGRvdWJsZSBqc0N1cnJl
bnRUaW1lKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaCBiL1Nv
dXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaAppbmRleCAzMmZlNzZkZjQwMC4uMjRiMzRhNzE3MmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9GaWxlU3lzdGVtLmgKQEAgLTEyOCw3ICsxMjgsNyBAQCBib29sIGV4Y2x1ZGVGcm9tQmFj
a3VwKGNvbnN0IFN0cmluZyYpOyAvLyBSZXR1cm5zIHRydWUgaWYgc3VjY2Vzc2Z1bC4KIFdURl9F
WFBPUlRfUFJJVkFURSBWZWN0b3I8U3RyaW5nPiBsaXN0RGlyZWN0b3J5KGNvbnN0IFN0cmluZyYg
cGF0aCwgY29uc3QgU3RyaW5nJiBmaWx0ZXIgPSBTdHJpbmcoKSk7CiAKIFdURl9FWFBPUlRfUFJJ
VkFURSBDU3RyaW5nIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmKTsKLVN0
cmluZyBzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGNvbnN0IGNoYXIqKTsKK1dU
Rl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgc3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlv
bihjb25zdCBjaGFyKik7CiAKIGlubGluZSBib29sIGlzSGFuZGxlVmFsaWQoY29uc3QgUGxhdGZv
cm1GaWxlSGFuZGxlJiBoYW5kbGUpIHsgcmV0dXJuIGhhbmRsZSAhPSBpbnZhbGlkUGxhdGZvcm1G
aWxlSGFuZGxlOyB9CiAKQEAgLTE3MSw3ICsxNzEsNyBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgUmV0
YWluUHRyPENGVVJMUmVmPiBwYXRoQXNVUkwoY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKIAogI2lm
IFVTRShHTElCKQotU3RyaW5nIGZpbGVuYW1lRm9yRGlzcGxheShjb25zdCBTdHJpbmcmKTsKK1dU
Rl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0cmluZyYp
OwogI2VuZGlmCiAKICNpZiBPUyhXSU5ET1dTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
UnVuTG9vcC5oIGIvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCmluZGV4IGQ2MTVlMDc0MGVjLi5i
ODBkNzNjODM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1J1bkxvb3AuaApAQCAtOTgsOCArOTgsOCBAQCBwdWJsaWM6CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBmaXJlZCgpID0gMDsKIAogI2lmIFVTRShHTElCX0VWRU5UX0xPT1ApCi0g
ICAgICAgIHZvaWQgc2V0TmFtZShjb25zdCBjaGFyKik7Ci0gICAgICAgIHZvaWQgc2V0UHJpb3Jp
dHkoaW50KTsKKyAgICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0TmFtZShjb25zdCBj
aGFyKik7CisgICAgICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHNldFByaW9yaXR5KGludCk7
CiAjZW5kaWYKIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9nbGli
L0dMaWJVdGlsaXRpZXMuaCBiL1NvdXJjZS9XVEYvd3RmL2dsaWIvR0xpYlV0aWxpdGllcy5oCmlu
ZGV4IDI5OTM3ODljMmJhLi41YjQ4OWI0ZTU2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
Z2xpYi9HTGliVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dURi93dGYvZ2xpYi9HTGliVXRpbGl0
aWVzLmgKQEAgLTIzLDggKzIzLDggQEAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAotQ1N0cmluZyBnZXRDdXJyZW50RXhlY3V0YWJs
ZVBhdGgoKTsKLUNTdHJpbmcgZ2V0Q3VycmVudEV4ZWN1dGFibGVOYW1lKCk7CitXVEZfRVhQT1JU
IENTdHJpbmcgZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRoKCk7CitXVEZfRVhQT1JUIENTdHJpbmcg
Z2V0Q3VycmVudEV4ZWN1dGFibGVOYW1lKCk7CiAKIC8vIFRoZXNlIG1pZ2h0IGJlIGFkZGVkIHRv
IGdsaWIgaW4gdGhlIGZ1dHVyZSwgYnV0IGluIHRoZSBtZWFudGltZSB0aGV5J3JlIGRlZmluZWQg
aGVyZS4KICNpZm5kZWYgR1VMT05HX1RPX1BPSU5URVIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL2xpbnV4L0N1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmggYi9Tb3VyY2UvV1RGL3d0Zi9s
aW51eC9DdXJyZW50UHJvY2Vzc01lbW9yeVN0YXR1cy5oCmluZGV4IDI3YjViM2UyMDJhLi4yZWYx
MzNjODBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvbGludXgvQ3VycmVudFByb2Nlc3NN
ZW1vcnlTdGF0dXMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9saW51eC9DdXJyZW50UHJvY2Vzc01l
bW9yeVN0YXR1cy5oCkBAIC0zNyw3ICszNyw3IEBAIHN0cnVjdCBQcm9jZXNzTWVtb3J5U3RhdHVz
IHsKICAgICBzaXplX3QgZHQgeyAwIH07CiB9OwogCi12b2lkIGN1cnJlbnRQcm9jZXNzTWVtb3J5
U3RhdHVzKFByb2Nlc3NNZW1vcnlTdGF0dXMmKTsKK1dURl9FWFBPUlQgdm9pZCBjdXJyZW50UHJv
Y2Vzc01lbW9yeVN0YXR1cyhQcm9jZXNzTWVtb3J5U3RhdHVzJik7CiAKIH0gLy8gbmFtZXNwYWNl
IFdURgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVudFR5cGUuaAppbmRleCBjODJiNWI3MTk3
Yy4uMjNlMWYxMmJmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRl
bnRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVudFR5cGUuaApAQCAt
MzcsMTEgKzM3LDExIEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBDb250ZW50VHlwZShjb25zdCBT
dHJpbmcmIHR5cGUpOwogICAgIENvbnRlbnRUeXBlKCkgPSBkZWZhdWx0OwogCi0gICAgc3RhdGlj
IGNvbnN0IFN0cmluZyYgY29kZWNzUGFyYW1ldGVyKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIGNvbnN0IFN0cmluZyYgY29kZWNzUGFyYW1ldGVyKCk7CiAgICAgc3RhdGljIGNvbnN0IFN0
cmluZyYgcHJvZmlsZXNQYXJhbWV0ZXIoKTsKIAotICAgIFN0cmluZyBwYXJhbWV0ZXIoY29uc3Qg
U3RyaW5nJiBwYXJhbWV0ZXJOYW1lKSBjb25zdDsKLSAgICBTdHJpbmcgY29udGFpbmVyVHlwZSgp
IGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBwYXJhbWV0ZXIoY29uc3QgU3RyaW5n
JiBwYXJhbWV0ZXJOYW1lKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgY29udGFp
bmVyVHlwZSgpIGNvbnN0OwogICAgIFZlY3RvcjxTdHJpbmc+IGNvZGVjcygpIGNvbnN0OwogICAg
IFZlY3RvcjxTdHJpbmc+IHByb2ZpbGVzKCkgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5nJiByYXco
KSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDNlMTI2M2JiYjYzLi42NzlmZGQ5MTJkOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC00
MDIsMTUgKzQwMiwxNSBAQCBwdWJsaWM6CiAgICAgUHJlbG9hZCBwcmVsb2FkKCkgY29uc3Q7CiAg
ICAgdm9pZCBzZXRQcmVsb2FkKFByZWxvYWQpOwogCi0gICAgdm9pZCBuZXR3b3JrU3RhdGVDaGFu
Z2VkKCk7Ci0gICAgdm9pZCByZWFkeVN0YXRlQ2hhbmdlZCgpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgbmV0d29ya1N0YXRlQ2hhbmdlZCgpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVh
ZHlTdGF0ZUNoYW5nZWQoKTsKICAgICB2b2lkIHZvbHVtZUNoYW5nZWQoZG91YmxlKTsKICAgICB2
b2lkIG11dGVDaGFuZ2VkKGJvb2wpOwotICAgIHZvaWQgdGltZUNoYW5nZWQoKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHRpbWVDaGFuZ2VkKCk7CiAgICAgdm9pZCBzaXplQ2hhbmdlZCgpOwog
ICAgIHZvaWQgcmF0ZUNoYW5nZWQoKTsKICAgICB2b2lkIHBsYXliYWNrU3RhdGVDaGFuZ2VkKCk7
Ci0gICAgdm9pZCBkdXJhdGlvbkNoYW5nZWQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGR1
cmF0aW9uQ2hhbmdlZCgpOwogICAgIHZvaWQgZmlyc3RWaWRlb0ZyYW1lQXZhaWxhYmxlKCk7CiAg
ICAgdm9pZCBjaGFyYWN0ZXJpc3RpY0NoYW5nZWQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1UaW1lUmFuZ2VzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybVRpbWVSYW5nZXMuaAppbmRleCAxODg4Njk1
Yzc2ZS4uOWEzYWU4YWQ2M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1BsYXRmb3JtVGltZVJhbmdlcy5oCkBAIC00MCwxMiArNDAsMTIgQEAgY2xhc3Mg
UGxhdGZvcm1UaW1lUmFuZ2VzIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKICAgICBleHBsaWNpdCBQbGF0Zm9ybVRpbWVSYW5nZXMoKSB7IH0KLSAgICBQbGF0Zm9ybVRp
bWVSYW5nZXMoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtVGltZVJhbmdlcyhjb25zdCBNZWRpYVRpbWUmIHN0
YXJ0LCBjb25zdCBNZWRpYVRpbWUmIGVuZCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVRp
bWUgc3RhcnQodW5zaWduZWQgaW5kZXgpIGNvbnN0OwogICAgIE1lZGlhVGltZSBzdGFydCh1bnNp
Z25lZCBpbmRleCwgYm9vbCYgdmFsaWQpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIE1lZGlh
VGltZSBlbmQodW5zaWduZWQgaW5kZXgpIGNvbnN0OwotICAgIE1lZGlhVGltZSBlbmQodW5zaWdu
ZWQgaW5kZXgsIGJvb2wmIHZhbGlkKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVRp
bWUgZW5kKHVuc2lnbmVkIGluZGV4LCBib29sJiB2YWxpZCkgY29uc3Q7CiAgICAgTWVkaWFUaW1l
IGR1cmF0aW9uKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKICAgICBNZWRpYVRpbWUgbWF4aW11bUJ1
ZmZlcmVkVGltZSgpIGNvbnN0OwogCkBAIC01OSwxMSArNTksMTEgQEAgcHVibGljOgogICAgIAog
ICAgIGJvb2wgY29udGFpbihjb25zdCBNZWRpYVRpbWUmKSBjb25zdDsKIAotICAgIHNpemVfdCBm
aW5kKGNvbnN0IE1lZGlhVGltZSYpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHNpemVfdCBm
aW5kKGNvbnN0IE1lZGlhVGltZSYpIGNvbnN0OwogICAgIAogICAgIE1lZGlhVGltZSBuZWFyZXN0
KGNvbnN0IE1lZGlhVGltZSYpIGNvbnN0OwogCi0gICAgTWVkaWFUaW1lIHRvdGFsRHVyYXRpb24o
KSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBNZWRpYVRpbWUgdG90YWxEdXJhdGlvbigpIGNv
bnN0OwogCiAgICAgdm9pZCBkdW1wKFdURjo6UHJpbnRTdHJlYW0mKSBjb25zdDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUmVmUHRyQ2Fpcm8u
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1JlZlB0ckNhaXJvLmgK
aW5kZXggYWExZDE5MjI2YjMuLmVjMDc2NzhkYjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9SZWZQdHJDYWlyby5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1JlZlB0ckNhaXJvLmgKQEAgLTM2LDcgKzM2LDcg
QEAgbmFtZXNwYWNlIFdURiB7CiB0ZW1wbGF0ZTw+IHZvaWQgcmVmSWZOb3ROdWxsKGNhaXJvX3Qq
IHB0cik7CiB0ZW1wbGF0ZTw+IFdFQkNPUkVfRVhQT1JUIHZvaWQgZGVyZWZJZk5vdE51bGwoY2Fp
cm9fdCogcHRyKTsKIAotdGVtcGxhdGU8PiB2b2lkIHJlZklmTm90TnVsbChjYWlyb19zdXJmYWNl
X3QqIHB0cik7Cit0ZW1wbGF0ZTw+IFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVmSWZOb3ROdWxsKGNh
aXJvX3N1cmZhY2VfdCogcHRyKTsKIHRlbXBsYXRlPD4gV0VCQ09SRV9FWFBPUlQgdm9pZCBkZXJl
ZklmTm90TnVsbChjYWlyb19zdXJmYWNlX3QqIHB0cik7CiAKIHRlbXBsYXRlPD4gdm9pZCByZWZJ
Zk5vdE51bGwoY2Fpcm9fZm9udF9mYWNlX3QqIHB0cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlw
ZS5jcHAKaW5kZXggZGIwNDg1ZGJjMzMuLjAxOGJjMzA2MDllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hl
RnJlZVR5cGUuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiVVRGMTZVQ2hhcjMySXRl
cmF0b3IuaCIKICNpbmNsdWRlIDxjYWlyby1mdC5oPgogI2luY2x1ZGUgPGNhaXJvLmg+CisjaW5j
bHVkZSA8Zm9udGNvbmZpZy9mb250Y29uZmlnLmg+CiAjaW5jbHVkZSA8Zm9udGNvbmZpZy9mY2Zy
ZWV0eXBlLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9DU3RyaW5nLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvQ2VydGlmaWNhdGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAvQ2VydGlmaWNhdGVJbmZvLmgKaW5kZXggOTM5YmFlNTgwYTcuLmYxNDdiNzU4NWE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ2VydGlmaWNh
dGVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0NlcnRp
ZmljYXRlSW5mby5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogCi1jbGFzcyBDZXJ0aWZp
Y2F0ZUluZm8gIDogcHVibGljIENlcnRpZmljYXRlSW5mb0Jhc2UgeworY2xhc3MgV0VCQ09SRV9F
WFBPUlQgQ2VydGlmaWNhdGVJbmZvICA6IHB1YmxpYyBDZXJ0aWZpY2F0ZUluZm9CYXNlIHsKIHB1
YmxpYzoKICAgICBDZXJ0aWZpY2F0ZUluZm8oKTsKICAgICBleHBsaWNpdCBDZXJ0aWZpY2F0ZUlu
Zm8oY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5oCmlu
ZGV4IGZmYmQ0OWE3NjJhLi4xZGQ0MTNlNWJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1NvdXBOZXR3b3JrU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29ya1Nlc3Npb24uaApAQCAtNjUs
NyArNjUsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc2V0SW5pdGlhbEFjY2VwdExhbmd1
YWdlcyhjb25zdCBDU3RyaW5nJik7CiAgICAgdm9pZCBzZXRBY2NlcHRMYW5ndWFnZXMoY29uc3Qg
Q1N0cmluZyYpOwogCi0gICAgc3RhdGljIHZvaWQgc2V0U2hvdWxkSWdub3JlVExTRXJyb3JzKGJv
b2wpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldFNob3VsZElnbm9yZVRMU0Vy
cm9ycyhib29sKTsKICAgICBzdGF0aWMgT3B0aW9uYWw8UmVzb3VyY2VFcnJvcj4gY2hlY2tUTFNF
cnJvcnMoY29uc3QgVVJMJiwgR1Rsc0NlcnRpZmljYXRlKiwgR1Rsc0NlcnRpZmljYXRlRmxhZ3Mp
OwogICAgIHN0YXRpYyB2b2lkIGFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChj
b25zdCBDZXJ0aWZpY2F0ZUluZm8mLCBjb25zdCBTdHJpbmcmIGhvc3QpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViRHJpdmVyL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkRyaXZlci9DTWFr
ZUxpc3RzLnR4dAppbmRleCBlZWFhNGYwOWQwYS4uMmM5M2ZhMDU1YjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJEcml2ZXIvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkRyaXZlci9DTWFr
ZUxpc3RzLnR4dApAQCAtMTgsNyArMTgsOCBAQCBzZXQoV2ViRHJpdmVyX1NPVVJDRVMKICkKIAog
c2V0KFdlYkRyaXZlcl9MSUJSQVJJRVMKLSAgICBXZWJLaXQ6OldURgorICAgIFdURgorICAgIGJt
YWxsb2MKICkKIAogc2V0KFdlYkRyaXZlcl9TQ1JJUFRTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtR1RLLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQpp
bmRleCBiMThkYjQwNDg5NS4uODA3ZTEwMTc4ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm1HVEsuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5jbWFrZQpA
QCAtNDE3LDYgKzQxNyw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdF9JTkNMVURFX0RJUkVDVE9SSUVT
CiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MiCiAgICAgIiR7V0VCS0lUX0RJUn0vV2ViUHJvY2Vzcy9XZWJQYWdlL2F0ayIKICAgICAiJHtX
RUJLSVRfRElSfS9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrIgorICAgICIke0NNQUtFX0JJTkFSWV9E
SVJ9IiAjIGZvciBjbWFrZWNvbmZpZwogKQogCiBsaXN0KEFQUEVORCBXZWJLaXRfU1lTVEVNX0lO
Q0xVREVfRElSRUNUT1JJRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0
ay9JbnB1dE1ldGhvZEZpbHRlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL0lucHV0
TWV0aG9kRmlsdGVyLmgKaW5kZXggMmE0YWY2YWMwM2MuLmQwMDQ2Mjc3MTliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvSW5wdXRNZXRob2RGaWx0ZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvSW5wdXRNZXRob2RGaWx0ZXIuaApAQCAtMjAsNiAr
MjAsNyBAQAogI2lmbmRlZiBJbnB1dE1ldGhvZEZpbHRlcl9oCiAjZGVmaW5lIElucHV0TWV0aG9k
RmlsdGVyX2gKIAorI2luY2x1ZGUgIldLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9JbnRQb2ludC5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgpAQCAtNDYsMjEgKzQ3LDIxIEBAIHB1YmxpYzoKICAgICAg
ICAgRXZlbnROb3RGYWtlZAogICAgIH07CiAKLSAgICBJbnB1dE1ldGhvZEZpbHRlcigpOwotICAg
IH5JbnB1dE1ldGhvZEZpbHRlcigpOworICAgIFdLX0VYUE9SVCBJbnB1dE1ldGhvZEZpbHRlcigp
OworICAgIFdLX0VYUE9SVCB+SW5wdXRNZXRob2RGaWx0ZXIoKTsKIAogICAgIEd0a0lNQ29udGV4
dCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQogCiAgICAgdm9p
ZCBzZXRQYWdlKFdlYlBhZ2VQcm94eSogcGFnZSkgeyBtX3BhZ2UgPSBwYWdlOyB9CiAKLSAgICB2
b2lkIHNldEVuYWJsZWQoYm9vbCk7CisgICAgV0tfRVhQT1JUIHZvaWQgc2V0RW5hYmxlZChib29s
KTsKICAgICB2b2lkIHNldEN1cnNvclJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwogCiAg
ICAgdXNpbmcgRmlsdGVyS2V5RXZlbnRDb21wbGV0aW9uSGFuZGxlciA9IEZ1bmN0aW9uPHZvaWQo
Y29uc3QgV2ViQ29yZTo6Q29tcG9zaXRpb25SZXN1bHRzJiwgSW5wdXRNZXRob2RGaWx0ZXI6OkV2
ZW50RmFrZWRGb3JDb21wb3NpdGlvbik+OwotICAgIHZvaWQgZmlsdGVyS2V5RXZlbnQoR2RrRXZl
bnRLZXkqLCBGaWx0ZXJLZXlFdmVudENvbXBsZXRpb25IYW5kbGVyJiYgPSBudWxscHRyKTsKLSAg
ICB2b2lkIG5vdGlmeUZvY3VzZWRJbigpOwotICAgIHZvaWQgbm90aWZ5Rm9jdXNlZE91dCgpOwot
ICAgIHZvaWQgbm90aWZ5TW91c2VCdXR0b25QcmVzcygpOworICAgIFdLX0VYUE9SVCB2b2lkIGZp
bHRlcktleUV2ZW50KEdka0V2ZW50S2V5KiwgRmlsdGVyS2V5RXZlbnRDb21wbGV0aW9uSGFuZGxl
ciYmID0gbnVsbHB0cik7CisgICAgV0tfRVhQT1JUIHZvaWQgbm90aWZ5Rm9jdXNlZEluKCk7Cisg
ICAgV0tfRVhQT1JUIHZvaWQgbm90aWZ5Rm9jdXNlZE91dCgpOworICAgIFdLX0VYUE9SVCB2b2lk
IG5vdGlmeU1vdXNlQnV0dG9uUHJlc3MoKTsKIAogI2lmIEVOQUJMRShBUElfVEVTVFMpCiAgICAg
dm9pZCBzZXRUZXN0aW5nTW9kZShib29sIGVuYWJsZSkgeyBtX3Rlc3RpbmdNb2RlID0gZW5hYmxl
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0JQbGF0Zm9ybS5oIGIvU291
cmNlL2JtYWxsb2MvYm1hbGxvYy9CUGxhdGZvcm0uaAppbmRleCBmN2E0YWY0M2QzZS4uZDNlMWFk
YTVjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQlBsYXRmb3JtLmgKKysr
IGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CUGxhdGZvcm0uaApAQCAtMjM2LDcgKzIzNiw4IEBA
CiAjZGVmaW5lIEJVU0VfT1NfTE9HIDEKICNlbmRpZgogCi0jaWYgIWRlZmluZWQoQlVTRV9FWFBP
UlRfTUFDUk9TKSAmJiAoQlBMQVRGT1JNKE1BQykgfHwgQlBMQVRGT1JNKElPU19GQU1JTFkpKQor
Ly8gVE9ETyBCVVNFX0VYUE9SVF9NQUNST1MgY21ha2Ugc2V0dGluZ3Mgc2hvdWxkIGNhcnJ5IG92
ZXIgdG8gaGVyZQorI2lmICFkZWZpbmVkKEJVU0VfRVhQT1JUX01BQ1JPUykgJiYgKEJQTEFURk9S
TShNQUMpIHx8IEJQTEFURk9STShJT1NfRkFNSUxZKSB8fCAxKQogI2RlZmluZSBCVVNFX0VYUE9S
VF9NQUNST1MgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25zR1RL
LmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNHVEsuY21ha2UKaW5kZXggYjM5MzVhODcwYWMu
LmMxM2YyY2RmMWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQor
KysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc0dUSy5jbWFrZQpAQCAtMTEwLDcgKzExMCw3IEBAIFdF
QktJVF9PUFRJT05fREVQRU5EKFVTRV9XUEVfUkVOREVSRVIgRU5BQkxFX1dBWUxBTkRfVEFSR0VU
KQogU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoRU5BQkxFX0RFVkVMT1BFUl9NT0RFICR7REVWRUxP
UEVSX01PREV9KQogaWYgKERFVkVMT1BFUl9NT0RFKQogICAgIFdFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9NSU5JQlJPV1NFUiBQVUJMSUMgT04pCi0gICAgV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0FQSV9URVNUUyBQUklWQVRFIE9OKQorICAg
IFdFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9BUElfVEVTVFMgUFJJVkFU
RSBPRkYpICMgVE9ETyB0dXJuIGJhY2sgb24KIGVsc2UgKCkKICAgICBXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUlOSUJST1dTRVIgUFVCTElDIE9GRikKICAgICBXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQVBJX1RFU1RTIFBSSVZBVEUgT0ZG
KQpAQCAtMjAwLDYgKzIwMCw4IEBAIHNldChHREtfSU5DTFVERV9ESVJTICR7R0RLM19JTkNMVURF
X0RJUlN9KQogU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoSEFWRV9HVEtfR0VTVFVSRVMgJHtHVEsz
X1NVUFBPUlRTX0dFU1RVUkVTfSkKIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKEhBVkVfR1RLX1VO
SVhfUFJJTlRJTkcgJHtHVEtVbml4UHJpbnRfRk9VTkR9KQogU0VUX0FORF9FWFBPU0VfVE9fQlVJ
TEQoSEFWRV9PU19EQVJLX01PREVfU1VQUE9SVCAxKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQo
VVNFX0VYUE9SVF9NQUNST1MgT04pCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChCVVNFX0VYUE9S
VF9NQUNST1MgT04pCiAKIHNldChnbGliX2NvbXBvbmVudHMgZ2lvIGdpby11bml4IGdvYmplY3Qg
Z3RocmVhZCBnbW9kdWxlKQogZmluZF9wYWNrYWdlKEdMSUIgMi4zNiBSRVFVSVJFRCBDT01QT05F
TlRTICR7Z2xpYl9jb21wb25lbnRzfSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9XZWJLaXRD
b21waWxlckZsYWdzLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdENvbXBpbGVyRmxhZ3MuY21h
a2UKaW5kZXggMWY4MDJkNDJhNjEuLmU2ZjgyMGY2NTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvY21h
a2UvV2ViS2l0Q29tcGlsZXJGbGFncy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0Q29t
cGlsZXJGbGFncy5jbWFrZQpAQCAtMTAzLDYgKzEwMyw3IEBAIGlmIChDT01QSUxFUl9JU19HQ0Nf
T1JfQ0xBTkcpCiAgICAgZWxzZSAoKQogICAgICAgICBXRUJLSVRfQVBQRU5EX0dMT0JBTF9DT01Q
SUxFUl9GTEFHUygtZm5vLWV4Y2VwdGlvbnMpCiAgICAgICAgIFdFQktJVF9BUFBFTkRfR0xPQkFM
X0NYWF9GTEFHUygtZm5vLXJ0dGkpCisgICAgICAgIFdFQktJVF9BUFBFTkRfR0xPQkFMX0NPTVBJ
TEVSX0ZMQUdTKC1mdmlzaWJpbGl0eT1oaWRkZW4pCiAKICAgICAgICAgY2hlY2tfY3h4X2NvbXBp
bGVyX2ZsYWcoIi1zdGQ9YysrMTciIENYWF9DT01QSUxFUl9TVVBQT1JUU19DWFgxNykKICAgICAg
ICAgaWYgKENYWF9DT01QSUxFUl9TVVBQT1JUU19DWFgxNykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlz
dHMudHh0CmluZGV4IGJkYWNhNDk3MmQ0Li43YmZjMWRiNWViMCAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NN
YWtlTGlzdHMudHh0CkBAIC0xMDUsNyArMTA1LDggQEAgc2V0KFRlc3RXVEZfUFJJVkFURV9JTkNM
VURFX0RJUkVDVE9SSUVTCiApCiAKIHNldChUZXN0V1RGX0xJQlJBUklFUwotICAgIFdlYktpdDo6
V1RGCisgICAgV1RGCisgICAgYm1hbGxvYwogICAgIGd0ZXN0CiApCiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvSW5qZWN0ZWRCdW5kbGVNYWluLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvSW5qZWN0ZWRCdW5kbGVNYWluLmNwcAppbmRleCBiMjUzN2Y3MzdkNS4uYjc4YjZjOWM2
OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvSW5qZWN0ZWRCdW5kbGVNYWluLmNw
cAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL0luamVjdGVkQnVuZGxlTWFpbi5jcHAKQEAgLTMy
LDYgKzMyLDggQEAKIAogI2lmIGRlZmluZWQoV0lOMzIpIHx8IGRlZmluZWQoX1dJTjMyKQogZXh0
ZXJuICJDIiBfX2RlY2xzcGVjKGRsbGV4cG9ydCkgCisjZWxpZiBkZWZpbmVkKHVuaXgpIHx8IGRl
ZmluZWQoX191bml4KQorZXh0ZXJuICJDIiBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZh
dWx0IikpKQogI2Vsc2UKIGV4dGVybiAiQyIKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU1haW4uY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU1haW4uY3Bw
CmluZGV4IGRmYTNkMzE4ZjU3Li5lM2ZmMjRiZjlmOSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZU1haW4uY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVNYWluLmNw
cApAQCAtMzAsNiArMzAsOCBAQAogCiAjaWYgZGVmaW5lZChXSU4zMikKIGV4dGVybiAiQyIgX19k
ZWNsc3BlYyhkbGxleHBvcnQpCisjZWxpZiBkZWZpbmVkKHVuaXgpIHx8IGRlZmluZWQoX191bml4
KQorZXh0ZXJuICJDIiBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJkZWZhdWx0IikpKQogI2Vs
c2UKIGV4dGVybiAiQyIKICNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>