<?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>90671</bug_id>
          
          <creation_ts>2012-07-06 02:58:41 -0700</creation_ts>
          <short_desc>[CMake][EFL] Build and run TestWebKitAPI unit tests</short_desc>
          <delta_ts>2012-07-18 08:07:53 -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>WebKit EFL</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>
          <dependson>90602</dependson>
          <blocked>90451</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Thiago Marcos P. Santos">tmpsantos</reporter>
          <assigned_to name="Thiago Marcos P. Santos">tmpsantos</assigned_to>
          <cc>dbates</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>k.czech</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>sw0524.lee</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>663977</commentid>
    <comment_count>0</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-07-06 02:58:41 -0700</bug_when>
    <thetext>Add some free tests to our test suite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>664118</commentid>
    <comment_count>1</comment_count>
      <attachid>151084</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-07-06 08:13:21 -0700</bug_when>
    <thetext>Created attachment 151084
Patch

The current WIP is enough for running WTF tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>667793</commentid>
    <comment_count>2</comment_count>
      <attachid>151960</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-07-12 08:20:22 -0700</bug_when>
    <thetext>Created attachment 151960
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>668604</commentid>
    <comment_count>3</comment_count>
      <attachid>151960</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-12 22:23:44 -0700</bug_when>
    <thetext>Comment on attachment 151960
Patch

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

&gt; Tools/TestWebKitAPI/CMakeLists.txt:55
&gt; +    -DTEST_WEBKIT2_RESOURCES_DIR=\&quot;${TESTWEBKITAPI_DIR}/Tests/WebKit2\&quot;

Nit : Place this line as below.
http://trac.webkit.org/browser/trunk/Tools/DumpRenderTree/efl/CMakeLists.txt#L116

&gt; Tools/TestWebKitAPI/CMakeLists.txt:56
&gt; +    -DTEST_INJECTED_BUNDLE_PATH=\&quot;${TestWebKitAPIInjectedBundle_PATH}\&quot;

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670251</commentid>
    <comment_count>4</comment_count>
      <attachid>152513</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-07-16 05:06:36 -0700</bug_when>
    <thetext>Created attachment 152513
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671375</commentid>
    <comment_count>5</comment_count>
      <attachid>152513</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-07-17 10:42:53 -0700</bug_when>
    <thetext>Comment on attachment 152513
Patch

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

Looks sane to me. I had some minor nits.

&gt; Tools/TestWebKitAPI/CMakeLists.txt:32
&gt; +    ${TESTWEBKITAPI_DIR}/Tests/WebKit2/DocumentStartUserScriptAlertCrash_Bundle.cpp
&gt; +    ${TESTWEBKITAPI_DIR}/Tests/WebKit2/DOMWindowExtensionBasic_Bundle.cpp
&gt; +    ${TESTWEBKITAPI_DIR}/Tests/WebKit2/DOMWindowExtensionNoCache_Bundle.cpp

These lines aren&apos;t in sorted order according to the Unix sort command. In particular, ${TESTWEBKITAPI_DIR}/Tests/WebKit2/DocumentStartUserScriptAlertCrash_Bundle.cpp should be after ${TESTWEBKITAPI_DIR}/Tests/WebKit2/DOMWindowExtensionNoCache_Bundle.cpp.

&gt; Tools/TestWebKitAPI/CMakeLists.txt:77
&gt; +    ${TESTWEBKITAPI_DIR}/Tests/WTF/VectorBasic.cpp
&gt; +    ${TESTWEBKITAPI_DIR}/Tests/WTF/Vector.cpp

These lines should be swapped such that ${TESTWEBKITAPI_DIR}/Tests/WTF/Vector.cpp comes before ${TESTWEBKITAPI_DIR}/Tests/WTF/VectorBasic.cpp so that this list is in sorted order according to the Unix sort command.

&gt; Tools/TestWebKitAPI/PlatformEfl.cmake:33
&gt; +# The list bellow works like a test expectations. Tests at the

bellow =&gt; below
expectations =&gt; expectation
at =&gt; in

&gt; Tools/TestWebKitAPI/PlatformEfl.cmake:35
&gt; +# Tests at test_webkit2_api_fail_BINARIES are compiled and suffixed

&quot;at test_webkit2_api_fail_BINARIES&quot; =&gt; &quot;in the test_webkit2_api_fail_BINARIES list&quot;

I&apos;m unclear what the lists test_webkit2_api_BINARIES and test_webkit2_api_fail_BINARIES represent. I take it that they represents the binaries corresponding to the tests that pass and fail, respectively? I suggest that we elaborate on the purpose of these lists.

&gt; Tools/TestWebKitAPI/PlatformEfl.cmake:40
&gt; +# Release builds before adding it to the list.

Which list? I take it that we should add passing tests to the list test_webkit2_api_BINARIES?

&gt; Tools/TestWebKitAPI/PlatformEfl.cmake:45
&gt; +    DocumentStartUserScriptAlertCrash
&gt; +    DOMWindowExtensionNoCache

These lines should be swapped such that DOMWindowExtensionNoCache comes before DocumentStartUserScriptAlertCrash so that this list is in sorted order according to the Unix sort command.

&gt; Tools/TestWebKitAPI/PlatformEfl.cmake:78
&gt; +    CanHandleRequest
&gt; +    NewFirstVisuallyNonEmptyLayoutFrames
&gt; +    RestoreSessionStateContainingFormData
&gt; +    DownloadDecideDestinationCrash
&gt; +    NewFirstVisuallyNonEmptyLayoutForImages
&gt; +    WKPageGetScaleFactorNotZero
&gt; +    DOMWindowExtensionBasic
&gt; +    ShouldGoToBackForwardListItem

Please sort these according to the Unix sort command.

&gt; Tools/TestWebKitAPI/efl/main.cpp:35
&gt; +static bool parseArguments(int argc, char** argv)

Currently this function only parses and returns the value for the useX11Window command line option. I take it that you envision accepting additional command line options in the future given the generalness of the name of this function. Unless you plan to accept additional command line options in the short term, you may want to consider using a more specific name for this function, say checkForUseX11WindowArgument.

&gt; Tools/TestWebKitAPI/efl/main.cpp:37
&gt; +    int ret = 0;

Can we come up with a more descriptive name for this? Maybe shouldUseX11Window? hasUseX11WindowOption? value?

&gt; Tools/TestWebKitAPI/efl/main.cpp:59
&gt; +    int ret = TestWebKitAPI::TestsController::shared().run(argc, argv) ? EXIT_SUCCESS : EXIT_FAILURE;

I suggest that we write out &quot;return code&quot; as returnCode out, for clarity, instead of abbreviating it as ret.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672339</commentid>
    <comment_count>6</comment_count>
      <attachid>153005</attachid>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-07-18 07:05:21 -0700</bug_when>
    <thetext>Created attachment 153005
Patch

Thanks for reviewing. I was piping from vim to the command line sort on Linux. I&apos;m now using the built-in vim sort which seens to be aligned with Unix sort. Now I see why the style checker always complains about the sorting order of my include headers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672384</commentid>
    <comment_count>7</comment_count>
      <attachid>153005</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-18 08:07:45 -0700</bug_when>
    <thetext>Comment on attachment 153005
Patch

Clearing flags on attachment: 153005

Committed r122973: &lt;http://trac.webkit.org/changeset/122973&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>672385</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-18 08:07:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151084</attachid>
            <date>2012-07-06 08:13:21 -0700</date>
            <delta_ts>2012-07-12 08:20:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90671-20120706181522.patch</filename>
            <type>text/plain</type>
            <size>3761</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxOTQ4CmRpZmYgLS1naXQgYS9Ub29scy9DTWFrZUxpc3Rz
LnR4dCBiL1Rvb2xzL0NNYWtlTGlzdHMudHh0CmluZGV4IGU5ZmM3ZTNiZGQxODM4OWRkMzE5NTFh
MTdlNjYwYzY3YmM0NmU2ZmQuLjAzNWZhNGY2NWRmYTFlZmE5NWVkY2QxZjA5OTA2ZDExODhjNzky
MTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL0NNYWtlTGlz
dHMudHh0CkBAIC0xNCwzICsxNCw3IEBAIElGICgiJHtQT1JUfSIgU1RSRVFVQUwgIkVmbCIpCiBF
TFNFSUYgKCIke1BPUlR9IiBTVFJFUVVBTCAiV2luQ0UiKQogICAgIEFERF9TVUJESVJFQ1RPUlko
V2luQ0VMYXVuY2hlcikKIEVORElGKCkKKworSUYgKEVOQUJMRV9BUElfVEVTVFMpCisgICAgQURE
X1NVQkRJUkVDVE9SWShUZXN0V2ViS2l0QVBJKQorRU5ESUYoKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VM
aXN0cy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjhmMGJkNjZkYWRkNjFhZmY2MDEzNTMwZTZmN2UyNTBmZWZk
ZGE3MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50
eHQKQEAgLTAsMCArMSwzNyBAQAorU0VUKFRFU1RXRUJLSVRBUElfRElSICIke1RPT0xTX0RJUn0v
VGVzdFdlYktpdEFQSSIpCisKK0lOQ0xVREVfRElSRUNUT1JJRVMoJHtURVNUV0VCS0lUQVBJX0RJ
Un0KKyAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0KKyAgICAke1dURl9ESVJ9CisgICAgJHtUSElS
RFBBUlRZX0RJUn0vZ3Rlc3QvaW5jbHVkZQorICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJf
RElSfS9pbmNsdWRlCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UKKykKKworU0VUKHRl
c3Rfd3RmX0xJQlJBUklFUworICAgICR7V1RGX0xJQlJBUllfTkFNRX0KKyAgICBndGVzdAorICAg
IHB0aHJlYWQKKykKKworQUREX0VYRUNVVEFCTEUodGVzdF93dGYKKyAgICAke1RFU1RXRUJLSVRB
UElfRElSfS9lZmwvbWFpbi5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0c0NvbnRy
b2xsZXIuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL0NoZWNrZWRBcml0
aG1ldGljT3BlcmF0aW9ucy5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYv
RnVuY3Rpb25hbC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvSGFzaE1h
cC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRvci5j
cHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvUmVkQmxhY2tUcmVlLmNwcAor
ICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAorICAg
ICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCisgICAg
JHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL1RlbXBvcmFyeUNoYW5nZS5jcHAKKyAgICAk
e1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvVmVjdG9yQmFzaWMuY3BwCisgICAgJHtURVNU
V0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL1ZlY3Rvci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElf
RElSfS9UZXN0cy9XVEYvVmVjdG9yUmV2ZXJzZS5jcHAKKykKKworVEFSR0VUX0xJTktfTElCUkFS
SUVTKHRlc3Rfd3RmICR7dGVzdF93dGZfTElCUkFSSUVTfSkKKworQUREX0RFUEVOREVOQ0lFUyh0
ZXN0X3d0ZiBmb3J3YXJkaW5nLWhlYWRlckVmbCkKKworQUREX1RFU1QodGVzdF93dGYgJHtDTUFL
RV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L3Rlc3Rfd3RmKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9lZmwvbWFpbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2VmbC9tYWlu
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5iYmU4YmQwY2QxOTQ3YjNkOTYwN2UxMzhhMThmMGI5YTRiZWQ0Zjhi
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9lZmwvbWFpbi5jcHAKQEAg
LTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlv
bi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlRlc3RzQ29udHJvbGxlci5oIgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioq
IGFyZ3YpCit7CisgICAgcmV0dXJuIFRlc3RXZWJLaXRBUEk6OlRlc3RzQ29udHJvbGxlcjo6c2hh
cmVkKCkucnVuKGFyZ2MsIGFyZ3YpID8gRVhJVF9TVUNDRVNTIDogRVhJVF9GQUlMVVJFOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>151960</attachid>
            <date>2012-07-12 08:20:22 -0700</date>
            <delta_ts>2012-07-16 05:06:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90671-20120712182021.patch</filename>
            <type>text/plain</type>
            <size>22057</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyNDUzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjM0NjVmZGQ2YmRlYWFmNDk0ODg2NDEzMWJlMzVhMDRi
NDRiN2E5Mi4uZjFhMGQ2MjdlOWRkMzgwOWQ3ZTgyMmZlNWM4ZjUwMzZkZjdlYjI4ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQw
IEBACisyMDEyLTA3LTEyICBUaGlhZ28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NA
aW50ZWwuY29tPgorCisgICAgICAgIFtDTWFrZV1bRUZMXSBCdWlsZCBhbmQgcnVuIFRlc3RXZWJL
aXRBUEkgdW5pdCB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTA2NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIHBhdGNoIGVuYWJsZXMgYWxtb3N0IGZvciBmcmVlIGEgc2lnbmlmaWNhbnQg
YW1vdW50IG9mIHRlc3QgZm9yIHRoZQorICAgICAgICBXZWJLaXQgQyBBUEksIFdURiBhbmQgS1VS
TC4gSXQgbWFrZXMgZWFzeSBmb3IgQ01ha2UgYmFzZWQgcG9ydHMgdG8KKyAgICAgICAgZW5hYmxl
IFRlc3RXZWJLaXRBUEkgc2luY2UgdGhlIG1pc3NpbmcgYml0cyB0byBpbXBsZW1lbnQgYXJlCisg
ICAgICAgIHJlbGF0aXZlbHkgc2ltcGxlLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dDogQWRkZWQuCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9QbGF0Zm9ybUVmbC5jbWFrZTogQWRkZWQuCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2VmbC9J
bmplY3RlZEJ1bmRsZUNvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRB
UEkpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyOjpw
bGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZWZsL1BsYXRmb3Jt
VXRpbGl0aWVzLmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJKToKKyAgICAgICAg
KFV0aWwpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0aWw6
OmNyZWF0ZVVSTEZvclJlc291cmNlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNy
ZWF0ZUluamVjdGVkQnVuZGxlUGF0aCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpVdGlsOjpV
UkxGb3JOb25FeGlzdGVudFJlc291cmNlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2VmbC9Q
bGF0Zm9ybVdlYlZpZXcuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEkpOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6aW5pdEVjb3JlRXZhcyk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3OjpwYWdlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL2VmbC9tYWluLmNwcDogQWRkZWQuCisgICAgICAgIChwYXJzZUFyZ3VtZW50cyk6CisgICAg
ICAgIChtYWluKToKKwogMjAxMi0wNy0xMiAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFu
bkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBJbnRlcm5hbCBzeW1ib2xzIGFyZSBleHBvcnRl
ZCBvbiBMaW51eApkaWZmIC0tZ2l0IGEvVG9vbHMvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9DTWFr
ZUxpc3RzLnR4dAppbmRleCBlOWZjN2UzYmRkMTgzODlkZDMxOTUxYTE3ZTY2MGM2N2JjNDZlNmZk
Li4yZjJiNjBjZDNmODAwYWE2ZmE1OGQyZDU3NjI0YzlkMjBkMmFhYzY4IDEwMDY0NAotLS0gYS9U
b29scy9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9DTWFrZUxpc3RzLnR4dApAQCAtMTQsMyAr
MTQsNyBAQCBJRiAoIiR7UE9SVH0iIFNUUkVRVUFMICJFZmwiKQogRUxTRUlGICgiJHtQT1JUfSIg
U1RSRVFVQUwgIldpbkNFIikKICAgICBBRERfU1VCRElSRUNUT1JZKFdpbkNFTGF1bmNoZXIpCiBF
TkRJRigpCisKK0lGIChFTkFCTEVfV0VCS0lUMiBBTkQgRU5BQkxFX0FQSV9URVNUUykKKyAgICBB
RERfU1VCRElSRUNUT1JZKFRlc3RXZWJLaXRBUEkpCitFTkRJRigpCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFr
ZUxpc3RzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjNjZTBlN2E3MjE4Mzg4ZjZhZGI2OTM4NGZhOTk2NGZh
MTJmZmFkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3Rz
LnR4dApAQCAtMCwwICsxLDEzNCBAQAorU0VUKFRFU1RXRUJLSVRBUElfRElSICIke1RPT0xTX0RJ
Un0vVGVzdFdlYktpdEFQSSIpCisKK0lOQ0xVREVfRElSRUNUT1JJRVMoJHtURVNUV0VCS0lUQVBJ
X0RJUn0KKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZQorICAgICR7REVSSVZFRF9TT1VS
Q0VTX1dFQktJVDJfRElSfS9pbmNsdWRlCisgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9CisgICAg
JHtKQVZBU0NSSVBUQ09SRV9ESVJ9L0FQSQorICAgICR7SkFWQVNDUklQVENPUkVfRElSfS9Gb3J3
YXJkaW5nSGVhZGVycworICAgICR7VEhJUkRQQVJUWV9ESVJ9L2d0ZXN0L2luY2x1ZGUKKyAgICAk
e1dFQkNPUkVfRElSfS9lZGl0aW5nCisgICAgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0KKyAgICAk
e1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcworICAgICR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL3RleHQKKyAgICAke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrCisgICAgJHtXRUJL
SVQyX0RJUn0vU2hhcmVkCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jCisgICAgJHtX
RUJLSVQyX0RJUn0vVUlQcm9jZXNzCisgICAgJHtXVEZfRElSfQorKQorCitXRUJLSVRfSU5DTFVE
RV9DT05GSUdfRklMRVNfSUZfRVhJU1RTKCkKKworQUREX0xJQlJBUlkoVGVzdFdlYktpdEFQSUlu
amVjdGVkQnVuZGxlIFNIQVJFRAorICAgICR7YnVuZGxlX2hhcm5lc3NfU09VUkNFU30KKyAgICAk
e1RFU1RXRUJLSVRBUElfRElSfS9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXIuY3BwCisgICAgJHtU
RVNUV0VCS0lUQVBJX0RJUn0vSW5qZWN0ZWRCdW5kbGVNYWluLmNwcAorICAgICR7VEVTVFdFQktJ
VEFQSV9ESVJ9L1BsYXRmb3JtVXRpbGl0aWVzLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9
L1Rlc3RzL1dlYktpdDIvQ2FuSGFuZGxlUmVxdWVzdF9CdW5kbGUuY3BwCisgICAgJHtURVNUV0VC
S0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9Eb2N1bWVudFN0YXJ0VXNlclNjcmlwdEFsZXJ0Q3Jh
c2hfQnVuZGxlLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvRE9N
V2luZG93RXh0ZW5zaW9uQmFzaWNfQnVuZGxlLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9
L1Rlc3RzL1dlYktpdDIvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZV9CdW5kbGUuY3BwCisgICAg
JHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9HZXRJbmplY3RlZEJ1bmRsZUluaXRp
YWxpemF0aW9uVXNlckRhdGFDYWxsYmFja19CdW5kbGUuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJ
X0RJUn0vVGVzdHMvV2ViS2l0Mi9IaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwCisg
ICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9JbmplY3RlZEJ1bmRsZUJhc2lj
X0J1bmRsZS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL0luamVj
dGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrV2luc19CdW5kbGUuY3BwCisg
ICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9Mb2FkQ2FuY2VsZWROb1NlcnZl
clJlZGlyZWN0Q2FsbGJhY2tfQnVuZGxlLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rl
c3RzL1dlYktpdDIvTW91c2VNb3ZlQWZ0ZXJDcmFzaF9CdW5kbGUuY3BwCisgICAgJHtURVNUV0VC
S0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9OZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRf
QnVuZGxlLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvTmV3Rmly
c3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RmFpbHNfQnVuZGxlLmNwcAorICAgICR7VEVTVFdFQktJ
VEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9y
SW1hZ2VzX0J1bmRsZS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQy
L05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwCisgICAgJHtU
RVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9QYXJlbnRGcmFtZV9CdW5kbGUuY3BwCisg
ICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9SZXNwb25zaXZlbmVzc1RpbWVy
RG9lc250RmlyZUVhcmx5X0J1bmRsZS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0
cy9XZWJLaXQyL1Nob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtX0J1bmRsZS5jcHAKKyAgICAk
e1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1VzZXJNZXNzYWdlX0J1bmRsZS5jcHAK
KyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1dpbGxTZW5kU3VibWl0RXZl
bnRfQnVuZGxlLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvV0tD
b25uZWN0aW9uX0J1bmRsZS5jcHAKKykKKworQUREX0RFUEVOREVOQ0lFUyhUZXN0V2ViS2l0QVBJ
SW5qZWN0ZWRCdW5kbGUgJHtGb3J3YXJkaW5nSGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRX0g
JHtGb3J3YXJkaW5nTmV0d29ya0hlYWRlcnNGb3JUZXN0V2ViS2l0QVBJX05BTUV9KQorCitHRVRf
UFJPUEVSVFkoVGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxlX1BBVEggVEFSR0VUIFRlc3RXZWJL
aXRBUElJbmplY3RlZEJ1bmRsZSBQUk9QRVJUWSBMT0NBVElPTikKKworQUREX0RFRklOSVRJT05T
KC1ER1RFU1RfTElOS0VEX0FTX1NIQVJFRF9MSUJSQVJZPTEKKyAgICAtRFRFU1RfV0VCS0lUMl9S
RVNPVVJDRVNfRElSPVwiJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0MlwiCisgICAg
LURURVNUX0lOSkVDVEVEX0JVTkRMRV9QQVRIPVwiJHtUZXN0V2ViS2l0QVBJSW5qZWN0ZWRCdW5k
bGVfUEFUSH1cIgorKQorCitTRVQodGVzdF93dGZfTElCUkFSSUVTCisgICAgJHtXVEZfTElCUkFS
WV9OQU1FfQorICAgIGd0ZXN0CispCisKK0FERF9FWEVDVVRBQkxFKHRlc3Rfd3RmCisgICAgJHt0
ZXN0X21haW5fU09VUkNFU30KKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0c0NvbnRyb2xs
ZXIuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL0NoZWNrZWRBcml0aG1l
dGljT3BlcmF0aW9ucy5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvRnVu
Y3Rpb25hbC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvSGFzaE1hcC5j
cHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvTWV0YUFsbG9jYXRvci5jcHAK
KyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvUmVkQmxhY2tUcmVlLmNwcAorICAg
ICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAorICAgICR7
VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwCisgICAgJHtU
RVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL1RlbXBvcmFyeUNoYW5nZS5jcHAKKyAgICAke1RF
U1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvVmVjdG9yQmFzaWMuY3BwCisgICAgJHtURVNUV0VC
S0lUQVBJX0RJUn0vVGVzdHMvV1RGL1ZlY3Rvci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElS
fS9UZXN0cy9XVEYvVmVjdG9yUmV2ZXJzZS5jcHAKKykKKworVEFSR0VUX0xJTktfTElCUkFSSUVT
KHRlc3Rfd3RmICR7dGVzdF93dGZfTElCUkFSSUVTfSkKK0FERF9ERVBFTkRFTkNJRVModGVzdF93
dGYgJHtGb3J3YXJkaW5nSGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRX0gJHtGb3J3YXJkaW5n
TmV0d29ya0hlYWRlcnNGb3JUZXN0V2ViS2l0QVBJX05BTUV9KQorQUREX1RFU1QodGVzdF93dGYg
JHtDTUFLRV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L3Rlc3Rfd3RmKQorU0VUX1RFU1RTX1BS
T1BFUlRJRVModGVzdF93dGYgUFJPUEVSVElFUyBUSU1FT1VUIDYwKQorCitTRVQodGVzdF93ZWJj
b3JlX0xJQlJBUklFUworICAgICR7V1RGX0xJQlJBUllfTkFNRX0KKyAgICAke1dlYkNvcmVfTElC
UkFSWV9OQU1FfQorICAgIGd0ZXN0CispCisKK0FERF9FWEVDVVRBQkxFKHRlc3Rfd2ViY29yZQor
ICAgICR7dGVzdF9tYWluX1NPVVJDRVN9CisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHND
b250cm9sbGVyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvS1VS
TC5jcHAKKykKKworVEFSR0VUX0xJTktfTElCUkFSSUVTKHRlc3Rfd2ViY29yZSAke3Rlc3Rfd2Vi
Y29yZV9MSUJSQVJJRVN9KQorQUREX0RFUEVOREVOQ0lFUyh0ZXN0X3dlYmNvcmUgJHtGb3J3YXJk
aW5nSGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRX0gJHtGb3J3YXJkaW5nTmV0d29ya0hlYWRl
cnNGb3JUZXN0V2ViS2l0QVBJX05BTUV9KQorQUREX1RFU1QodGVzdF93ZWJjb3JlICR7Q01BS0Vf
UlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS90ZXN0X3dlYmNvcmUpCitTRVRfVEVTVFNfUFJPUEVS
VElFUyh0ZXN0X3dlYmNvcmUgUFJPUEVSVElFUyBUSU1FT1VUIDYwKQorCitBRERfTElCUkFSWShU
ZXN0V2ViS2l0QVBJQmFzZQorICAgICR7dGVzdF9tYWluX1NPVVJDRVN9CisgICAgJHt3ZWJraXQy
X2FwaV9oYXJuZXNzX1NPVVJDRVN9CisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vSmF2YVNjcmlw
dFRlc3QuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vUGxhdGZvcm1VdGlsaXRpZXMuY3Bw
CisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHNDb250cm9sbGVyLmNwcAorKQorCitBRERf
REVQRU5ERU5DSUVTKFRlc3RXZWJLaXRBUElCYXNlICR7Rm9yd2FyZGluZ0hlYWRlcnNGb3JUZXN0
V2ViS2l0QVBJX05BTUV9ICR7Rm9yd2FyZGluZ05ldHdvcmtIZWFkZXJzRm9yVGVzdFdlYktpdEFQ
SV9OQU1FfSkKKworU0VUKHRlc3Rfd2Via2l0Ml9hcGlfTElCUkFSSUVTCisgICAgVGVzdFdlYktp
dEFQSUJhc2UKKyAgICAke1dURl9MSUJSQVJZX05BTUV9CisgICAgJHtKYXZhU2NyaXB0Q29yZV9M
SUJSQVJZX05BTUV9CisgICAgJHtXZWJLaXQyX0xJQlJBUllfTkFNRX0KKyAgICBndGVzdAorKQor
CitGT1JFQUNIKHRlc3ROYW1lICR7dGVzdF93ZWJraXQyX2FwaV9CSU5BUklFU30pCisgICAgQURE
X0VYRUNVVEFCTEUodGVzdF93ZWJraXQyX2FwaV8ke3Rlc3ROYW1lfSAke1RFU1RXRUJLSVRBUElf
RElSfS9UZXN0cy9XZWJLaXQyLyR7dGVzdE5hbWV9LmNwcCkKKyAgICBBRERfVEVTVCh0ZXN0X3dl
YmtpdDJfYXBpXyR7dGVzdE5hbWV9ICR7Q01BS0VfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS90
ZXN0X3dlYmtpdDJfYXBpXyR7dGVzdE5hbWV9KQorICAgIFNFVF9URVNUU19QUk9QRVJUSUVTKHRl
c3Rfd2Via2l0Ml9hcGlfJHt0ZXN0TmFtZX0gUFJPUEVSVElFUyBUSU1FT1VUIDYwKQorICAgIFRB
UkdFVF9MSU5LX0xJQlJBUklFUyh0ZXN0X3dlYmtpdDJfYXBpXyR7dGVzdE5hbWV9ICR7dGVzdF93
ZWJraXQyX2FwaV9MSUJSQVJJRVN9KQorRU5ERk9SRUFDSCgpCisKKyMgV2UgZG9uJ3QgcnVuIHRl
c3RzIHRoYXQgYXJlIGV4cGVjdGVkIHRvIGZhaWwuIFdlIGNvdWxkIHVzZSB0aGUgV0lMTF9GQUlM
CisjIHByb3BlcnR5LCBidXQgaXQgcmVwb3J0cyBmYWlsdXJlIHdoZW4gdGhlIHRlc3QgY3Jhc2hl
cyBvciB0aW1lb3V0cyBhbmQgd291bGQKKyMgbWFrZSB0aGUgYm90IHJlZC4KKworRk9SRUFDSCh0
ZXN0TmFtZSAke3Rlc3Rfd2Via2l0Ml9hcGlfZmFpbF9CSU5BUklFU30pCisgICAgQUREX0VYRUNV
VEFCTEUodGVzdF93ZWJraXQyX2FwaV9mYWlsXyR7dGVzdE5hbWV9ICR7VEVTVFdFQktJVEFQSV9E
SVJ9L1Rlc3RzL1dlYktpdDIvJHt0ZXN0TmFtZX0uY3BwKQorICAgIFRBUkdFVF9MSU5LX0xJQlJB
UklFUyh0ZXN0X3dlYmtpdDJfYXBpX2ZhaWxfJHt0ZXN0TmFtZX0gJHt0ZXN0X3dlYmtpdDJfYXBp
X0xJQlJBUklFU30pCitFTkRGT1JFQUNIKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvUGxhdGZvcm1FZmwuY21ha2UgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtRWZsLmNt
YWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmMzOWRkMDk3YzY4ZThlMjgwZjY2NDI5ODIxNDBlMTlkNzc3NDU5YzgK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtRWZsLmNtYWtl
CkBAIC0wLDAgKzEsOTIgQEAKK0FERF9DVVNUT01fVEFSR0VUKGZvcndhcmRpbmctaGVhZGVyc0Vm
bEZvclRlc3RXZWJLaXRBUEkKKyAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQktJ
VDJfRElSfS9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbCAke1RFU1RXRUJL
SVRBUElfRElSfSAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vaW5jbHVkZSBlZmwKKykK
K1NFVChGb3J3YXJkaW5nSGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRSBmb3J3YXJkaW5nLWhl
YWRlcnNFZmxGb3JUZXN0V2ViS2l0QVBJKQorCitBRERfQ1VTVE9NX1RBUkdFVChmb3J3YXJkaW5n
LWhlYWRlcnNTb3VwRm9yVGVzdFdlYktpdEFQSQorICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFC
TEV9ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBs
ICR7VEVTVFdFQktJVEFQSV9ESVJ9ICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9pbmNs
dWRlIHNvdXAKKykKK1NFVChGb3J3YXJkaW5nTmV0d29ya0hlYWRlcnNGb3JUZXN0V2ViS2l0QVBJ
X05BTUUgZm9yd2FyZGluZy1oZWFkZXJzU291cEZvclRlc3RXZWJLaXRBUEkpCisKK0lOQ0xVREVf
RElSRUNUT1JJRVMoJHtMSUJTT1VQMjRfSU5DTFVERV9ESVJTfQorICAgICR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQy9zb3VwCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9D
L2VmbAorICAgICR7RUNPUkVfSU5DTFVERV9ESVJTfQorICAgICR7RUlOQV9JTkNMVURFX0RJUlN9
CisgICAgJHtFVkFTX0lOQ0xVREVfRElSU30KKykKKworU0VUKHRlc3RfbWFpbl9TT1VSQ0VTCisg
ICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vZWZsL21haW4uY3BwCispCisKK1NFVChidW5kbGVfaGFy
bmVzc19TT1VSQ0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vZWZsL0luamVjdGVkQnVuZGxl
Q29udHJvbGxlci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9lZmwvUGxhdGZvcm1VdGls
aXRpZXMuY3BwCispCisKK1NFVCh3ZWJraXQyX2FwaV9oYXJuZXNzX1NPVVJDRVMKKyAgICAke1RF
U1RXRUJLSVRBUElfRElSfS9lZmwvUGxhdGZvcm1VdGlsaXRpZXMuY3BwCisgICAgJHtURVNUV0VC
S0lUQVBJX0RJUn0vZWZsL1BsYXRmb3JtV2ViVmlldy5jcHAKKykKKworIyBUaGUgbGlzdCBiZWxs
b3cgd29ya3MgbGlrZSBhIHRlc3QgZXhwZWN0YXRpb25zLiBUZXN0cyBhdCB0aGUKKyMgdGVzdF93
ZWJraXQyX2FwaV9CSU5BUklFUyBsaXN0IGFyZSBhZGRlZCB0byB0aGUgdGVzdCBydW5uZXIuCisj
IFRlc3RzIGF0IHRlc3Rfd2Via2l0Ml9hcGlfZmFpbF9CSU5BUklFUyBhcmUgY29tcGlsZWQgYW5k
IHN1ZmZpeGVkCisjIHdpdGggZmFpbC4gVGhpcyB3aWxsIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVn
IGluIGNhc2Ugc29tZSBuaWNlCisjIGRldmVsb3BlciBpcyB3aWxsaW5nIHRvIGZpeCBpdC4KKyMK
KyMgTWFrZSBzdXJlIHRoYXQgdGhlIHRlc3RzIGFyZSBwYXNzaW5nIG9uIGJvdGggRGVidWcgYW5k
CisjIFJlbGVhc2UgYnVpbGRzIGJlZm9yZSBhZGRpbmcgaXQgdG8gdGhlIGxpc3QuCisKK1NFVCh0
ZXN0X3dlYmtpdDJfYXBpX0JJTkFSSUVTCisgICAgQ29va2llTWFuYWdlcgorICAgIERvY3VtZW50
U3RhcnRVc2VyU2NyaXB0QWxlcnRDcmFzaAorICAgIERPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGUK
KyAgICBFdmFsdWF0ZUphdmFTY3JpcHQKKyAgICBGYWlsZWRMb2FkCisgICAgRmluZAorICAgIEZv
cmNlUmVwYWludAorICAgIEZyYW1lTUlNRVR5cGVIVE1MCisgICAgRnJhbWVNSU1FVHlwZVBORwor
ICAgIEdldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2VyRGF0YUNhbGxiYWNrCisgICAg
SW5qZWN0ZWRCdW5kbGVCYXNpYworICAgIEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2Vy
RGF0YUNhbGxiYWNrV2lucworICAgIExvYWRBbHRlcm5hdGVIVE1MU3RyaW5nV2l0aE5vbkRpcmVj
dG9yeVVSTAorICAgIExvYWRDYW5jZWxlZE5vU2VydmVyUmVkaXJlY3RDYWxsYmFjaworICAgIE5l
d0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dAorICAgIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZhaWxzCisgICAgUGFnZUxvYWRCYXNpYworICAgIFBhZ2VMb2FkRGlkQ2hhbmdlTG9j
YXRpb25XaXRoaW5QYWdlRm9yRnJhbWUKKyAgICBQYXJlbnRGcmFtZQorICAgIFByZXZlbnRFbXB0
eVVzZXJBZ2VudAorICAgIFByaXZhdGVCcm93c2luZ1B1c2hTdGF0ZU5vSGlzdG9yeUNhbGxiYWNr
CisgICAgV2lsbFNlbmRTdWJtaXRFdmVudAorICAgIFdLQ29ubmVjdGlvbgorICAgIFdLU3RyaW5n
CisgICAgV0tTdHJpbmdKU1N0cmluZworKQorCitTRVQodGVzdF93ZWJraXQyX2FwaV9mYWlsX0JJ
TkFSSUVTCisgICAgQ2FuSGFuZGxlUmVxdWVzdAorICAgIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZyYW1lcworICAgIFJlc3RvcmVTZXNzaW9uU3RhdGVDb250YWluaW5nRm9ybURhdGEK
KyAgICBEb3dubG9hZERlY2lkZURlc3RpbmF0aW9uQ3Jhc2gKKyAgICBOZXdGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXMKKyAgICBXS1BhZ2VHZXRTY2FsZUZhY3Rvck5vdFplcm8K
KyAgICBET01XaW5kb3dFeHRlbnNpb25CYXNpYworICAgIFNob3VsZEdvVG9CYWNrRm9yd2FyZExp
c3RJdGVtCispCisKKyMgVGVzdHMgZGlzYWJsZWQgYmVjYXVzZSBvZiBtaXNzaW5nIGZlYXR1cmVz
IG9uIHRoZSB0ZXN0IGhhcm5lc3M6CisjCisjICAgQWJvdXRCbGFua0xvYWQKKyMgICBIaXRUZXN0
UmVzdWx0Tm9kZUhhbmRsZQorIyAgIE1vdXNlTW92ZUFmdGVyQ3Jhc2gKKyMgICBSZXNwb25zaXZl
bmVzc1RpbWVyRG9lc250RmlyZUVhcmx5CisjICAgU3BhY2ViYXJTY3JvbGxpbmcKKyMgICBXS1By
ZWZlcmVuY2VzCisjCisjIEZsYWt5IHRlc3QsIGZhaWxzIG9uIFJlbGVhc2UgYnV0IHBhc3NlcyBv
biBEZWJ1ZzoKKyMKKyMgICBVc2VyTWVzc2FnZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9QbGF0Zm9ybVdlYlZpZXcuaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJW
aWV3LmgKaW5kZXggY2YwMTMyZTRhNWQ0NjUzMDRiOThhMmE5NzUwM2RjZDdiOTVlMTY5NC4uNjUz
YTE3Y2NhMjk2ZTNjZTg3ZGJmYTNhNzNhNzIxMjE2MDQ2MGVkOSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1BsYXRmb3JtV2ViVmlldy5oCkBAIC00Niw2ICs0NiwxMSBAQCB0eXBlZGVmIEhXTkQgUGxhdGZv
cm1XaW5kb3c7CiAjZWxpZiBQTEFURk9STShHVEspCiB0eXBlZGVmIFdLVmlld1JlZiBQbGF0Zm9y
bVdLVmlldzsKIHR5cGVkZWYgR3RrV2lkZ2V0ICpQbGF0Zm9ybVdpbmRvdzsKKyNlbGlmIFBMQVRG
T1JNKEVGTCkKK3R5cGVkZWYgc3RydWN0IF9FdmFzX09iamVjdCBFdmFzX09iamVjdDsKK3R5cGVk
ZWYgc3RydWN0IF9FY29yZV9FdmFzIEVjb3JlX0V2YXM7Cit0eXBlZGVmIEV2YXNfT2JqZWN0KiBQ
bGF0Zm9ybVdLVmlldzsKK3R5cGVkZWYgRWNvcmVfRXZhcyogUGxhdGZvcm1XaW5kb3c7CiAjZW5k
aWYKIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9lZmwvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvZWZsL0luamVjdGVkQnVuZGxlQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQ1NTAw
MmNjYmNmMWQyNWY2Y2M4M2JkZWY0YmI5ZmMwOWQ2YjNlNQotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvZWZsL0luamVjdGVkQnVuZGxlQ29udHJvbGxlci5jcHAKQEAgLTAs
MCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVDb250cm9s
bGVyLmgiCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKwordm9pZCBJbmplY3RlZEJ1bmRs
ZUNvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZWZsL1BsYXRm
b3JtVXRpbGl0aWVzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZWZsL1BsYXRmb3JtVXRpbGl0
aWVzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45Njc0NTQ1OWYzNzlmM2ZlZGVmYjIxOWMyYzEyZjc4OGM3NGY1
M2UxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9lZmwvUGxhdGZvcm1V
dGlsaXRpZXMuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorCisjaW5jbHVk
ZSA8RWNvcmUuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCitu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK25hbWVzcGFjZSBVdGlsIHsKKwordm9pZCBydW4o
Ym9vbCogZG9uZSkKK3sKKyAgICB3aGlsZSAoISpkb25lKQorICAgICAgICBlY29yZV9tYWluX2xv
b3BfaXRlcmF0ZSgpOworfQorCit2b2lkIHNsZWVwKGRvdWJsZSBzZWNvbmRzKQoreworICAgIHNs
ZWVwKHNlY29uZHMpOworfQorCitXS1VSTFJlZiBjcmVhdGVVUkxGb3JSZXNvdXJjZShjb25zdCBj
aGFyKiByZXNvdXJjZSwgY29uc3QgY2hhciogZXh0ZW5zaW9uKQoreworICAgIGNoYXIgdXJsW1BB
VEhfTUFYXTsKKworICAgIHNucHJpbnRmKHVybCwgc2l6ZW9mKHVybCksICJmaWxlOi8vJXMvJXMu
JXMiLCBURVNUX1dFQktJVDJfUkVTT1VSQ0VTX0RJUiwgcmVzb3VyY2UsIGV4dGVuc2lvbik7CisK
KyAgICByZXR1cm4gV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcodXJsKTsKK30KKworV0tTdHJp
bmdSZWYgY3JlYXRlSW5qZWN0ZWRCdW5kbGVQYXRoKCkKK3sKKyAgICByZXR1cm4gV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoVEVTVF9JTkpFQ1RFRF9CVU5ETEVfUEFUSCk7Cit9CisKK1dL
VVJMUmVmIFVSTEZvck5vbkV4aXN0ZW50UmVzb3VyY2UoKQoreworICAgIHJldHVybiBXS1VSTENy
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiZmlsZTovLy9kb2VzLW5vdC1leGlzdC5odG1sIik7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFV0aWwKKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9lZmwvUGxhdGZvcm1XZWJWaWV3LmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvZWZsL1BsYXRmb3JtV2ViVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThj
MmE0YTVlYzdlNDU3MjM5M2MzOWQyMGM3NDE3OTgzMGNiYmYwYgotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZWZsL1BsYXRmb3JtV2ViVmlldy5jcHAKQEAgLTAsMCArMSw3
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZp
ZXcuaCIKKworI2luY2x1ZGUgIldlYktpdDIvV0tBUElDYXN0LmgiCisjaW5jbHVkZSA8RWNvcmVf
RXZhcy5oPgorCitleHRlcm4gYm9vbCB1c2VYMTFXaW5kb3c7CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIEVjb3JlX0V2YXMq
IGluaXRFY29yZUV2YXMoKQoreworICAgIEFTU0VSVChlY29yZV9ldmFzX2luaXQoKSk7CisKKyAg
ICBFY29yZV9FdmFzKiBlY29yZUV2YXM7CisKKyAgICBpZiAodXNlWDExV2luZG93KQorICAgICAg
ICBlY29yZUV2YXMgPSBlY29yZV9ldmFzX25ldygwLCAwLCAwLCA4MDAsIDYwMCwgMCk7CisgICAg
ZWxzZQorICAgICAgICBlY29yZUV2YXMgPSBlY29yZV9ldmFzX2J1ZmZlcl9uZXcoODAwLCA2MDAp
OworCisgICAgQVNTRVJUKGVjb3JlRXZhcyk7CisKKyAgICBlY29yZV9ldmFzX3Nob3coZWNvcmVF
dmFzKTsKKworICAgIHJldHVybiBlY29yZUV2YXM7Cit9CisKK1BsYXRmb3JtV2ViVmlldzo6UGxh
dGZvcm1XZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdl
R3JvdXBSZWYpCit7CisgICAgbV93aW5kb3cgPSBpbml0RWNvcmVFdmFzKCk7CisgICAgRXZhcyog
ZXZhcyA9IGVjb3JlX2V2YXNfZ2V0KG1fd2luZG93KTsKKyAgICBtX3ZpZXcgPSB0b0ltcGwoV0tW
aWV3Q3JlYXRlKGV2YXMsIGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZikpOworfQorCitQbGF0Zm9y
bVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcoKQoreworICAgIGV2YXNfb2JqZWN0X2RlbChtX3Zp
ZXcpOworICAgIGVjb3JlX2V2YXNfZnJlZShtX3dpbmRvdyk7CisgICAgZWNvcmVfZXZhc19zaHV0
ZG93bigpOworfQorCitXS1BhZ2VSZWYgUGxhdGZvcm1XZWJWaWV3OjpwYWdlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gV0tWaWV3R2V0UGFnZSh0b0FQSShtX3ZpZXcpKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9lZmwv
bWFpbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2VmbC9tYWluLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
Nzk0YWRiZDY0Njk0OTU4ZmNjYzgwYWQxOThmYzlhMjg5NGE3NzgwCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9lZmwvbWFpbi5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0c0NvbnRyb2xsZXIuaCIKKyNp
bmNsdWRlIDxFY29yZS5oPgorI2luY2x1ZGUgPEVpbmEuaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4K
KworYm9vbCB1c2VYMTFXaW5kb3cgPSBmYWxzZTsKKworc3RhdGljIGJvb2wgcGFyc2VBcmd1bWVu
dHMoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIGludCByZXQgPSAwOworCisgICAgc3Rh
dGljIGNvbnN0IG9wdGlvbiBvcHRpb25zW10gPSB7CisgICAgICAgIHsidXNlWDExV2luZG93Iiwg
bm9fYXJndW1lbnQsICZyZXQsIDF9LAorICAgICAgICB7MCwgMCwgMCwgMH0KKyAgICB9OworCisg
ICAgd2hpbGUgKGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICIiLCBvcHRpb25zLCAwKSAhPSAtMSkg
eyB9CisKKyAgICByZXR1cm4gcmV0OworfQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFy
Z3YpCit7CisgICAgaWYgKCFlaW5hX2luaXQoKSkKKyAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVS
RTsKKworICAgIGlmICghZWNvcmVfaW5pdCgpKQorICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJF
OworCisgICAgdXNlWDExV2luZG93ID0gcGFyc2VBcmd1bWVudHMoYXJnYywgYXJndik7CisKKyAg
ICBpbnQgcmV0ID0gVGVzdFdlYktpdEFQSTo6VGVzdHNDb250cm9sbGVyOjpzaGFyZWQoKS5ydW4o
YXJnYywgYXJndikgPyBFWElUX1NVQ0NFU1MgOiBFWElUX0ZBSUxVUkU7CisKKyAgICBlY29yZV9z
aHV0ZG93bigpOworICAgIGVpbmFfc2h1dGRvd24oKTsKKworICAgIHJldHVybiByZXQ7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152513</attachid>
            <date>2012-07-16 05:06:36 -0700</date>
            <delta_ts>2012-07-18 07:05:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90671-20120716150847.patch</filename>
            <type>text/plain</type>
            <size>22653</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyNzA0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTJmZjkxODhhOGM1ODMwODE1NDhkNWYzZDkxODVjMTQy
YWUxZDM5Mi4uNDJkNGU0NzYyM2U2ZjFlMGU3NmJkZjJmMDVmYjFhYmVhN2E0YTExOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQw
IEBACisyMDEyLTA3LTEyICBUaGlhZ28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NA
aW50ZWwuY29tPgorCisgICAgICAgIFtDTWFrZV1bRUZMXSBCdWlsZCBhbmQgcnVuIFRlc3RXZWJL
aXRBUEkgdW5pdCB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTA2NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIHBhdGNoIGVuYWJsZXMgYWxtb3N0IGZvciBmcmVlIGEgc2lnbmlmaWNhbnQg
YW1vdW50IG9mIHRlc3QgZm9yIHRoZQorICAgICAgICBXZWJLaXQgQyBBUEksIFdURiBhbmQgS1VS
TC4gSXQgbWFrZXMgZWFzeSBmb3IgQ01ha2UgYmFzZWQgcG9ydHMgdG8KKyAgICAgICAgZW5hYmxl
IFRlc3RXZWJLaXRBUEkgc2luY2UgdGhlIG1pc3NpbmcgYml0cyB0byBpbXBsZW1lbnQgYXJlCisg
ICAgICAgIHJlbGF0aXZlbHkgc2ltcGxlLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dDogQWRkZWQuCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9QbGF0Zm9ybUVmbC5jbWFrZTogQWRkZWQuCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9QbGF0Zm9ybVdlYlZpZXcuaDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2VmbC9J
bmplY3RlZEJ1bmRsZUNvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRB
UEkpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6SW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyOjpw
bGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZWZsL1BsYXRmb3Jt
VXRpbGl0aWVzLmNwcDogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJKToKKyAgICAgICAg
KFV0aWwpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVwKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0aWw6
OmNyZWF0ZVVSTEZvclJlc291cmNlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNy
ZWF0ZUluamVjdGVkQnVuZGxlUGF0aCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpVdGlsOjpV
UkxGb3JOb25FeGlzdGVudFJlc291cmNlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2VmbC9Q
bGF0Zm9ybVdlYlZpZXcuY3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEkpOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6aW5pdEVjb3JlRXZhcyk6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OlBsYXRmb3JtV2ViVmlldyk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcpOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6UGxhdGZvcm1XZWJWaWV3OjpwYWdlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL2VmbC9tYWluLmNwcDogQWRkZWQuCisgICAgICAgIChwYXJzZUFyZ3VtZW50cyk6CisgICAg
ICAgIChtYWluKToKKwogMjAxMi0wNy0xNSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNh
bXN1bmcuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEFkZCBFRkxXZWJLaXQyUHVibGljQVBJ
LCBFRkxXZWJLaXQyUGxhdGZvcm1TcGVjaWZpYyB0byB3YXRjaCBsaXN0LgpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9DTWFrZUxpc3RzLnR4dAppbmRleCBlOWZjN2Uz
YmRkMTgzODlkZDMxOTUxYTE3ZTY2MGM2N2JjNDZlNmZkLi4yZjJiNjBjZDNmODAwYWE2ZmE1OGQy
ZDU3NjI0YzlkMjBkMmFhYzY4IDEwMDY0NAotLS0gYS9Ub29scy9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Ub29scy9DTWFrZUxpc3RzLnR4dApAQCAtMTQsMyArMTQsNyBAQCBJRiAoIiR7UE9SVH0iIFNU
UkVRVUFMICJFZmwiKQogRUxTRUlGICgiJHtQT1JUfSIgU1RSRVFVQUwgIldpbkNFIikKICAgICBB
RERfU1VCRElSRUNUT1JZKFdpbkNFTGF1bmNoZXIpCiBFTkRJRigpCisKK0lGIChFTkFCTEVfV0VC
S0lUMiBBTkQgRU5BQkxFX0FQSV9URVNUUykKKyAgICBBRERfU1VCRElSRUNUT1JZKFRlc3RXZWJL
aXRBUEkpCitFTkRJRigpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlz
dHMudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
YTc1MGY3MGQ3ODQ1NGMyNzZiNzdhMDg0M2Y5ZTFiNzAyODI1OTJjCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dApAQCAtMCwwICsxLDEzNSBAQAor
U0VUKFRFU1RXRUJLSVRBUElfRElSICIke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSSIpCisKK0lO
Q0xVREVfRElSRUNUT1JJRVMoJHtDTUFLRV9CSU5BUllfRElSfQorICAgICR7VEVTVFdFQktJVEFQ
SV9ESVJ9CisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UKKyAgICAke0RFUklWRURfU09V
UkNFU19XRUJLSVQyX0RJUn0vaW5jbHVkZQorICAgICR7SkFWQVNDUklQVENPUkVfRElSfQorICAg
ICR7SkFWQVNDUklQVENPUkVfRElSfS9BUEkKKyAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vRm9y
d2FyZGluZ0hlYWRlcnMKKyAgICAke1RISVJEUEFSVFlfRElSfS9ndGVzdC9pbmNsdWRlCisgICAg
JHtXRUJDT1JFX0RJUn0vZWRpdGluZworICAgICR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtCisgICAg
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MKKyAgICAke1dFQkNPUkVfRElSfS9wbGF0
Zm9ybS90ZXh0CisgICAgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yaworICAgICR7V0VC
S0lUMl9ESVJ9L1NoYXJlZAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYworICAgICR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2VzcworICAgICR7V1RGX0RJUn0KKykKKworV0VCS0lUX0lOQ0xV
REVfQ09ORklHX0ZJTEVTX0lGX0VYSVNUUygpCisKK0FERF9MSUJSQVJZKFRlc3RXZWJLaXRBUElJ
bmplY3RlZEJ1bmRsZSBTSEFSRUQKKyAgICAke2J1bmRsZV9oYXJuZXNzX1NPVVJDRVN9CisgICAg
JHtURVNUV0VCS0lUQVBJX0RJUn0vSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyLmNwcAorICAgICR7
VEVTVFdFQktJVEFQSV9ESVJ9L0luamVjdGVkQnVuZGxlTWFpbi5jcHAKKyAgICAke1RFU1RXRUJL
SVRBUElfRElSfS9QbGF0Zm9ybVV0aWxpdGllcy5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElS
fS9UZXN0cy9XZWJLaXQyL0NhbkhhbmRsZVJlcXVlc3RfQnVuZGxlLmNwcAorICAgICR7VEVTVFdF
QktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvRG9jdW1lbnRTdGFydFVzZXJTY3JpcHRBbGVydENy
YXNoX0J1bmRsZS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL0RP
TVdpbmRvd0V4dGVuc2lvbkJhc2ljX0J1bmRsZS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElS
fS9UZXN0cy9XZWJLaXQyL0RPTVdpbmRvd0V4dGVuc2lvbk5vQ2FjaGVfQnVuZGxlLmNwcAorICAg
ICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvR2V0SW5qZWN0ZWRCdW5kbGVJbml0
aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tfQnVuZGxlLmNwcAorICAgICR7VEVTVFdFQktJVEFQ
SV9ESVJ9L1Rlc3RzL1dlYktpdDIvSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcAor
ICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvSW5qZWN0ZWRCdW5kbGVCYXNp
Y19CdW5kbGUuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9Jbmpl
Y3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFja1dpbnNfQnVuZGxlLmNwcAor
ICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvTG9hZENhbmNlbGVkTm9TZXJ2
ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9U
ZXN0cy9XZWJLaXQyL01vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcAorICAgICR7VEVTVFdF
QktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
X0J1bmRsZS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL05ld0Zp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZhaWxzX0J1bmRsZS5jcHAKKyAgICAke1RFU1RXRUJL
SVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZv
ckltYWdlc19CdW5kbGUuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0
Mi9OZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXNfQnVuZGxlLmNwcAorICAgICR7
VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvUGFyZW50RnJhbWVfQnVuZGxlLmNwcAor
ICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvUmVzcG9uc2l2ZW5lc3NUaW1l
ckRvZXNudEZpcmVFYXJseV9CdW5kbGUuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVz
dHMvV2ViS2l0Mi9TaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbV9CdW5kbGUuY3BwCisgICAg
JHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9Vc2VyTWVzc2FnZV9CdW5kbGUuY3Bw
CisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9XaWxsU2VuZFN1Ym1pdEV2
ZW50X0J1bmRsZS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL1dL
Q29ubmVjdGlvbl9CdW5kbGUuY3BwCispCisKK0FERF9ERVBFTkRFTkNJRVMoVGVzdFdlYktpdEFQ
SUluamVjdGVkQnVuZGxlICR7V2ViS2l0Ml9MSUJSQVJZX05BTUV9ICR7Rm9yd2FyZGluZ0hlYWRl
cnNGb3JUZXN0V2ViS2l0QVBJX05BTUV9ICR7Rm9yd2FyZGluZ05ldHdvcmtIZWFkZXJzRm9yVGVz
dFdlYktpdEFQSV9OQU1FfSkKKworR0VUX1BST1BFUlRZKFRlc3RXZWJLaXRBUElJbmplY3RlZEJ1
bmRsZV9QQVRIIFRBUkdFVCBUZXN0V2ViS2l0QVBJSW5qZWN0ZWRCdW5kbGUgUFJPUEVSVFkgTE9D
QVRJT04pCisKK0FERF9ERUZJTklUSU9OUygtREdURVNUX0xJTktFRF9BU19TSEFSRURfTElCUkFS
WT0xCisgICAgLURURVNUX1dFQktJVDJfUkVTT1VSQ0VTX0RJUj1cIiR7VEVTVFdFQktJVEFQSV9E
SVJ9L1Rlc3RzL1dlYktpdDJcIgorICAgIC1EVEVTVF9JTkpFQ1RFRF9CVU5ETEVfUEFUSD1cIiR7
VGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxlX1BBVEh9XCIKKykKKworU0VUKHRlc3Rfd3RmX0xJ
QlJBUklFUworICAgICR7V1RGX0xJQlJBUllfTkFNRX0KKyAgICBndGVzdAorKQorCitBRERfRVhF
Q1VUQUJMRSh0ZXN0X3d0ZgorICAgICR7dGVzdF9tYWluX1NPVVJDRVN9CisgICAgJHtURVNUV0VC
S0lUQVBJX0RJUn0vVGVzdHNDb250cm9sbGVyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9
L1Rlc3RzL1dURi9DaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwCisgICAgJHtURVNUV0VC
S0lUQVBJX0RJUn0vVGVzdHMvV1RGL0Z1bmN0aW9uYWwuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJ
X0RJUn0vVGVzdHMvV1RGL0hhc2hNYXAuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVz
dHMvV1RGL01ldGFBbGxvY2F0b3IuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMv
V1RGL1JlZEJsYWNrVHJlZS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYv
U3RyaW5nQnVpbGRlci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvU3Ry
aW5nT3BlcmF0b3JzLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9UZW1w
b3JhcnlDaGFuZ2UuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL1ZlY3Rv
ckJhc2ljLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9WZWN0b3IuY3Bw
CisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL1ZlY3RvclJldmVyc2UuY3BwCisp
CisKK1RBUkdFVF9MSU5LX0xJQlJBUklFUyh0ZXN0X3d0ZiAke3Rlc3Rfd3RmX0xJQlJBUklFU30p
CitBRERfREVQRU5ERU5DSUVTKHRlc3Rfd3RmICR7Rm9yd2FyZGluZ0hlYWRlcnNGb3JUZXN0V2Vi
S2l0QVBJX05BTUV9ICR7Rm9yd2FyZGluZ05ldHdvcmtIZWFkZXJzRm9yVGVzdFdlYktpdEFQSV9O
QU1FfSkKK0FERF9URVNUKHRlc3Rfd3RmICR7Q01BS0VfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZ
fS90ZXN0X3d0ZikKK1NFVF9URVNUU19QUk9QRVJUSUVTKHRlc3Rfd3RmIFBST1BFUlRJRVMgVElN
RU9VVCA2MCkKKworU0VUKHRlc3Rfd2ViY29yZV9MSUJSQVJJRVMKKyAgICAke1dURl9MSUJSQVJZ
X05BTUV9CisgICAgJHtXZWJDb3JlX0xJQlJBUllfTkFNRX0KKyAgICBndGVzdAorKQorCitBRERf
RVhFQ1VUQUJMRSh0ZXN0X3dlYmNvcmUKKyAgICAke3Rlc3RfbWFpbl9TT1VSQ0VTfQorICAgICR7
VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzQ29udHJvbGxlci5jcHAKKyAgICAke1RFU1RXRUJLSVRB
UElfRElSfS9UZXN0cy9XZWJDb3JlL0tVUkwuY3BwCispCisKK1RBUkdFVF9MSU5LX0xJQlJBUklF
Uyh0ZXN0X3dlYmNvcmUgJHt0ZXN0X3dlYmNvcmVfTElCUkFSSUVTfSkKK0FERF9ERVBFTkRFTkNJ
RVModGVzdF93ZWJjb3JlICR7Rm9yd2FyZGluZ0hlYWRlcnNGb3JUZXN0V2ViS2l0QVBJX05BTUV9
ICR7Rm9yd2FyZGluZ05ldHdvcmtIZWFkZXJzRm9yVGVzdFdlYktpdEFQSV9OQU1FfSkKK0FERF9U
RVNUKHRlc3Rfd2ViY29yZSAke0NNQUtFX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWX0vdGVzdF93
ZWJjb3JlKQorU0VUX1RFU1RTX1BST1BFUlRJRVModGVzdF93ZWJjb3JlIFBST1BFUlRJRVMgVElN
RU9VVCA2MCkKKworQUREX0xJQlJBUlkoVGVzdFdlYktpdEFQSUJhc2UKKyAgICAke3Rlc3RfbWFp
bl9TT1VSQ0VTfQorICAgICR7d2Via2l0Ml9hcGlfaGFybmVzc19TT1VSQ0VTfQorICAgICR7VEVT
VFdFQktJVEFQSV9ESVJ9L0phdmFTY3JpcHRUZXN0LmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9E
SVJ9L1BsYXRmb3JtVXRpbGl0aWVzLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3Rz
Q29udHJvbGxlci5jcHAKKykKKworQUREX0RFUEVOREVOQ0lFUyhUZXN0V2ViS2l0QVBJQmFzZSAk
e1dlYktpdDJfTElCUkFSWV9OQU1FfSAke0ZvcndhcmRpbmdIZWFkZXJzRm9yVGVzdFdlYktpdEFQ
SV9OQU1FfSAke0ZvcndhcmRpbmdOZXR3b3JrSGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRX0p
CisKK1NFVCh0ZXN0X3dlYmtpdDJfYXBpX0xJQlJBUklFUworICAgIFRlc3RXZWJLaXRBUElCYXNl
CisgICAgJHtXVEZfTElCUkFSWV9OQU1FfQorICAgICR7SmF2YVNjcmlwdENvcmVfTElCUkFSWV9O
QU1FfQorICAgICR7V2ViS2l0Ml9MSUJSQVJZX05BTUV9CisgICAgZ3Rlc3QKKykKKworRk9SRUFD
SCh0ZXN0TmFtZSAke3Rlc3Rfd2Via2l0Ml9hcGlfQklOQVJJRVN9KQorICAgIEFERF9FWEVDVVRB
QkxFKHRlc3Rfd2Via2l0Ml9hcGlfJHt0ZXN0TmFtZX0gJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVz
dHMvV2ViS2l0Mi8ke3Rlc3ROYW1lfS5jcHApCisgICAgQUREX1RFU1QodGVzdF93ZWJraXQyX2Fw
aV8ke3Rlc3ROYW1lfSAke0NNQUtFX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWX0vdGVzdF93ZWJr
aXQyX2FwaV8ke3Rlc3ROYW1lfSkKKyAgICBTRVRfVEVTVFNfUFJPUEVSVElFUyh0ZXN0X3dlYmtp
dDJfYXBpXyR7dGVzdE5hbWV9IFBST1BFUlRJRVMgVElNRU9VVCA2MCkKKyAgICBUQVJHRVRfTElO
S19MSUJSQVJJRVModGVzdF93ZWJraXQyX2FwaV8ke3Rlc3ROYW1lfSAke3Rlc3Rfd2Via2l0Ml9h
cGlfTElCUkFSSUVTfSkKK0VOREZPUkVBQ0goKQorCisjIFdlIGRvbid0IHJ1biB0ZXN0cyB0aGF0
IGFyZSBleHBlY3RlZCB0byBmYWlsLiBXZSBjb3VsZCB1c2UgdGhlIFdJTExfRkFJTAorIyBwcm9w
ZXJ0eSwgYnV0IGl0IHJlcG9ydHMgZmFpbHVyZSB3aGVuIHRoZSB0ZXN0IGNyYXNoZXMgb3IgdGlt
ZW91dHMgYW5kIHdvdWxkCisjIG1ha2UgdGhlIGJvdCByZWQuCisKK0ZPUkVBQ0godGVzdE5hbWUg
JHt0ZXN0X3dlYmtpdDJfYXBpX2ZhaWxfQklOQVJJRVN9KQorICAgIEFERF9FWEVDVVRBQkxFKHRl
c3Rfd2Via2l0Ml9hcGlfZmFpbF8ke3Rlc3ROYW1lfSAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0
cy9XZWJLaXQyLyR7dGVzdE5hbWV9LmNwcCkKKyAgICBUQVJHRVRfTElOS19MSUJSQVJJRVModGVz
dF93ZWJraXQyX2FwaV9mYWlsXyR7dGVzdE5hbWV9ICR7dGVzdF93ZWJraXQyX2FwaV9MSUJSQVJJ
RVN9KQorRU5ERk9SRUFDSCgpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRm
b3JtRWZsLmNtYWtlIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUVmbC5jbWFrZQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jMzlkZDA5N2M2OGU4ZTI4MGY2NjQyOTgyMTQwZTE5ZDc3NzQ1OWM4Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMCww
ICsxLDkyIEBACitBRERfQ1VTVE9NX1RBUkdFVChmb3J3YXJkaW5nLWhlYWRlcnNFZmxGb3JUZXN0
V2ViS2l0QVBJCisgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0v
U2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgJHtURVNUV0VCS0lUQVBJX0RJ
Un0gJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L2luY2x1ZGUgZWZsCispCitTRVQoRm9y
d2FyZGluZ0hlYWRlcnNGb3JUZXN0V2ViS2l0QVBJX05BTUUgZm9yd2FyZGluZy1oZWFkZXJzRWZs
Rm9yVGVzdFdlYktpdEFQSSkKKworQUREX0NVU1RPTV9UQVJHRVQoZm9yd2FyZGluZy1oZWFkZXJz
U291cEZvclRlc3RXZWJLaXRBUEkKKyAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dF
QktJVDJfRElSfS9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbCAke1RFU1RX
RUJLSVRBUElfRElSfSAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vaW5jbHVkZSBzb3Vw
CispCitTRVQoRm9yd2FyZGluZ05ldHdvcmtIZWFkZXJzRm9yVGVzdFdlYktpdEFQSV9OQU1FIGZv
cndhcmRpbmctaGVhZGVyc1NvdXBGb3JUZXN0V2ViS2l0QVBJKQorCitJTkNMVURFX0RJUkVDVE9S
SUVTKCR7TElCU09VUDI0X0lOQ0xVREVfRElSU30KKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nl
c3MvQVBJL0Mvc291cAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9lZmwKKyAg
ICAke0VDT1JFX0lOQ0xVREVfRElSU30KKyAgICAke0VJTkFfSU5DTFVERV9ESVJTfQorICAgICR7
RVZBU19JTkNMVURFX0RJUlN9CispCisKK1NFVCh0ZXN0X21haW5fU09VUkNFUworICAgICR7VEVT
VFdFQktJVEFQSV9ESVJ9L2VmbC9tYWluLmNwcAorKQorCitTRVQoYnVuZGxlX2hhcm5lc3NfU09V
UkNFUworICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L2VmbC9JbmplY3RlZEJ1bmRsZUNvbnRyb2xs
ZXIuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vZWZsL1BsYXRmb3JtVXRpbGl0aWVzLmNw
cAorKQorCitTRVQod2Via2l0Ml9hcGlfaGFybmVzc19TT1VSQ0VTCisgICAgJHtURVNUV0VCS0lU
QVBJX0RJUn0vZWZsL1BsYXRmb3JtVXRpbGl0aWVzLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9E
SVJ9L2VmbC9QbGF0Zm9ybVdlYlZpZXcuY3BwCispCisKKyMgVGhlIGxpc3QgYmVsbG93IHdvcmtz
IGxpa2UgYSB0ZXN0IGV4cGVjdGF0aW9ucy4gVGVzdHMgYXQgdGhlCisjIHRlc3Rfd2Via2l0Ml9h
cGlfQklOQVJJRVMgbGlzdCBhcmUgYWRkZWQgdG8gdGhlIHRlc3QgcnVubmVyLgorIyBUZXN0cyBh
dCB0ZXN0X3dlYmtpdDJfYXBpX2ZhaWxfQklOQVJJRVMgYXJlIGNvbXBpbGVkIGFuZCBzdWZmaXhl
ZAorIyB3aXRoIGZhaWwuIFRoaXMgd2lsbCBtYWtlIGl0IGVhc2llciB0byBkZWJ1ZyBpbiBjYXNl
IHNvbWUgbmljZQorIyBkZXZlbG9wZXIgaXMgd2lsbGluZyB0byBmaXggaXQuCisjCisjIE1ha2Ug
c3VyZSB0aGF0IHRoZSB0ZXN0cyBhcmUgcGFzc2luZyBvbiBib3RoIERlYnVnIGFuZAorIyBSZWxl
YXNlIGJ1aWxkcyBiZWZvcmUgYWRkaW5nIGl0IHRvIHRoZSBsaXN0LgorCitTRVQodGVzdF93ZWJr
aXQyX2FwaV9CSU5BUklFUworICAgIENvb2tpZU1hbmFnZXIKKyAgICBEb2N1bWVudFN0YXJ0VXNl
clNjcmlwdEFsZXJ0Q3Jhc2gKKyAgICBET01XaW5kb3dFeHRlbnNpb25Ob0NhY2hlCisgICAgRXZh
bHVhdGVKYXZhU2NyaXB0CisgICAgRmFpbGVkTG9hZAorICAgIEZpbmQKKyAgICBGb3JjZVJlcGFp
bnQKKyAgICBGcmFtZU1JTUVUeXBlSFRNTAorICAgIEZyYW1lTUlNRVR5cGVQTkcKKyAgICBHZXRJ
bmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxsYmFjaworICAgIEluamVjdGVk
QnVuZGxlQmFzaWMKKyAgICBJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGFDYWxs
YmFja1dpbnMKKyAgICBMb2FkQWx0ZXJuYXRlSFRNTFN0cmluZ1dpdGhOb25EaXJlY3RvcnlVUkwK
KyAgICBMb2FkQ2FuY2VsZWROb1NlcnZlclJlZGlyZWN0Q2FsbGJhY2sKKyAgICBOZXdGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXQKKyAgICBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRG
YWlscworICAgIFBhZ2VMb2FkQmFzaWMKKyAgICBQYWdlTG9hZERpZENoYW5nZUxvY2F0aW9uV2l0
aGluUGFnZUZvckZyYW1lCisgICAgUGFyZW50RnJhbWUKKyAgICBQcmV2ZW50RW1wdHlVc2VyQWdl
bnQKKyAgICBQcml2YXRlQnJvd3NpbmdQdXNoU3RhdGVOb0hpc3RvcnlDYWxsYmFjaworICAgIFdp
bGxTZW5kU3VibWl0RXZlbnQKKyAgICBXS0Nvbm5lY3Rpb24KKyAgICBXS1N0cmluZworICAgIFdL
U3RyaW5nSlNTdHJpbmcKKykKKworU0VUKHRlc3Rfd2Via2l0Ml9hcGlfZmFpbF9CSU5BUklFUwor
ICAgIENhbkhhbmRsZVJlcXVlc3QKKyAgICBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRG
cmFtZXMKKyAgICBSZXN0b3JlU2Vzc2lvblN0YXRlQ29udGFpbmluZ0Zvcm1EYXRhCisgICAgRG93
bmxvYWREZWNpZGVEZXN0aW5hdGlvbkNyYXNoCisgICAgTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0Rm9ySW1hZ2VzCisgICAgV0tQYWdlR2V0U2NhbGVGYWN0b3JOb3RaZXJvCisgICAgRE9N
V2luZG93RXh0ZW5zaW9uQmFzaWMKKyAgICBTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbQor
KQorCisjIFRlc3RzIGRpc2FibGVkIGJlY2F1c2Ugb2YgbWlzc2luZyBmZWF0dXJlcyBvbiB0aGUg
dGVzdCBoYXJuZXNzOgorIworIyAgIEFib3V0QmxhbmtMb2FkCisjICAgSGl0VGVzdFJlc3VsdE5v
ZGVIYW5kbGUKKyMgICBNb3VzZU1vdmVBZnRlckNyYXNoCisjICAgUmVzcG9uc2l2ZW5lc3NUaW1l
ckRvZXNudEZpcmVFYXJseQorIyAgIFNwYWNlYmFyU2Nyb2xsaW5nCisjICAgV0tQcmVmZXJlbmNl
cworIworIyBGbGFreSB0ZXN0LCBmYWlscyBvbiBSZWxlYXNlIGJ1dCBwYXNzZXMgb24gRGVidWc6
CisjCisjICAgVXNlck1lc3NhZ2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxh
dGZvcm1XZWJWaWV3LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oCmlu
ZGV4IGNmMDEzMmU0YTVkNDY1MzA0Yjk4YTJhOTc1MDNkY2Q3Yjk1ZTE2OTQuLjY1M2ExN2NjYTI5
NmUzY2U4N2RiZmEzYTczYTcyMTIxNjA0NjBlZDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9y
bVdlYlZpZXcuaApAQCAtNDYsNiArNDYsMTEgQEAgdHlwZWRlZiBIV05EIFBsYXRmb3JtV2luZG93
OwogI2VsaWYgUExBVEZPUk0oR1RLKQogdHlwZWRlZiBXS1ZpZXdSZWYgUGxhdGZvcm1XS1ZpZXc7
CiB0eXBlZGVmIEd0a1dpZGdldCAqUGxhdGZvcm1XaW5kb3c7CisjZWxpZiBQTEFURk9STShFRkwp
Cit0eXBlZGVmIHN0cnVjdCBfRXZhc19PYmplY3QgRXZhc19PYmplY3Q7Cit0eXBlZGVmIHN0cnVj
dCBfRWNvcmVfRXZhcyBFY29yZV9FdmFzOwordHlwZWRlZiBFdmFzX09iamVjdCogUGxhdGZvcm1X
S1ZpZXc7Cit0eXBlZGVmIEVjb3JlX0V2YXMqIFBsYXRmb3JtV2luZG93OwogI2VuZGlmCiAKIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Y29uZmlnLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvbmZpZy5oCmluZGV4IDRmZmNiOGJjNDdh
ZmNjOGU1Njk0OWNjN2I0NjA4NWFmOTgyMGQ3ZjMuLmUzYzJlYjAyZGJjODM3YTllYTVlODVhNWUw
NjQwYmJjOWQ2Mjk2ZTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29uZmlnLmgK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb25maWcuaApAQCAtMjMsNiArMjMsMTIgQEAKICAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisjaWYgZGVmaW5lZChIQVZF
X0NPTkZJR19IKSAmJiBIQVZFX0NPTkZJR19ICisjaWZkZWYgQlVJTERJTkdfV0lUSF9DTUFLRQor
I2luY2x1ZGUgImNtYWtlY29uZmlnLmgiCisjZW5kaWYKKyNlbmRpZgorCiAjaW5jbHVkZSA8d3Rm
L1BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8d3RmL0V4cG9ydE1hY3Jvcy5oPgogI2lmIFVTRShKU0Mp
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2VmbC9JbmplY3RlZEJ1bmRsZUNvbnRy
b2xsZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9lZmwvSW5qZWN0ZWRCdW5kbGVDb250cm9s
bGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41ZDU1MDAyY2NiY2YxZDI1ZjZjYzgzYmRlZjRiYjlmYzA5ZDZi
M2U1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9lZmwvSW5qZWN0ZWRC
dW5kbGVDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJJbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXIuaCIKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgeworCit2b2lkIEluamVjdGVkQnVuZGxlQ29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXpl
KCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9lZmwvUGxhdGZvcm1VdGlsaXRpZXMuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9lZmwvUGxhdGZvcm1VdGlsaXRpZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2NzQ1NDU5ZjM3
OWYzZmVkZWZiMjE5YzJjMTJmNzg4Yzc0ZjUzZTEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL2VmbC9QbGF0Zm9ybVV0aWxpdGllcy5jcHAKQEAgLTAsMCArMSw2OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRm
b3JtVXRpbGl0aWVzLmgiCisKKyNpbmNsdWRlIDxFY29yZS5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+
CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworbmFt
ZXNwYWNlIFV0aWwgeworCit2b2lkIHJ1bihib29sKiBkb25lKQoreworICAgIHdoaWxlICghKmRv
bmUpCisgICAgICAgIGVjb3JlX21haW5fbG9vcF9pdGVyYXRlKCk7Cit9CisKK3ZvaWQgc2xlZXAo
ZG91YmxlIHNlY29uZHMpCit7CisgICAgc2xlZXAoc2Vjb25kcyk7Cit9CisKK1dLVVJMUmVmIGNy
ZWF0ZVVSTEZvclJlc291cmNlKGNvbnN0IGNoYXIqIHJlc291cmNlLCBjb25zdCBjaGFyKiBleHRl
bnNpb24pCit7CisgICAgY2hhciB1cmxbUEFUSF9NQVhdOworCisgICAgc25wcmludGYodXJsLCBz
aXplb2YodXJsKSwgImZpbGU6Ly8lcy8lcy4lcyIsIFRFU1RfV0VCS0lUMl9SRVNPVVJDRVNfRElS
LCByZXNvdXJjZSwgZXh0ZW5zaW9uKTsKKworICAgIHJldHVybiBXS1VSTENyZWF0ZVdpdGhVVEY4
Q1N0cmluZyh1cmwpOworfQorCitXS1N0cmluZ1JlZiBjcmVhdGVJbmplY3RlZEJ1bmRsZVBhdGgo
KQoreworICAgIHJldHVybiBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhURVNUX0lOSkVD
VEVEX0JVTkRMRV9QQVRIKTsKK30KKworV0tVUkxSZWYgVVJMRm9yTm9uRXhpc3RlbnRSZXNvdXJj
ZSgpCit7CisgICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJmaWxlOi8vL2Rv
ZXMtbm90LWV4aXN0Lmh0bWwiKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVXRpbAorCit9IC8vIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2Vm
bC9QbGF0Zm9ybVdlYlZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9lZmwvUGxhdGZvcm1X
ZWJWaWV3LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OGMyYTRhNWVjN2U0NTcyMzkzYzM5ZDIwYzc0MTc5ODMw
Y2JiZjBiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9lZmwvUGxhdGZv
cm1XZWJWaWV3LmNwcApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3Jh
dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorCisjaW5jbHVkZSAiV2ViS2l0Mi9XS0FQ
SUNhc3QuaCIKKyNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CisKK2V4dGVybiBib29sIHVzZVgxMVdp
bmRvdzsKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgeworCitzdGF0aWMgRWNvcmVfRXZhcyogaW5pdEVjb3JlRXZhcygpCit7CisgICAgQVNTRVJU
KGVjb3JlX2V2YXNfaW5pdCgpKTsKKworICAgIEVjb3JlX0V2YXMqIGVjb3JlRXZhczsKKworICAg
IGlmICh1c2VYMTFXaW5kb3cpCisgICAgICAgIGVjb3JlRXZhcyA9IGVjb3JlX2V2YXNfbmV3KDAs
IDAsIDAsIDgwMCwgNjAwLCAwKTsKKyAgICBlbHNlCisgICAgICAgIGVjb3JlRXZhcyA9IGVjb3Jl
X2V2YXNfYnVmZmVyX25ldyg4MDAsIDYwMCk7CisKKyAgICBBU1NFUlQoZWNvcmVFdmFzKTsKKwor
ICAgIGVjb3JlX2V2YXNfc2hvdyhlY29yZUV2YXMpOworCisgICAgcmV0dXJuIGVjb3JlRXZhczsK
K30KKworUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tDb250ZXh0UmVmIGNvbnRl
eHRSZWYsIFdLUGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZikKK3sKKyAgICBtX3dpbmRvdyA9IGlu
aXRFY29yZUV2YXMoKTsKKyAgICBFdmFzKiBldmFzID0gZWNvcmVfZXZhc19nZXQobV93aW5kb3cp
OworICAgIG1fdmlldyA9IHRvSW1wbChXS1ZpZXdDcmVhdGUoZXZhcywgY29udGV4dFJlZiwgcGFn
ZUdyb3VwUmVmKSk7Cit9CisKK1BsYXRmb3JtV2ViVmlldzo6flBsYXRmb3JtV2ViVmlldygpCit7
CisgICAgZXZhc19vYmplY3RfZGVsKG1fdmlldyk7CisgICAgZWNvcmVfZXZhc19mcmVlKG1fd2lu
ZG93KTsKKyAgICBlY29yZV9ldmFzX3NodXRkb3duKCk7Cit9CisKK1dLUGFnZVJlZiBQbGF0Zm9y
bVdlYlZpZXc6OnBhZ2UoKSBjb25zdAoreworICAgIHJldHVybiBXS1ZpZXdHZXRQYWdlKHRvQVBJ
KG1fdmlldykpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL2VmbC9tYWluLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
ZWZsL21haW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE3OTRhZGJkNjQ2OTQ5NThmY2NjODBhZDE5OGZjOWEy
ODk0YTc3ODAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2VmbC9tYWlu
LmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcg
RWxlY3Ryb25pY3MKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlRlc3RzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgPEVjb3JlLmg+CisjaW5jbHVkZSA8RWlu
YS5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorCitib29sIHVzZVgxMVdpbmRvdyA9IGZhbHNlOwor
CitzdGF0aWMgYm9vbCBwYXJzZUFyZ3VtZW50cyhpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7Cisg
ICAgaW50IHJldCA9IDA7CisKKyAgICBzdGF0aWMgY29uc3Qgb3B0aW9uIG9wdGlvbnNbXSA9IHsK
KyAgICAgICAgeyJ1c2VYMTFXaW5kb3ciLCBub19hcmd1bWVudCwgJnJldCwgMX0sCisgICAgICAg
IHswLCAwLCAwLCAwfQorICAgIH07CisKKyAgICB3aGlsZSAoZ2V0b3B0X2xvbmcoYXJnYywgYXJn
diwgIiIsIG9wdGlvbnMsIDApICE9IC0xKSB7IH0KKworICAgIHJldHVybiByZXQ7Cit9CisKK2lu
dCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICBpZiAoIWVpbmFfaW5pdCgpKQor
ICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworCisgICAgaWYgKCFlY29yZV9pbml0KCkpCisg
ICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisKKyAgICB1c2VYMTFXaW5kb3cgPSBwYXJzZUFy
Z3VtZW50cyhhcmdjLCBhcmd2KTsKKworICAgIGludCByZXQgPSBUZXN0V2ViS2l0QVBJOjpUZXN0
c0NvbnRyb2xsZXI6OnNoYXJlZCgpLnJ1bihhcmdjLCBhcmd2KSA/IEVYSVRfU1VDQ0VTUyA6IEVY
SVRfRkFJTFVSRTsKKworICAgIGVjb3JlX3NodXRkb3duKCk7CisgICAgZWluYV9zaHV0ZG93bigp
OworCisgICAgcmV0dXJuIHJldDsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>153005</attachid>
            <date>2012-07-18 07:05:21 -0700</date>
            <delta_ts>2012-07-18 08:07:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90671-20120718170519.patch</filename>
            <type>text/plain</type>
            <size>22813</size>
            <attacher name="Thiago Marcos P. Santos">tmpsantos</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyOTQ3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWZjZDQxMmM4MTg3MDBmNGZjNThlNGNhMTJmYmUyOWU0
MjgwYzdkMy4uNTczYmRmNjBkNTQwZmE5NTNjZjAzNmQxN2EwMmYxNDRmYmJjNDIwYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQz
IEBACiAyMDEyLTA3LTE4ICBUaGlhZ28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NA
aW50ZWwuY29tPgogCisgICAgICAgIFtDTWFrZV1bRUZMXSBCdWlsZCBhbmQgcnVuIFRlc3RXZWJL
aXRBUEkgdW5pdCB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTA2NzEKKworICAgICAgICBSZXZpZXdlZCBieSBEYW5pZWwgQmF0ZXMuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBlbmFibGVzIGFsbW9zdCBmb3IgZnJlZSBhIHNpZ25pZmljYW50IGFt
b3VudCBvZiB0ZXN0IGZvciB0aGUKKyAgICAgICAgV2ViS2l0IEMgQVBJLCBXVEYgYW5kIEtVUkwu
IEl0IG1ha2VzIGVhc3kgZm9yIENNYWtlIGJhc2VkIHBvcnRzIHRvCisgICAgICAgIGVuYWJsZSBU
ZXN0V2ViS2l0QVBJIHNpbmNlIHRoZSBtaXNzaW5nIGJpdHMgdG8gaW1wbGVtZW50IGFyZQorICAg
ICAgICByZWxhdGl2ZWx5IHNpbXBsZS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQ6IEFkZGVkLgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvUGxhdGZvcm1FZmwuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvUGxhdGZvcm1XZWJWaWV3Lmg6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb25maWcu
aDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2VmbC9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXIu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEkpOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6SW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvZWZsL1BsYXRmb3JtVXRpbGl0aWVzLmNwcDogQWRkZWQuCisg
ICAgICAgIChUZXN0V2ViS2l0QVBJKToKKyAgICAgICAgKFV0aWwpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNsZWVw
KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZVVSTEZvclJlc291cmNlKToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUluamVjdGVkQnVuZGxlUGF0aCk6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpVdGlsOjpVUkxGb3JOb25FeGlzdGVudFJlc291cmNl
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2VmbC9QbGF0Zm9ybVdlYlZpZXcuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEkpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6aW5p
dEVjb3JlRXZhcyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6OlBs
YXRmb3JtV2ViVmlldyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpQbGF0Zm9ybVdlYlZpZXc6
On5QbGF0Zm9ybVdlYlZpZXcpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6UGxhdGZvcm1XZWJW
aWV3OjpwYWdlKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2VmbC9tYWluLmNwcDogQWRkZWQu
CisgICAgICAgIChjaGVja0ZvclVzZVgxMVdpbmRvd0FyZ3VtZW50KToKKyAgICAgICAgKG1haW4p
OgorCisyMDEyLTA3LTE4ICBUaGlhZ28gTWFyY29zIFAuIFNhbnRvcyAgPHRoaWFnby5zYW50b3NA
aW50ZWwuY29tPgorCiAgICAgICAgIFtDTWFrZV1bRUZMXSBCdWlsZGluZyBqc2MgY2F1c2VzIHJl
Y29uZmlndXJhdGlvbgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTEzODcKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ01ha2VMaXN0cy50eHQgYi9Ub29scy9D
TWFrZUxpc3RzLnR4dAppbmRleCBlOWZjN2UzYmRkMTgzODlkZDMxOTUxYTE3ZTY2MGM2N2JjNDZl
NmZkLi4yZjJiNjBjZDNmODAwYWE2ZmE1OGQyZDU3NjI0YzlkMjBkMmFhYzY4IDEwMDY0NAotLS0g
YS9Ub29scy9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9DTWFrZUxpc3RzLnR4dApAQCAtMTQs
MyArMTQsNyBAQCBJRiAoIiR7UE9SVH0iIFNUUkVRVUFMICJFZmwiKQogRUxTRUlGICgiJHtQT1JU
fSIgU1RSRVFVQUwgIldpbkNFIikKICAgICBBRERfU1VCRElSRUNUT1JZKFdpbkNFTGF1bmNoZXIp
CiBFTkRJRigpCisKK0lGIChFTkFCTEVfV0VCS0lUMiBBTkQgRU5BQkxFX0FQSV9URVNUUykKKyAg
ICBBRERfU1VCRElSRUNUT1JZKFRlc3RXZWJLaXRBUEkpCitFTkRJRigpCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9D
TWFrZUxpc3RzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzNhNTlkNWNkOTc0ZjE2Yjg3MjY2MThlYWMyYWYx
MGYwNzc5MTVhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxp
c3RzLnR4dApAQCAtMCwwICsxLDEzNSBAQAorU0VUKFRFU1RXRUJLSVRBUElfRElSICIke1RPT0xT
X0RJUn0vVGVzdFdlYktpdEFQSSIpCisKK0lOQ0xVREVfRElSRUNUT1JJRVMoJHtDTUFLRV9CSU5B
UllfRElSfQorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9CisgICAgJHtDTUFLRV9TT1VSQ0VfRElS
fS9Tb3VyY2UKKyAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vaW5jbHVkZQorICAg
ICR7SkFWQVNDUklQVENPUkVfRElSfQorICAgICR7SkFWQVNDUklQVENPUkVfRElSfS9BUEkKKyAg
ICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMKKyAgICAke1RISVJEUEFS
VFlfRElSfS9ndGVzdC9pbmNsdWRlCisgICAgJHtXRUJDT1JFX0RJUn0vZWRpdGluZworICAgICR7
V0VCQ09SRV9ESVJ9L3BsYXRmb3JtCisgICAgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhp
Y3MKKyAgICAke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS90ZXh0CisgICAgJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vbmV0d29yaworICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZAorICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYworICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2VzcworICAgICR7
V1RGX0RJUn0KKykKKworV0VCS0lUX0lOQ0xVREVfQ09ORklHX0ZJTEVTX0lGX0VYSVNUUygpCisK
K0FERF9MSUJSQVJZKFRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZSBTSEFSRUQKKyAgICAke2J1
bmRsZV9oYXJuZXNzX1NPVVJDRVN9CisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vSW5qZWN0ZWRC
dW5kbGVDb250cm9sbGVyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L0luamVjdGVkQnVu
ZGxlTWFpbi5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9QbGF0Zm9ybVV0aWxpdGllcy5j
cHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL0NhbkhhbmRsZVJlcXVl
c3RfQnVuZGxlLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvRE9N
V2luZG93RXh0ZW5zaW9uQmFzaWNfQnVuZGxlLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9
L1Rlc3RzL1dlYktpdDIvRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZV9CdW5kbGUuY3BwCisgICAg
JHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9Eb2N1bWVudFN0YXJ0VXNlclNjcmlw
dEFsZXJ0Q3Jhc2hfQnVuZGxlLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dl
YktpdDIvR2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tfQnVu
ZGxlLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvSGl0VGVzdFJl
c3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3Rz
L1dlYktpdDIvSW5qZWN0ZWRCdW5kbGVCYXNpY19CdW5kbGUuY3BwCisgICAgJHtURVNUV0VCS0lU
QVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9JbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRh
dGFDYWxsYmFja1dpbnNfQnVuZGxlLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3Rz
L1dlYktpdDIvTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAK
KyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyL01vdXNlTW92ZUFmdGVyQ3Jh
c2hfQnVuZGxlLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvTmV3
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RmFpbHNfQnVuZGxlLmNwcAorICAgICR7VEVTVFdF
QktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0
Rm9ySW1hZ2VzX0J1bmRsZS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJL
aXQyL05ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZyYW1lc19CdW5kbGUuY3BwCisgICAg
JHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9OZXdGaXJzdFZpc3VhbGx5Tm9uRW1w
dHlMYXlvdXRfQnVuZGxlLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktp
dDIvUGFyZW50RnJhbWVfQnVuZGxlLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3Rz
L1dlYktpdDIvUmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9CdW5kbGUuY3BwCisg
ICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9TaG91bGRHb1RvQmFja0Zvcndh
cmRMaXN0SXRlbV9CdW5kbGUuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2Vi
S2l0Mi9Vc2VyTWVzc2FnZV9CdW5kbGUuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVz
dHMvV2ViS2l0Mi9XS0Nvbm5lY3Rpb25fQnVuZGxlLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9E
SVJ9L1Rlc3RzL1dlYktpdDIvV2lsbFNlbmRTdWJtaXRFdmVudF9CdW5kbGUuY3BwCispCisKK0FE
RF9ERVBFTkRFTkNJRVMoVGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxlICR7V2ViS2l0Ml9MSUJS
QVJZX05BTUV9ICR7Rm9yd2FyZGluZ0hlYWRlcnNGb3JUZXN0V2ViS2l0QVBJX05BTUV9ICR7Rm9y
d2FyZGluZ05ldHdvcmtIZWFkZXJzRm9yVGVzdFdlYktpdEFQSV9OQU1FfSkKKworR0VUX1BST1BF
UlRZKFRlc3RXZWJLaXRBUElJbmplY3RlZEJ1bmRsZV9QQVRIIFRBUkdFVCBUZXN0V2ViS2l0QVBJ
SW5qZWN0ZWRCdW5kbGUgUFJPUEVSVFkgTE9DQVRJT04pCisKK0FERF9ERUZJTklUSU9OUygtREdU
RVNUX0xJTktFRF9BU19TSEFSRURfTElCUkFSWT0xCisgICAgLURURVNUX1dFQktJVDJfUkVTT1VS
Q0VTX0RJUj1cIiR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDJcIgorICAgIC1EVEVT
VF9JTkpFQ1RFRF9CVU5ETEVfUEFUSD1cIiR7VGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxlX1BB
VEh9XCIKKykKKworU0VUKHRlc3Rfd3RmX0xJQlJBUklFUworICAgICR7V1RGX0xJQlJBUllfTkFN
RX0KKyAgICBndGVzdAorKQorCitBRERfRVhFQ1VUQUJMRSh0ZXN0X3d0ZgorICAgICR7dGVzdF9t
YWluX1NPVVJDRVN9CisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHNDb250cm9sbGVyLmNw
cAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9DaGVja2VkQXJpdGhtZXRpY09w
ZXJhdGlvbnMuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL0Z1bmN0aW9u
YWwuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL0hhc2hNYXAuY3BwCisg
ICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL01ldGFBbGxvY2F0b3IuY3BwCisgICAg
JHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL1JlZEJsYWNrVHJlZS5jcHAKKyAgICAke1RF
U1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAKKyAgICAke1RFU1RX
RUJLSVRBUElfRElSfS9UZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcAorICAgICR7VEVTVFdF
QktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9UZW1wb3JhcnlDaGFuZ2UuY3BwCisgICAgJHtURVNUV0VC
S0lUQVBJX0RJUn0vVGVzdHMvV1RGL1ZlY3Rvci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElS
fS9UZXN0cy9XVEYvVmVjdG9yQmFzaWMuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVz
dHMvV1RGL1ZlY3RvclJldmVyc2UuY3BwCispCisKK1RBUkdFVF9MSU5LX0xJQlJBUklFUyh0ZXN0
X3d0ZiAke3Rlc3Rfd3RmX0xJQlJBUklFU30pCitBRERfREVQRU5ERU5DSUVTKHRlc3Rfd3RmICR7
Rm9yd2FyZGluZ0hlYWRlcnNGb3JUZXN0V2ViS2l0QVBJX05BTUV9ICR7Rm9yd2FyZGluZ05ldHdv
cmtIZWFkZXJzRm9yVGVzdFdlYktpdEFQSV9OQU1FfSkKK0FERF9URVNUKHRlc3Rfd3RmICR7Q01B
S0VfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS90ZXN0X3d0ZikKK1NFVF9URVNUU19QUk9QRVJU
SUVTKHRlc3Rfd3RmIFBST1BFUlRJRVMgVElNRU9VVCA2MCkKKworU0VUKHRlc3Rfd2ViY29yZV9M
SUJSQVJJRVMKKyAgICAke1dURl9MSUJSQVJZX05BTUV9CisgICAgJHtXZWJDb3JlX0xJQlJBUllf
TkFNRX0KKyAgICBndGVzdAorKQorCitBRERfRVhFQ1VUQUJMRSh0ZXN0X3dlYmNvcmUKKyAgICAk
e3Rlc3RfbWFpbl9TT1VSQ0VTfQorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzQ29udHJv
bGxlci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL0tVUkwuY3Bw
CispCisKK1RBUkdFVF9MSU5LX0xJQlJBUklFUyh0ZXN0X3dlYmNvcmUgJHt0ZXN0X3dlYmNvcmVf
TElCUkFSSUVTfSkKK0FERF9ERVBFTkRFTkNJRVModGVzdF93ZWJjb3JlICR7Rm9yd2FyZGluZ0hl
YWRlcnNGb3JUZXN0V2ViS2l0QVBJX05BTUV9ICR7Rm9yd2FyZGluZ05ldHdvcmtIZWFkZXJzRm9y
VGVzdFdlYktpdEFQSV9OQU1FfSkKK0FERF9URVNUKHRlc3Rfd2ViY29yZSAke0NNQUtFX1JVTlRJ
TUVfT1VUUFVUX0RJUkVDVE9SWX0vdGVzdF93ZWJjb3JlKQorU0VUX1RFU1RTX1BST1BFUlRJRVMo
dGVzdF93ZWJjb3JlIFBST1BFUlRJRVMgVElNRU9VVCA2MCkKKworQUREX0xJQlJBUlkoVGVzdFdl
YktpdEFQSUJhc2UKKyAgICAke3Rlc3RfbWFpbl9TT1VSQ0VTfQorICAgICR7d2Via2l0Ml9hcGlf
aGFybmVzc19TT1VSQ0VTfQorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L0phdmFTY3JpcHRUZXN0
LmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1BsYXRmb3JtVXRpbGl0aWVzLmNwcAorICAg
ICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzQ29udHJvbGxlci5jcHAKKykKKworQUREX0RFUEVO
REVOQ0lFUyhUZXN0V2ViS2l0QVBJQmFzZSAke1dlYktpdDJfTElCUkFSWV9OQU1FfSAke0Zvcndh
cmRpbmdIZWFkZXJzRm9yVGVzdFdlYktpdEFQSV9OQU1FfSAke0ZvcndhcmRpbmdOZXR3b3JrSGVh
ZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRX0pCisKK1NFVCh0ZXN0X3dlYmtpdDJfYXBpX0xJQlJB
UklFUworICAgIFRlc3RXZWJLaXRBUElCYXNlCisgICAgJHtXVEZfTElCUkFSWV9OQU1FfQorICAg
ICR7SmF2YVNjcmlwdENvcmVfTElCUkFSWV9OQU1FfQorICAgICR7V2ViS2l0Ml9MSUJSQVJZX05B
TUV9CisgICAgZ3Rlc3QKKykKKworRk9SRUFDSCh0ZXN0TmFtZSAke3Rlc3Rfd2Via2l0Ml9hcGlf
QklOQVJJRVN9KQorICAgIEFERF9FWEVDVVRBQkxFKHRlc3Rfd2Via2l0Ml9hcGlfJHt0ZXN0TmFt
ZX0gJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi8ke3Rlc3ROYW1lfS5jcHApCisg
ICAgQUREX1RFU1QodGVzdF93ZWJraXQyX2FwaV8ke3Rlc3ROYW1lfSAke0NNQUtFX1JVTlRJTUVf
T1VUUFVUX0RJUkVDVE9SWX0vdGVzdF93ZWJraXQyX2FwaV8ke3Rlc3ROYW1lfSkKKyAgICBTRVRf
VEVTVFNfUFJPUEVSVElFUyh0ZXN0X3dlYmtpdDJfYXBpXyR7dGVzdE5hbWV9IFBST1BFUlRJRVMg
VElNRU9VVCA2MCkKKyAgICBUQVJHRVRfTElOS19MSUJSQVJJRVModGVzdF93ZWJraXQyX2FwaV8k
e3Rlc3ROYW1lfSAke3Rlc3Rfd2Via2l0Ml9hcGlfTElCUkFSSUVTfSkKK0VOREZPUkVBQ0goKQor
CisjIFdlIGRvbid0IHJ1biB0ZXN0cyB0aGF0IGFyZSBleHBlY3RlZCB0byBmYWlsLiBXZSBjb3Vs
ZCB1c2UgdGhlIFdJTExfRkFJTAorIyBwcm9wZXJ0eSwgYnV0IGl0IHJlcG9ydHMgZmFpbHVyZSB3
aGVuIHRoZSB0ZXN0IGNyYXNoZXMgb3IgdGltZW91dHMgYW5kIHdvdWxkCisjIG1ha2UgdGhlIGJv
dCByZWQuCisKK0ZPUkVBQ0godGVzdE5hbWUgJHt0ZXN0X3dlYmtpdDJfYXBpX2ZhaWxfQklOQVJJ
RVN9KQorICAgIEFERF9FWEVDVVRBQkxFKHRlc3Rfd2Via2l0Ml9hcGlfZmFpbF8ke3Rlc3ROYW1l
fSAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJLaXQyLyR7dGVzdE5hbWV9LmNwcCkKKyAg
ICBUQVJHRVRfTElOS19MSUJSQVJJRVModGVzdF93ZWJraXQyX2FwaV9mYWlsXyR7dGVzdE5hbWV9
ICR7dGVzdF93ZWJraXQyX2FwaV9MSUJSQVJJRVN9KQorRU5ERk9SRUFDSCgpCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtRWZsLmNtYWtlIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9QbGF0Zm9ybUVmbC5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzRjOTAyODQzYmI1N2RmMmY4ZDUy
ZDMzYTQwNjk1YzQxZTgyMTY1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtMCwwICsxLDkxIEBACitBRERfQ1VTVE9NX1RBUkdFVChm
b3J3YXJkaW5nLWhlYWRlcnNFZmxGb3JUZXN0V2ViS2l0QVBJCisgICAgQ09NTUFORCAke1BFUkxf
RVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhl
YWRlcnMucGwgJHtURVNUV0VCS0lUQVBJX0RJUn0gJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9E
SVJ9L2luY2x1ZGUgZWZsCispCitTRVQoRm9yd2FyZGluZ0hlYWRlcnNGb3JUZXN0V2ViS2l0QVBJ
X05BTUUgZm9yd2FyZGluZy1oZWFkZXJzRWZsRm9yVGVzdFdlYktpdEFQSSkKKworQUREX0NVU1RP
TV9UQVJHRVQoZm9yd2FyZGluZy1oZWFkZXJzU291cEZvclRlc3RXZWJLaXRBUEkKKyAgICBDT01N
QU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQktJVDJfRElSfS9TY3JpcHRzL2dlbmVyYXRlLWZv
cndhcmRpbmctaGVhZGVycy5wbCAke1RFU1RXRUJLSVRBUElfRElSfSAke0RFUklWRURfU09VUkNF
U19XRUJLSVQyX0RJUn0vaW5jbHVkZSBzb3VwCispCitTRVQoRm9yd2FyZGluZ05ldHdvcmtIZWFk
ZXJzRm9yVGVzdFdlYktpdEFQSV9OQU1FIGZvcndhcmRpbmctaGVhZGVyc1NvdXBGb3JUZXN0V2Vi
S2l0QVBJKQorCitJTkNMVURFX0RJUkVDVE9SSUVTKCR7TElCU09VUDI0X0lOQ0xVREVfRElSU30K
KyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mvc291cAorICAgICR7V0VCS0lUMl9E
SVJ9L1VJUHJvY2Vzcy9BUEkvQy9lZmwKKyAgICAke0VDT1JFX0lOQ0xVREVfRElSU30KKyAgICAk
e0VJTkFfSU5DTFVERV9ESVJTfQorICAgICR7RVZBU19JTkNMVURFX0RJUlN9CispCisKK1NFVCh0
ZXN0X21haW5fU09VUkNFUworICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L2VmbC9tYWluLmNwcAor
KQorCitTRVQoYnVuZGxlX2hhcm5lc3NfU09VUkNFUworICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9
L2VmbC9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXIuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJ
Un0vZWZsL1BsYXRmb3JtVXRpbGl0aWVzLmNwcAorKQorCitTRVQod2Via2l0Ml9hcGlfaGFybmVz
c19TT1VSQ0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vZWZsL1BsYXRmb3JtVXRpbGl0aWVz
LmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L2VmbC9QbGF0Zm9ybVdlYlZpZXcuY3BwCisp
CisKKyMgVGhlIGxpc3QgYmVsb3cgd29ya3MgbGlrZSBhIHRlc3QgZXhwZWN0YXRpb24uIFRlc3Rz
IGluIHRoZQorIyB0ZXN0X3dlYmtpdDJfYXBpX0JJTkFSSUVTIGxpc3QgYXJlIGFkZGVkIHRvIHRo
ZSB0ZXN0IHJ1bm5lciBhbmQKKyMgdHJpZWQgb24gdGhlIGJvdHMgb24gZXZlcnkgYnVpbGQuIFRl
c3RzIGluIHRlc3Rfd2Via2l0Ml9hcGlfZmFpbF9CSU5BUklFUworIyBhcmUgY29tcGlsZWQgYW5k
IHN1ZmZpeGVkIHdpdGggZmFpbCBhbmQgc2tpcHBlZCBmcm9tIHRoZSB0ZXN0IHJ1bm5lci4KKyMK
KyMgTWFrZSBzdXJlIHRoYXQgdGhlIHRlc3RzIGFyZSBwYXNzaW5nIG9uIGJvdGggRGVidWcgYW5k
CisjIFJlbGVhc2UgYnVpbGRzIGJlZm9yZSBhZGRpbmcgaXQgdG8gdGVzdF93ZWJraXQyX2FwaV9C
SU5BUklFUy4KKworU0VUKHRlc3Rfd2Via2l0Ml9hcGlfQklOQVJJRVMKKyAgICBDb29raWVNYW5h
Z2VyCisgICAgRE9NV2luZG93RXh0ZW5zaW9uTm9DYWNoZQorICAgIERvY3VtZW50U3RhcnRVc2Vy
U2NyaXB0QWxlcnRDcmFzaAorICAgIEV2YWx1YXRlSmF2YVNjcmlwdAorICAgIEZhaWxlZExvYWQK
KyAgICBGaW5kCisgICAgRm9yY2VSZXBhaW50CisgICAgRnJhbWVNSU1FVHlwZUhUTUwKKyAgICBG
cmFtZU1JTUVUeXBlUE5HCisgICAgR2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJE
YXRhQ2FsbGJhY2sKKyAgICBJbmplY3RlZEJ1bmRsZUJhc2ljCisgICAgSW5qZWN0ZWRCdW5kbGVJ
bml0aWFsaXphdGlvblVzZXJEYXRhQ2FsbGJhY2tXaW5zCisgICAgTG9hZEFsdGVybmF0ZUhUTUxT
dHJpbmdXaXRoTm9uRGlyZWN0b3J5VVJMCisgICAgTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVj
dENhbGxiYWNrCisgICAgTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0CisgICAgTmV3Rmly
c3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0RmFpbHMKKyAgICBQYWdlTG9hZEJhc2ljCisgICAgUGFn
ZUxvYWREaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2VGb3JGcmFtZQorICAgIFBhcmVudEZyYW1l
CisgICAgUHJldmVudEVtcHR5VXNlckFnZW50CisgICAgUHJpdmF0ZUJyb3dzaW5nUHVzaFN0YXRl
Tm9IaXN0b3J5Q2FsbGJhY2sKKyAgICBXS0Nvbm5lY3Rpb24KKyAgICBXS1N0cmluZworICAgIFdL
U3RyaW5nSlNTdHJpbmcKKyAgICBXaWxsU2VuZFN1Ym1pdEV2ZW50CispCisKK1NFVCh0ZXN0X3dl
YmtpdDJfYXBpX2ZhaWxfQklOQVJJRVMKKyAgICBDYW5IYW5kbGVSZXF1ZXN0CisgICAgRE9NV2lu
ZG93RXh0ZW5zaW9uQmFzaWMKKyAgICBEb3dubG9hZERlY2lkZURlc3RpbmF0aW9uQ3Jhc2gKKyAg
ICBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXMKKyAgICBOZXdGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGcmFtZXMKKyAgICBSZXN0b3JlU2Vzc2lvblN0YXRlQ29udGFp
bmluZ0Zvcm1EYXRhCisgICAgU2hvdWxkR29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW0KKyAgICBXS1Bh
Z2VHZXRTY2FsZUZhY3Rvck5vdFplcm8KKykKKworIyBUZXN0cyBkaXNhYmxlZCBiZWNhdXNlIG9m
IG1pc3NpbmcgZmVhdHVyZXMgb24gdGhlIHRlc3QgaGFybmVzczoKKyMKKyMgICBBYm91dEJsYW5r
TG9hZAorIyAgIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlCisjICAgTW91c2VNb3ZlQWZ0ZXJDcmFz
aAorIyAgIFJlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHkKKyMgICBTcGFjZWJhclNj
cm9sbGluZworIyAgIFdLUHJlZmVyZW5jZXMKKyMKKyMgRmxha3kgdGVzdCwgZmFpbHMgb24gUmVs
ZWFzZSBidXQgcGFzc2VzIG9uIERlYnVnOgorIworIyAgIFVzZXJNZXNzYWdlCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9QbGF0Zm9ybVdlYlZpZXcuaAppbmRleCBjZjAxMzJlNGE1ZDQ2NTMwNGI5OGEyYTk3NTAz
ZGNkN2I5NWUxNjk0Li42NTNhMTdjY2EyOTZlM2NlODdkYmZhM2E3M2E3MjEyMTYwNDYwZWQ5IDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV2ViVmlldy5oCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XZWJWaWV3LmgKQEAgLTQ2LDYgKzQ2LDExIEBAIHR5
cGVkZWYgSFdORCBQbGF0Zm9ybVdpbmRvdzsKICNlbGlmIFBMQVRGT1JNKEdUSykKIHR5cGVkZWYg
V0tWaWV3UmVmIFBsYXRmb3JtV0tWaWV3OwogdHlwZWRlZiBHdGtXaWRnZXQgKlBsYXRmb3JtV2lu
ZG93OworI2VsaWYgUExBVEZPUk0oRUZMKQordHlwZWRlZiBzdHJ1Y3QgX0V2YXNfT2JqZWN0IEV2
YXNfT2JqZWN0OwordHlwZWRlZiBzdHJ1Y3QgX0Vjb3JlX0V2YXMgRWNvcmVfRXZhczsKK3R5cGVk
ZWYgRXZhc19PYmplY3QqIFBsYXRmb3JtV0tWaWV3OwordHlwZWRlZiBFY29yZV9FdmFzKiBQbGF0
Zm9ybVdpbmRvdzsKICNlbmRpZgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvbmZpZy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b25maWcuaAppbmRleCA0ZmZjYjhiYzQ3YWZjYzhlNTY5NDljYzdiNDYwODVhZjk4MjBkN2YzLi5l
M2MyZWIwMmRiYzgzN2E5ZWE1ZTg1YTVlMDY0MGJiYzlkNjI5NmU4IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL2NvbmZpZy5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29uZmln
LmgKQEAgLTIzLDYgKzIzLDEyIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAorI2lmIGRlZmluZWQoSEFWRV9DT05GSUdfSCkgJiYgSEFWRV9DT05GSUdfSAorI2lm
ZGVmIEJVSUxESU5HX1dJVEhfQ01BS0UKKyNpbmNsdWRlICJjbWFrZWNvbmZpZy5oIgorI2VuZGlm
CisjZW5kaWYKKwogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgogI2luY2x1ZGUgPHd0Zi9FeHBv
cnRNYWNyb3MuaD4KICNpZiBVU0UoSlNDKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9lZmwvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
ZWZsL0luamVjdGVkQnVuZGxlQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWQ1NTAwMmNjYmNm
MWQyNWY2Y2M4M2JkZWY0YmI5ZmMwOWQ2YjNlNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvZWZsL0luamVjdGVkQnVuZGxlQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSwz
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyLmgi
CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKwordm9pZCBJbmplY3RlZEJ1bmRsZUNvbnRy
b2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZWZsL1BsYXRmb3JtVXRp
bGl0aWVzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZWZsL1BsYXRmb3JtVXRpbGl0aWVzLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45Njc0NTQ1OWYzNzlmM2ZlZGVmYjIxOWMyYzEyZjc4OGM3NGY1M2UxCi0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9lZmwvUGxhdGZvcm1VdGlsaXRp
ZXMuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwg
Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorCisjaW5jbHVkZSA8RWNv
cmUuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCituYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSSB7CisKK25hbWVzcGFjZSBVdGlsIHsKKwordm9pZCBydW4oYm9vbCog
ZG9uZSkKK3sKKyAgICB3aGlsZSAoISpkb25lKQorICAgICAgICBlY29yZV9tYWluX2xvb3BfaXRl
cmF0ZSgpOworfQorCit2b2lkIHNsZWVwKGRvdWJsZSBzZWNvbmRzKQoreworICAgIHNsZWVwKHNl
Y29uZHMpOworfQorCitXS1VSTFJlZiBjcmVhdGVVUkxGb3JSZXNvdXJjZShjb25zdCBjaGFyKiBy
ZXNvdXJjZSwgY29uc3QgY2hhciogZXh0ZW5zaW9uKQoreworICAgIGNoYXIgdXJsW1BBVEhfTUFY
XTsKKworICAgIHNucHJpbnRmKHVybCwgc2l6ZW9mKHVybCksICJmaWxlOi8vJXMvJXMuJXMiLCBU
RVNUX1dFQktJVDJfUkVTT1VSQ0VTX0RJUiwgcmVzb3VyY2UsIGV4dGVuc2lvbik7CisKKyAgICBy
ZXR1cm4gV0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcodXJsKTsKK30KKworV0tTdHJpbmdSZWYg
Y3JlYXRlSW5qZWN0ZWRCdW5kbGVQYXRoKCkKK3sKKyAgICByZXR1cm4gV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoVEVTVF9JTkpFQ1RFRF9CVU5ETEVfUEFUSCk7Cit9CisKK1dLVVJMUmVm
IFVSTEZvck5vbkV4aXN0ZW50UmVzb3VyY2UoKQoreworICAgIHJldHVybiBXS1VSTENyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiZmlsZTovLy9kb2VzLW5vdC1leGlzdC5odG1sIik7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFV0aWwKKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9lZmwvUGxhdGZvcm1XZWJWaWV3LmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvZWZsL1BsYXRmb3JtV2ViVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThjMmE0YTVl
YzdlNDU3MjM5M2MzOWQyMGM3NDE3OTgzMGNiYmYwYgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvZWZsL1BsYXRmb3JtV2ViVmlldy5jcHAKQEAgLTAsMCArMSw3NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmln
aHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIK
KworI2luY2x1ZGUgIldlYktpdDIvV0tBUElDYXN0LmgiCisjaW5jbHVkZSA8RWNvcmVfRXZhcy5o
PgorCitleHRlcm4gYm9vbCB1c2VYMTFXaW5kb3c7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIEVjb3JlX0V2YXMqIGluaXRF
Y29yZUV2YXMoKQoreworICAgIEFTU0VSVChlY29yZV9ldmFzX2luaXQoKSk7CisKKyAgICBFY29y
ZV9FdmFzKiBlY29yZUV2YXM7CisKKyAgICBpZiAodXNlWDExV2luZG93KQorICAgICAgICBlY29y
ZUV2YXMgPSBlY29yZV9ldmFzX25ldygwLCAwLCAwLCA4MDAsIDYwMCwgMCk7CisgICAgZWxzZQor
ICAgICAgICBlY29yZUV2YXMgPSBlY29yZV9ldmFzX2J1ZmZlcl9uZXcoODAwLCA2MDApOworCisg
ICAgQVNTRVJUKGVjb3JlRXZhcyk7CisKKyAgICBlY29yZV9ldmFzX3Nob3coZWNvcmVFdmFzKTsK
KworICAgIHJldHVybiBlY29yZUV2YXM7Cit9CisKK1BsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1X
ZWJWaWV3KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1BhZ2VHcm91cFJlZiBwYWdlR3JvdXBS
ZWYpCit7CisgICAgbV93aW5kb3cgPSBpbml0RWNvcmVFdmFzKCk7CisgICAgRXZhcyogZXZhcyA9
IGVjb3JlX2V2YXNfZ2V0KG1fd2luZG93KTsKKyAgICBtX3ZpZXcgPSB0b0ltcGwoV0tWaWV3Q3Jl
YXRlKGV2YXMsIGNvbnRleHRSZWYsIHBhZ2VHcm91cFJlZikpOworfQorCitQbGF0Zm9ybVdlYlZp
ZXc6On5QbGF0Zm9ybVdlYlZpZXcoKQoreworICAgIGV2YXNfb2JqZWN0X2RlbChtX3ZpZXcpOwor
ICAgIGVjb3JlX2V2YXNfZnJlZShtX3dpbmRvdyk7CisgICAgZWNvcmVfZXZhc19zaHV0ZG93bigp
OworfQorCitXS1BhZ2VSZWYgUGxhdGZvcm1XZWJWaWV3OjpwYWdlKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gV0tWaWV3R2V0UGFnZSh0b0FQSShtX3ZpZXcpKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9lZmwvbWFpbi5j
cHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2VmbC9tYWluLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Yzc3ZGJm
YjJjMzJmMWFmNzA3ZjkwOTA5NTU1ZWU4MjcwZWJiMWZiCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9lZmwvbWFpbi5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0c0NvbnRyb2xsZXIuaCIKKyNpbmNsdWRl
IDxFY29yZS5oPgorI2luY2x1ZGUgPEVpbmEuaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4KKworYm9v
bCB1c2VYMTFXaW5kb3cgPSBmYWxzZTsKKworc3RhdGljIGJvb2wgY2hlY2tGb3JVc2VYMTFXaW5k
b3dBcmd1bWVudChpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgaW50IGhhc1VzZVgxMVdp
bmRvdyA9IDA7CisKKyAgICBzdGF0aWMgY29uc3Qgb3B0aW9uIG9wdGlvbnNbXSA9IHsKKyAgICAg
ICAgeyJ1c2VYMTFXaW5kb3ciLCBub19hcmd1bWVudCwgJmhhc1VzZVgxMVdpbmRvdywgMX0sCisg
ICAgICAgIHswLCAwLCAwLCAwfQorICAgIH07CisKKyAgICB3aGlsZSAoZ2V0b3B0X2xvbmcoYXJn
YywgYXJndiwgIiIsIG9wdGlvbnMsIDApICE9IC0xKSB7IH0KKworICAgIHJldHVybiBoYXNVc2VY
MTFXaW5kb3c7Cit9CisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK3sKKyAgICBp
ZiAoIWVpbmFfaW5pdCgpKQorICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOworCisgICAgaWYg
KCFlY29yZV9pbml0KCkpCisgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7CisKKyAgICB1c2VY
MTFXaW5kb3cgPSBjaGVja0ZvclVzZVgxMVdpbmRvd0FyZ3VtZW50KGFyZ2MsIGFyZ3YpOworCisg
ICAgaW50IHJldHVybkNvZGUgPSBUZXN0V2ViS2l0QVBJOjpUZXN0c0NvbnRyb2xsZXI6OnNoYXJl
ZCgpLnJ1bihhcmdjLCBhcmd2KSA/IEVYSVRfU1VDQ0VTUyA6IEVYSVRfRkFJTFVSRTsKKworICAg
IGVjb3JlX3NodXRkb3duKCk7CisgICAgZWluYV9zaHV0ZG93bigpOworCisgICAgcmV0dXJuIHJl
dHVybkNvZGU7Cit9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>