<?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>20337</bug_id>
          
          <creation_ts>2008-08-08 14:21:16 -0700</creation_ts>
          <short_desc>Implement CSS Animation and Transition Events</short_desc>
          <delta_ts>2008-08-11 10:25:12 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dino</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>88127</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2008-08-08 14:21:16 -0700</bug_when>
    <thetext>Need to implement the Event interfaces for CSS Animations and Transitions

http://webkit.org/specs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88128</commentid>
    <comment_count>1</comment_count>
      <attachid>22709</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2008-08-08 14:23:11 -0700</bug_when>
    <thetext>Created attachment 22709
in progress patch

Still need to link up dom stuff. Won&apos;t build on non-mac platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88130</commentid>
    <comment_count>2</comment_count>
      <attachid>22710</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2008-08-08 14:47:23 -0700</bug_when>
    <thetext>Created attachment 22710
updated patch

still won&apos;t build on non-OSX</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88132</commentid>
    <comment_count>3</comment_count>
      <attachid>22711</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2008-08-08 15:17:33 -0700</bug_when>
    <thetext>Created attachment 22711
working patch, with a test/example

Just need to fix other platforms build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88133</commentid>
    <comment_count>4</comment_count>
      <attachid>22712</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2008-08-08 15:26:02 -0700</bug_when>
    <thetext>Created attachment 22712
now ready for review

Now should build on all platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88150</commentid>
    <comment_count>5</comment_count>
      <attachid>22712</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2008-08-08 20:48:32 -0700</bug_when>
    <thetext>Comment on attachment 22712
now ready for review

+    if (eventType == EventNames::webkitTransitionEndEvent) {
+        element-&gt;dispatchWebKitTransitionEvent(eventType, name, elapsedTime);
+    } 
+    else {
+        element-&gt;dispatchWebKitAnimationEvent(eventType, name, elapsedTime);
+    }

The braces should be removed here.

Otherwise looks good, and Hyatt looked over it earlier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>88225</commentid>
    <comment_count>6</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2008-08-11 10:25:12 -0700</bug_when>
    <thetext>Modified after review comments.

Committed r35666
	M	WebCore/GNUmakefile.am
	M	WebCore/bindings/js/JSEventCustom.cpp
	M	WebCore/bindings/js/JSDOMWindowBase.h
	M	WebCore/bindings/js/JSDOMWindowBase.cpp
	M	WebCore/DerivedSources.make
	M	WebCore/html/HTMLElement.cpp
	M	WebCore/html/HTMLAttributeNames.in
	A	WebCore/manual-tests/transition-events.html
	M	WebCore/dom/Event.cpp
	A	WebCore/dom/WebKitAnimationEvent.h
	M	WebCore/dom/EventTargetNode.cpp
	A	WebCore/dom/WebKitAnimationEvent.idl
	M	WebCore/dom/Document.h
	A	WebCore/dom/WebKitAnimationEvent.cpp
	M	WebCore/dom/EventTargetNode.h
	M	WebCore/dom/Event.h
	A	WebCore/dom/WebKitTransitionEvent.idl
	A	WebCore/dom/WebKitTransitionEvent.cpp
	M	WebCore/dom/EventTarget.cpp
	A	WebCore/dom/WebKitTransitionEvent.h
	M	WebCore/WebCore.xcodeproj/project.pbxproj
	M	WebCore/WebCore.pro
	M	WebCore/ChangeLog
	M	WebCore/WebCore.vcproj/WebCore.vcproj
	M	WebCore/WebCoreSources.bkl
	M	WebCore/page/AnimationController.cpp

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22709</attachid>
            <date>2008-08-08 14:23:11 -0700</date>
            <delta_ts>2008-08-08 14:47:23 -0700</delta_ts>
            <desc>in progress patch</desc>
            <filename>events.patch</filename>
            <type>text/plain</type>
            <size>18906</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQppbmRleCA1NGEwZGFhLi44MDMxNWEyIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBA
IC0zNDEsNyArMzQxLDkgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgVHJlZVdhbGtlciBcCiAgICAg
VUlFdmVudCBcCiAgICAgVm9pZENhbGxiYWNrIFwKKyAgICBXZWJLaXRBbmltYXRpb25FdmVudCBc
CiAgICAgV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUgXAorICAgIFdlYktpdFRyYW5zaXRpb25FdmVu
dCBcCiAgICAgV2hlZWxFdmVudCBcCiAgICAgWE1MSHR0cFJlcXVlc3QgXAogICAgIFhNTEh0dHBS
ZXF1ZXN0RXhjZXB0aW9uIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggZGM0YTA1OS4uZTlhMWY0MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTQwNSw2ICs0MDUsMjIgQEAKIAkJMzE2MTFFNjEwRTFDNEUxNDAw
RjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTYxMUU1RTBFMUM0RTE0MDBGNkE1NzkgLyog
RE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCAqLzsgfTsKIAkJMzE2MTFFNjIwRTFDNEUxNDAw
RjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2MTFFNUYwRTFDNEUxNDAwRjZBNTc5IC8q
IERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLm1tICovOyB9OwogCQkzMTYxMUU2MzBFMUM0RTE0
MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2MTFFNjAwRTFDNEUxNDAw
RjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlSW50ZXJuYWwuaCAqLzsgfTsKKwkJ
MzFDMEZGMjEwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFCMEU0Q0VC
NkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgKi87IH07CisJCTMxQzBGRjIy
MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUMwRTRDRUI2RTAwN0Q2RkU1
IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmggKi87IH07CisJCTMxQzBGRjIzMEU0Q0VCNkUwMDdE
NkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFEMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJL
aXRBbmltYXRpb25FdmVudC5pZGwgKi87IH07CisJCTMxQzBGRjI0MEU0Q0VCNkUwMDdENkZFNSAv
KiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUUwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5z
aXRpb25FdmVudC5jcHAgKi87IH07CisJCTMxQzBGRjI1MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJL
aXRUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxQzBGRjFGMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZl
bnQuaCAqLzsgfTsKKwkJMzFDMEZGMjYwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRp
b25FdmVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxQzBGRjIwMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaWRs
ICovOyB9OworCQkzMUMwRkYzRDBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25F
dmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MUMwRkYzOTBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgKi87
IH07CisJCTMxQzBGRjNFMEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdEFuaW1hdGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYz
QTBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25FdmVudC5oICovOyB9OworCQkz
MUMwRkYzRjBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGM0IwRTRD
RUZBQzAwN0Q2RkU1IC8qIEpTV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCAqLzsgfTsKKwkJMzFD
MEZGNDAwRTRDRUZBQzAwN0Q2RkU1IC8qIEpTV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYzQzBFNENFRkFD
MDA3RDZGRTUgLyogSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCAqLzsgfTsKKwkJMzFDMEZGNDkw
RTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdEFuaW1hdGlvbkV2ZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkY0MzBFNENFRkREMDA3RDZG
RTUgLyogRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCAqLzsgfTsKKwkJMzFDMEZGNEEwRTRDRUZE
RDAwN0Q2RkU1IC8qIERPTVdlYktpdEFuaW1hdGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGNDQwRTRDRUZERDAwN0Q2RkU1IC8q
IERPTVdlYktpdEFuaW1hdGlvbkV2ZW50Lm1tICovOyB9OworCQkzMUMwRkY0QjBFNENFRkREMDA3
RDZGRTUgLyogRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGNDUwRTRDRUZERDAwN0Q2RkU1
IC8qIERPTVdlYktpdEFuaW1hdGlvbkV2ZW50SW50ZXJuYWwuaCAqLzsgfTsKKwkJMzFDMEZGNEMw
RTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGNDYwRTRDRUZERDAwN0Q2
RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5oICovOyB9OworCQkzMUMwRkY0RDBFNENF
RkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGNDcwRTRDRUZERDAwN0Q2RkU1
IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbSAqLzsgfTsKKwkJMzFDMEZGNEUwRTRDRUZE
RDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudEludGVybmFsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkY0ODBFNENFRkREMDA3
RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJMzcx
RjRGNDAwRDI1QjlBRjAwRUNFMEQ1IC8qIEZvbnREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzFGNEYzRTBEMjVCOUFGMDBFQ0UwRDUgLyogRm9u
dERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkzNzFGNEY0MTBEMjVCOUFGMDBFQ0UwRDUgLyogRm9udERhdGEuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzcxRjRGM0YwRDI1QjlBRjAwRUNFMEQ1
IC8qIEZvbnREYXRhLmNwcCAqLzsgfTsKIAkJMzcxRjRGRkMwRDI1RTdGMzAwRUNFMEQ1IC8qIFNl
Z21lbnRlZEZvbnREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzNzFGNEZGQTBEMjVFN0YzMDBFQ0UwRDUgLyogU2VnbWVudGVkRm9udERhdGEuaCAq
LzsgfTsKQEAgLTQ5MzQsNiArNDk1MCwyMiBAQAogCQkzMTYxMUU1RTBFMUM0RTE0MDBGNkE1Nzkg
LyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzE2MTFFNUYwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5z
Zm9ybVZhbHVlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9N
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTMxNjExRTYwMEUxQzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUlu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdlYktpdENTU1Ry
YW5zZm9ybVZhbHVlSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFD
MEZGMUIwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFDMEZGMUMwRTRDRUI2RTAwN0Q2RkU1IC8q
IFdlYktpdEFuaW1hdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYktpdEFuaW1hdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMx
QzBGRjFEMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMUMwRkYxRTBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNp
dGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktp
dFRyYW5zaXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBG
RjFGMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBGRjIwMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRU
cmFuc2l0aW9uRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdFRyYW5zaXRp
b25FdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBGRjM5MEU0Q0VG
QUMwMDdENkZFNSAvKiBKU1dlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzMUMwRkYzQTBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJL
aXRBbmltYXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dl
YktpdEFuaW1hdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBG
RjNCMEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBGRjNDMEU0Q0VGQUMwMDdENkZF
NSAvKiBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMUMwRkY0MzBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0QW5pbWF0aW9uRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2ViS2l0QW5pbWF0aW9u
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFDMEZGNDQwRTRDRUZERDAw
N0Q2RkU1IC8qIERPTVdlYktpdEFuaW1hdGlvbkV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBGRjQ1MEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJL
aXRBbmltYXRpb25FdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTVdlYktpdEFuaW1hdGlvbkV2ZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzFDMEZGNDYwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRp
b25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRUcmFu
c2l0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFDMEZGNDcwRTRD
RUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFDMEZGNDgwRTRDRUZERDAwN0Q2RkU1IC8q
IERPTVdlYktpdFRyYW5zaXRpb25FdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTVdlYktpdFRyYW5zaXRpb25FdmVudEludGVybmFsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3MUY0RjNFMEQyNUI5QUYwMEVDRTBENSAvKiBGb250RGF0
YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250RGF0YS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzNzFGNEYzRjBEMjVCOUFGMDBFQ0UwRDUgLyogRm9udERh
dGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udERhdGEuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzFGNEZGQTBEMjVFN0YzMDBFQ0UwRDUg
LyogU2VnbWVudGVkRm9udERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2VnbWVudGVkRm9udERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk5NzUs
NiArMTAwMDcsMTIgQEAKIAkJCQk4NUM3RjQ4RjBBQUY3OURDMDA0MDE0REQgLyogRE9NVUlFdmVu
dC5oICovLAogCQkJCTg1QzdGNDkwMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50Lm1tICov
LAogCQkJCTg1QzdGNEMyMEFBRjgwODEwMDQwMTRERCAvKiBET01VSUV2ZW50UHJpdmF0ZS5oICov
LAorCQkJCTMxQzBGRjQzMEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRBbmltYXRpb25FdmVu
dC5oICovLAorCQkJCTMxQzBGRjQ0MEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRBbmltYXRp
b25FdmVudC5tbSAqLywKKwkJCQkzMUMwRkY0NTBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0
QW5pbWF0aW9uRXZlbnRJbnRlcm5hbC5oICovLAorCQkJCTMxQzBGRjQ2MEU0Q0VGREQwMDdENkZF
NSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCAqLywKKwkJCQkzMUMwRkY0NzBFNENFRkRE
MDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lm1tICovLAorCQkJCTMxQzBGRjQ4
MEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnRJbnRlcm5hbC5oICov
LAogCQkJCTg1QzdGNUU1MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2ZW50LmggKi8sCiAJ
CQkJODVDN0Y1RTYwQUFGQkFGQjAwNDAxNEREIC8qIERPTVdoZWVsRXZlbnQubW0gKi8sCiAJCQkJ
ODVGRjMxM0IwQUFGQkQ3MjAwMzc0RjM4IC8qIERPTVdoZWVsRXZlbnRQcml2YXRlLmggKi8sCkBA
IC0xMTM5Miw2ICsxMTQzMCwxMCBAQAogCQkJCTkzM0ExNEI3MEI3RDFENTIwMEE1M0ZGRCAvKiBK
U1RleHRFdmVudC5oICovLAogCQkJCUE4NjYyOUNBMDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJRXZl
bnQuY3BwICovLAogCQkJCUE4NjYyOUM5MDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJRXZlbnQuaCAq
LywKKwkJCQkzMUMwRkYzOTBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25FdmVu
dC5jcHAgKi8sCisJCQkJMzFDMEZGM0EwRTRDRUZBQzAwN0Q2RkU1IC8qIEpTV2ViS2l0QW5pbWF0
aW9uRXZlbnQuaCAqLywKKwkJCQkzMUMwRkYzQjBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRU
cmFuc2l0aW9uRXZlbnQuY3BwICovLAorCQkJCTMxQzBGRjNDMEU0Q0VGQUMwMDdENkZFNSAvKiBK
U1dlYktpdFRyYW5zaXRpb25FdmVudC5oICovLAogCQkJCTY1REYzMUYxMDlEMUNDNjAwMDBCRTMy
NSAvKiBKU1doZWVsRXZlbnQuY3BwICovLAogCQkJCTY1REYzMUYyMDlEMUNDNjAwMDBCRTMyNSAv
KiBKU1doZWVsRXZlbnQuaCAqLywKIAkJCSk7CkBAIC0xMzMxMCw2ICsxMzM1MiwxMiBAQAogCQkJ
CTE0MUI5NEVFMDlFQzQyNUEwMDBFOTQxMyAvKiBVSUV2ZW50LmlkbCAqLywKIAkJCQk5MzM1NEEz
QjBCMjRGOEM5MDAzRjZERUEgLyogVUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAgKi8sCiAJCQkJODUw
MzFCMzkwQTQ0RUZDNzAwRjk5MkUwIC8qIFVJRXZlbnRXaXRoS2V5U3RhdGUuaCAqLywKKwkJCQkz
MUMwRkYxQjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwICovLAor
CQkJCTMxQzBGRjFDMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oICov
LAorCQkJCTMxQzBGRjFEMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5p
ZGwgKi8sCisJCQkJMzFDMEZGMUUwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25F
dmVudC5jcHAgKi8sCisJCQkJMzFDMEZGMUYwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5z
aXRpb25FdmVudC5oICovLAorCQkJCTMxQzBGRjIwMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRU
cmFuc2l0aW9uRXZlbnQuaWRsICovLAogCQkJCTg1MDMxQjNBMEE0NEVGQzcwMEY5OTJFMCAvKiBX
aGVlbEV2ZW50LmNwcCAqLywKIAkJCQk4NTAzMUIzQjBBNDRFRkM3MDBGOTkyRTAgLyogV2hlZWxF
dmVudC5oICovLAogCQkJCTkzRUVDMUY3MDlDMjg3NzcwMEM1MTVEMSAvKiBXaGVlbEV2ZW50Lmlk
bCAqLywKQEAgLTE1MzMzLDYgKzE1MzgxLDE0IEBACiAJCQkJMzEyODhFNzUwRTMwMDVENjAwMzYx
OUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0MTUy
OTJFMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjU2MDI4RjBFNEI3NjU4MDA2NUIwMzggLyogUmVuZGVyTWFycXVlZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMzFDMEZGMjIwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1h
dGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUMwRkYyNTBFNENFQjZFMDA3RDZGRTUg
LyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUMwRkYzRTBF
NENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMzFDMEZGNDAwRTRDRUZBQzAwN0Q2RkU1IC8qIEpTV2ViS2l0VHJhbnNpdGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUMwRkY0OTBFNENFRkREMDA3RDZGRTUgLyogRE9NV2Vi
S2l0QW5pbWF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxQzBGRjRCMEU0Q0VGREQw
MDdENkZFNSAvKiBET01XZWJLaXRBbmltYXRpb25FdmVudEludGVybmFsLmggaW4gSGVhZGVycyAq
LywKKwkJCQkzMUMwRkY0QzBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUMwRkY0RTBFNENFRkREMDA3RDZGRTUgLyogRE9N
V2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTU0NTAs
NiArMTU1MDYsOCBAQAogCQkJCUJDMTg4MUREMEUwOEM1NDMwMDA0OEMxMyAvKiBGaWxlTGlzdC5p
ZGwgaW4gUmVzb3VyY2VzICovLAogCQkJCTMxNjExRTU1MEUxQzRENEEwMEY2QTU3OSAvKiBXZWJL
aXRDU1NUcmFuc2Zvcm1WYWx1ZS5pZGwgaW4gUmVzb3VyY2VzICovLAogCQkJCUJDM0E0NERGMEUy
NkQyMDIwMEMxNERGQSAvKiBOU1Jlc29sdmVyLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJMzFD
MEZGMjMwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmlkbCBpbiBSZXNv
dXJjZXMgKi8sCisJCQkJMzFDMEZGMjYwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRp
b25FdmVudC5pZGwgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTcxMDgsNiArMTcxNjYsMTIgQEAKIAkJ
CQlBODNFMUM3NDBFNDkwNDJDMDAxNDBCOUMgLyogU2NyaXB0Q29udHJvbGxlck1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTQ0MTUyOTJGMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1h
Z2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNTYwMjkwMEU0Qjc2NTgwMDY1QjAz
OCAvKiBSZW5kZXJNYXJxdWVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxQzBGRjIxMEU0Q0VC
NkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkzMUMwRkYyNDBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTMxQzBGRjNEMEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdEFu
aW1hdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxQzBGRjNGMEU0Q0VGQUMwMDdE
NkZFNSAvKiBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkz
MUMwRkY0QTBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQubW0gaW4g
U291cmNlcyAqLywKKwkJCQkzMUMwRkY0RDBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJh
bnNpdGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA2M2ViNzc2Li41ZmExMzcw
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKQEAgLTU0MCw3ICs1NDAsMTEgQEAgcHVibGljOgogICAgICAgICBET01OT0RFSU5T
RVJURURJTlRPRE9DVU1FTlRfTElTVEVORVIgPSAweDEwLAogICAgICAgICBET01BVFRSTU9ESUZJ
RURfTElTVEVORVIgICAgICAgICAgICAgPSAweDIwLAogICAgICAgICBET01DSEFSQUNURVJEQVRB
TU9ESUZJRURfTElTVEVORVIgICAgPSAweDQwLAotICAgICAgICBPVkVSRkxPV0NIQU5HRURfTElT
VEVORVIgICAgICAgICAgICAgPSAweDgwCisgICAgICAgIE9WRVJGTE9XQ0hBTkdFRF9MSVNURU5F
UiAgICAgICAgICAgICA9IDB4ODAsCisgICAgICAgIEFOSU1BVElPTkVORF9MSVNURU5FUiAgICAg
ICAgICAgICAgICA9IDB4MTAwLAorICAgICAgICBBTklNQVRJT05TVEFSVF9MSVNURU5FUiAgICAg
ICAgICAgICAgPSAweDIwMCwKKyAgICAgICAgQU5JTUFUSU9OSVRFUkFUSU9OX0xJU1RFTkVSICAg
ICAgICAgID0gMHg0MDAsCisgICAgICAgIFRSQU5TSVRJT05FTkRfTElTVEVORVIgICAgICAgICAg
ICAgICA9IDB4ODAwCiAgICAgfTsKIAogICAgIGJvb2wgaGFzTGlzdGVuZXJUeXBlKExpc3RlbmVy
VHlwZSBsaXN0ZW5lclR5cGUpIGNvbnN0IHsgcmV0dXJuIChtX2xpc3RlbmVyVHlwZXMgJiBsaXN0
ZW5lclR5cGUpOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldE5vZGUuY3Bw
IGIvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXROb2RlLmNwcAppbmRleCBlMTgzY2EwLi5jZmY0MDc5
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldE5vZGUuY3BwCisrKyBiL1dlYkNv
cmUvZG9tL0V2ZW50VGFyZ2V0Tm9kZS5jcHAKQEAgLTQxLDYgKzQxLDggQEAKICNpbmNsdWRlICJQ
cm9ncmVzc0V2ZW50LmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuaCIKICNp
bmNsdWRlICJUZXh0RXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25FdmVudC5oIgor
I2luY2x1ZGUgIldlYktpdFRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnQu
aCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogCkBAIC0zNTgsNiArMzYwLDIzIEBAIHZvaWQg
RXZlbnRUYXJnZXROb2RlOjpkaXNwYXRjaFdoZWVsRXZlbnQoUGxhdGZvcm1XaGVlbEV2ZW50JiBl
KQogICAgICAgICBlLmFjY2VwdCgpOwogfQogCitib29sIEV2ZW50VGFyZ2V0Tm9kZTo6ZGlzcGF0
Y2hXZWJLaXRBbmltYXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29u
c3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpCit7CisgICAgQVNT
RVJUKCFldmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOworICAgIAorICAgIFJlZlB0cjxXZWJLaXRB
bmltYXRpb25FdmVudD4gYW5pbUV2ZW50ID0gV2ViS2l0QW5pbWF0aW9uRXZlbnQ6OmNyZWF0ZShl
dmVudFR5cGUsIGFuaW1hdGlvbk5hbWUsIGVsYXBzZWRUaW1lKTsKKyAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKKyAgICByZXR1cm4gZGlzcGF0Y2hFdmVudChhbmltRXZlbnQsIGVjLCB0cnVlKTsK
K30KKworYm9vbCBFdmVudFRhcmdldE5vZGU6OmRpc3BhdGNoV2ViS2l0VHJhbnNpdGlvbkV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFt
ZSwgZG91YmxlIGVsYXBzZWRUaW1lKQoreworICAgIEFTU0VSVCghZXZlbnREaXNwYXRjaEZvcmJp
ZGRlbigpKTsKKyAgICAKKyAgICBSZWZQdHI8V2ViS2l0VHJhbnNpdGlvbkV2ZW50PiB0cmFuc2l0
aW9uRXZlbnQgPSBXZWJLaXRUcmFuc2l0aW9uRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUsIHByb3Bl
cnR5TmFtZSwgZWxhcHNlZFRpbWUpOworICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHJl
dHVybiBkaXNwYXRjaEV2ZW50KHRyYW5zaXRpb25FdmVudCwgZWMsIHRydWUpOworfQogCiB2b2lk
IEV2ZW50VGFyZ2V0Tm9kZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50KCkKIHsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0Tm9kZS5oIGIvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXROb2Rl
LmgKaW5kZXggYzllZmI2NC4uMDI4MmY4NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnRU
YXJnZXROb2RlLmgKKysrIGIvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXROb2RlLmgKQEAgLTY3LDYg
KzY3LDggQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hTaW11bGF0ZWRDbGljayhQYXNzUmVm
UHRyPEV2ZW50PiB1bmRlcmx5aW5nRXZlbnQsIGJvb2wgc2VuZE1vdXNlRXZlbnRzID0gZmFsc2Us
IGJvb2wgc2hvd1ByZXNzZWRMb29rID0gdHJ1ZSk7CiAgICAgYm9vbCBkaXNwYXRjaFByb2dyZXNz
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nICZldmVudFR5cGUsIGJvb2wgbGVuZ3RoQ29tcHV0YWJs
ZUFyZywgdW5zaWduZWQgbG9hZGVkQXJnLCB1bnNpZ25lZCB0b3RhbEFyZyk7CiAgICAgdm9pZCBk
aXNwYXRjaFN0b3JhZ2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcgJmV2ZW50VHlwZSwgY29uc3Qg
U3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFs
dWUsIEZyYW1lKiBzb3VyY2UpOworICAgIGJvb2wgZGlzcGF0Y2hXZWJLaXRBbmltYXRpb25FdmVu
dChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25O
YW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpOworICAgIGJvb2wgZGlzcGF0Y2hXZWJLaXRUcmFuc2l0
aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgcHJv
cGVydHlOYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpOwogCiAgICAgdmlydHVhbCB2b2lkIGhhbmRs
ZUxvY2FsRXZlbnRzKEV2ZW50KiwgYm9vbCB1c2VDYXB0dXJlKTsKIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wYWdlL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9wYWdlL0FuaW1hdGlv
bkNvbnRyb2xsZXIuY3BwCmluZGV4IDM1YmViNTMuLmM4OTQ3OTUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGFnZS9BbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL3BhZ2UvQW5pbWF0
aW9uQ29udHJvbGxlci5jcHAKQEAgLTc3NSw3ICs3NzUsMTIgQEAgdm9pZCBBbmltYXRpb25CYXNl
OjphbmltYXRpb25FdmVudERpc3BhdGNoZXJGaXJlZChFbGVtZW50KiBlbGVtZW50LCBjb25zdCBB
dG9taWMKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEZJWE1F
OiBBY3R1YWwgZXZlbnQgZGlzcGF0Y2hpbmcgd2lsbCBiZSBkb25lIGhlcmUKKyAgICBpZiAoZXZl
bnRUeXBlID09IEV2ZW50TmFtZXM6OndlYmtpdFRyYW5zaXRpb25FbmRFdmVudCkgeworICAgICAg
ICBlbGVtZW50LT5kaXNwYXRjaFdlYktpdFRyYW5zaXRpb25FdmVudChldmVudFR5cGUsIG5hbWUs
IGVsYXBzZWRUaW1lKTsKKyAgICB9IAorICAgIGVsc2UgeworICAgICAgICBlbGVtZW50LT5kaXNw
YXRjaFdlYktpdEFuaW1hdGlvbkV2ZW50KGV2ZW50VHlwZSwgbmFtZSwgZWxhcHNlZFRpbWUpOwor
ICAgIH0KIAogICAgIGlmIChhbmltRXZlbnRUeXBlID09IEV2ZW50TmFtZXM6OndlYmtpdEFuaW1h
dGlvbkVuZEV2ZW50KSB7CiAgICAgICAgIGlmIChlbGVtZW50LT5yZW5kZXJlcigpKSB7CkBAIC0x
ODYxLDcgKzE4NjYsMjYgQEAgdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6b25BbmltYXRpb25FbmQo
ZG91YmxlIGluRWxhcHNlZFRpbWUpCiAKIGJvb2wgSW1wbGljaXRBbmltYXRpb246OnNlbmRUcmFu
c2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBpbkV2ZW50VHlwZSwgZG91YmxlIGluRWxh
cHNlZFRpbWUpCiB7Ci0gICAgLy8gRklYTUU6IGV2ZW50IGRpc3BhdGNoaW5nIGNvZGUgd2lsbCBn
byBoZXJlCisgICAgaWYgKGluRXZlbnRUeXBlID09IEV2ZW50TmFtZXM6OndlYmtpdFRyYW5zaXRp
b25FbmRFdmVudCkgeworICAgICAgICBEb2N1bWVudDo6TGlzdGVuZXJUeXBlIGxpc3RlbmVyVHlw
ZSA9IERvY3VtZW50OjpUUkFOU0lUSU9ORU5EX0xJU1RFTkVSOworICAgICAgICAKKyAgICAgICAg
aWYgKHNob3VsZFNlbmRFdmVudEZvckxpc3RlbmVyKGxpc3RlbmVyVHlwZSkpIHsKKyAgICAgICAg
ICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBlbGVtZW50Rm9yRXZlbnREaXNwYXRjaCgpOworICAgICAg
ICAgICAgU3RyaW5nIHByb3BlcnR5TmFtZTsKKyAgICAgICAgICAgIGlmIChtX3Byb3BlcnR5ID09
IGNBbmltYXRlQWxsKSB7CisgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lID0gU3RyaW5nKCIi
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHBy
b3BlcnR5TmFtZSA9IFN0cmluZyhnZXRQcm9wZXJ0eU5hbWUoKENTU1Byb3BlcnR5SUQpbV9wcm9w
ZXJ0eSkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGVsZW1lbnQpIHsKKyAgICAg
ICAgICAgICAgICBtX3dhaXRpbmdGb3JFbmRFdmVudCA9IHRydWU7CisgICAgICAgICAgICAgICAg
bV9hbmltYXRpb25FdmVudERpc3BhdGNoZXIuc3RhcnRUaW1lcihlbGVtZW50LCBwcm9wZXJ0eU5h
bWUsIG1fcHJvcGVydHksIHRydWUsIGluRXZlbnRUeXBlLCBpbkVsYXBzZWRUaW1lKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gRGlkIGRpc3BhdGNoIGFuIGV2ZW50CisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgCiAgICAgcmV0dXJuIGZhbHNlOyAvLyBEaWRu
J3QgZGlzcGF0Y2ggYW4gZXZlbnQKIH0KIApAQCAtMjAxOCw4ICsyMDQyLDI0IEBAIHZvaWQgS2V5
ZnJhbWVBbmltYXRpb246Om9uQW5pbWF0aW9uRW5kKGRvdWJsZSBpbkVsYXBzZWRUaW1lKQogCiBi
b29sIEtleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiBpbkV2ZW50VHlwZSwgZG91YmxlIGluRWxhcHNlZFRpbWUpCiB7Ci0gICAgLy8gRklYTUU6
IEV2ZW50IGRpc3BhdGNoIGdvZXMgaGVyZQotICAgIHJldHVybiBmYWxzZTsgLy8gZGlkbid0IGRp
c3BhdGNoIGFuIGV2ZW50CisgICAgRG9jdW1lbnQ6Okxpc3RlbmVyVHlwZSBsaXN0ZW5lclR5cGU7
CisgICAgaWYgKGluRXZlbnRUeXBlID09IEV2ZW50TmFtZXM6OndlYmtpdEFuaW1hdGlvbkl0ZXJh
dGlvbkV2ZW50KQorICAgICAgICBsaXN0ZW5lclR5cGUgPSBEb2N1bWVudDo6QU5JTUFUSU9OSVRF
UkFUSU9OX0xJU1RFTkVSOworICAgIGVsc2UgaWYgKGluRXZlbnRUeXBlID09IEV2ZW50TmFtZXM6
OndlYmtpdEFuaW1hdGlvbkVuZEV2ZW50KQorICAgICAgICBsaXN0ZW5lclR5cGUgPSBEb2N1bWVu
dDo6QU5JTUFUSU9ORU5EX0xJU1RFTkVSOworICAgIGVsc2UKKyAgICAgICAgbGlzdGVuZXJUeXBl
ID0gRG9jdW1lbnQ6OkFOSU1BVElPTlNUQVJUX0xJU1RFTkVSOworICAgIAorICAgIGlmIChzaG91
bGRTZW5kRXZlbnRGb3JMaXN0ZW5lcihsaXN0ZW5lclR5cGUpKSB7CisgICAgICAgIEVsZW1lbnQq
IGVsZW1lbnQgPSBlbGVtZW50Rm9yRXZlbnREaXNwYXRjaCgpOworICAgICAgICBpZiAoZWxlbWVu
dCkgeworICAgICAgICAgICAgbV93YWl0aW5nRm9yRW5kRXZlbnQgPSB0cnVlOworICAgICAgICAg
ICAgbV9hbmltYXRpb25FdmVudERpc3BhdGNoZXIuc3RhcnRUaW1lcihlbGVtZW50LCBtX25hbWUs
IC0xLCB0cnVlLCBpbkV2ZW50VHlwZSwgaW5FbGFwc2VkVGltZSk7CisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsgLy8gRGlkIGRpc3BhdGNoIGFuIGV2ZW50CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICByZXR1cm4gZmFsc2U7IC8vIERpZCBub3QgZGlzcGF0Y2ggYW4gZXZlbnQKIH0KIAogdm9pZCBL
ZXlmcmFtZUFuaW1hdGlvbjo6b3ZlcnJpZGVBbmltYXRpb25zKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22710</attachid>
            <date>2008-08-08 14:47:23 -0700</date>
            <delta_ts>2008-08-08 15:17:33 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>events.patch</filename>
            <type>text/plain</type>
            <size>38779</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQppbmRleCA1NGEwZGFhLi44MDMxNWEyIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBA
IC0zNDEsNyArMzQxLDkgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgVHJlZVdhbGtlciBcCiAgICAg
VUlFdmVudCBcCiAgICAgVm9pZENhbGxiYWNrIFwKKyAgICBXZWJLaXRBbmltYXRpb25FdmVudCBc
CiAgICAgV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUgXAorICAgIFdlYktpdFRyYW5zaXRpb25FdmVu
dCBcCiAgICAgV2hlZWxFdmVudCBcCiAgICAgWE1MSHR0cFJlcXVlc3QgXAogICAgIFhNTEh0dHBS
ZXF1ZXN0RXhjZXB0aW9uIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggZGM0YTA1OS4uZTlhMWY0MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTQwNSw2ICs0MDUsMjIgQEAKIAkJMzE2MTFFNjEwRTFDNEUxNDAw
RjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTYxMUU1RTBFMUM0RTE0MDBGNkE1NzkgLyog
RE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCAqLzsgfTsKIAkJMzE2MTFFNjIwRTFDNEUxNDAw
RjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2MTFFNUYwRTFDNEUxNDAwRjZBNTc5IC8q
IERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLm1tICovOyB9OwogCQkzMTYxMUU2MzBFMUM0RTE0
MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2MTFFNjAwRTFDNEUxNDAw
RjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlSW50ZXJuYWwuaCAqLzsgfTsKKwkJ
MzFDMEZGMjEwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFCMEU0Q0VC
NkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgKi87IH07CisJCTMxQzBGRjIy
MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUMwRTRDRUI2RTAwN0Q2RkU1
IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmggKi87IH07CisJCTMxQzBGRjIzMEU0Q0VCNkUwMDdE
NkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFEMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJL
aXRBbmltYXRpb25FdmVudC5pZGwgKi87IH07CisJCTMxQzBGRjI0MEU0Q0VCNkUwMDdENkZFNSAv
KiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUUwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5z
aXRpb25FdmVudC5jcHAgKi87IH07CisJCTMxQzBGRjI1MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJL
aXRUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxQzBGRjFGMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZl
bnQuaCAqLzsgfTsKKwkJMzFDMEZGMjYwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRp
b25FdmVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxQzBGRjIwMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaWRs
ICovOyB9OworCQkzMUMwRkYzRDBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25F
dmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MUMwRkYzOTBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgKi87
IH07CisJCTMxQzBGRjNFMEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdEFuaW1hdGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYz
QTBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25FdmVudC5oICovOyB9OworCQkz
MUMwRkYzRjBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGM0IwRTRD
RUZBQzAwN0Q2RkU1IC8qIEpTV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCAqLzsgfTsKKwkJMzFD
MEZGNDAwRTRDRUZBQzAwN0Q2RkU1IC8qIEpTV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYzQzBFNENFRkFD
MDA3RDZGRTUgLyogSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCAqLzsgfTsKKwkJMzFDMEZGNDkw
RTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdEFuaW1hdGlvbkV2ZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkY0MzBFNENFRkREMDA3RDZG
RTUgLyogRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCAqLzsgfTsKKwkJMzFDMEZGNEEwRTRDRUZE
RDAwN0Q2RkU1IC8qIERPTVdlYktpdEFuaW1hdGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGNDQwRTRDRUZERDAwN0Q2RkU1IC8q
IERPTVdlYktpdEFuaW1hdGlvbkV2ZW50Lm1tICovOyB9OworCQkzMUMwRkY0QjBFNENFRkREMDA3
RDZGRTUgLyogRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGNDUwRTRDRUZERDAwN0Q2RkU1
IC8qIERPTVdlYktpdEFuaW1hdGlvbkV2ZW50SW50ZXJuYWwuaCAqLzsgfTsKKwkJMzFDMEZGNEMw
RTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGNDYwRTRDRUZERDAwN0Q2
RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5oICovOyB9OworCQkzMUMwRkY0RDBFNENF
RkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGNDcwRTRDRUZERDAwN0Q2RkU1
IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbSAqLzsgfTsKKwkJMzFDMEZGNEUwRTRDRUZE
RDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudEludGVybmFsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkY0ODBFNENFRkREMDA3
RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJMzcx
RjRGNDAwRDI1QjlBRjAwRUNFMEQ1IC8qIEZvbnREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzFGNEYzRTBEMjVCOUFGMDBFQ0UwRDUgLyogRm9u
dERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkzNzFGNEY0MTBEMjVCOUFGMDBFQ0UwRDUgLyogRm9udERhdGEuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzcxRjRGM0YwRDI1QjlBRjAwRUNFMEQ1
IC8qIEZvbnREYXRhLmNwcCAqLzsgfTsKIAkJMzcxRjRGRkMwRDI1RTdGMzAwRUNFMEQ1IC8qIFNl
Z21lbnRlZEZvbnREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzNzFGNEZGQTBEMjVFN0YzMDBFQ0UwRDUgLyogU2VnbWVudGVkRm9udERhdGEuaCAq
LzsgfTsKQEAgLTQ5MzQsNiArNDk1MCwyMiBAQAogCQkzMTYxMUU1RTBFMUM0RTE0MDBGNkE1Nzkg
LyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzE2MTFFNUYwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5z
Zm9ybVZhbHVlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9N
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTMxNjExRTYwMEUxQzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUlu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdlYktpdENTU1Ry
YW5zZm9ybVZhbHVlSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFD
MEZGMUIwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFDMEZGMUMwRTRDRUI2RTAwN0Q2RkU1IC8q
IFdlYktpdEFuaW1hdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYktpdEFuaW1hdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMx
QzBGRjFEMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMUMwRkYxRTBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNp
dGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktp
dFRyYW5zaXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBG
RjFGMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBGRjIwMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRU
cmFuc2l0aW9uRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdFRyYW5zaXRp
b25FdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBGRjM5MEU0Q0VG
QUMwMDdENkZFNSAvKiBKU1dlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzMUMwRkYzQTBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJL
aXRBbmltYXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dl
YktpdEFuaW1hdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBG
RjNCMEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBGRjNDMEU0Q0VGQUMwMDdENkZF
NSAvKiBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMUMwRkY0MzBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0QW5pbWF0aW9uRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2ViS2l0QW5pbWF0aW9u
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFDMEZGNDQwRTRDRUZERDAw
N0Q2RkU1IC8qIERPTVdlYktpdEFuaW1hdGlvbkV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBGRjQ1MEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJL
aXRBbmltYXRpb25FdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTVdlYktpdEFuaW1hdGlvbkV2ZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzFDMEZGNDYwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRp
b25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRUcmFu
c2l0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFDMEZGNDcwRTRD
RUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFDMEZGNDgwRTRDRUZERDAwN0Q2RkU1IC8q
IERPTVdlYktpdFRyYW5zaXRpb25FdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTVdlYktpdFRyYW5zaXRpb25FdmVudEludGVybmFsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3MUY0RjNFMEQyNUI5QUYwMEVDRTBENSAvKiBGb250RGF0
YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250RGF0YS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzNzFGNEYzRjBEMjVCOUFGMDBFQ0UwRDUgLyogRm9udERh
dGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udERhdGEuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzFGNEZGQTBEMjVFN0YzMDBFQ0UwRDUg
LyogU2VnbWVudGVkRm9udERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2VnbWVudGVkRm9udERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk5NzUs
NiArMTAwMDcsMTIgQEAKIAkJCQk4NUM3RjQ4RjBBQUY3OURDMDA0MDE0REQgLyogRE9NVUlFdmVu
dC5oICovLAogCQkJCTg1QzdGNDkwMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50Lm1tICov
LAogCQkJCTg1QzdGNEMyMEFBRjgwODEwMDQwMTRERCAvKiBET01VSUV2ZW50UHJpdmF0ZS5oICov
LAorCQkJCTMxQzBGRjQzMEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRBbmltYXRpb25FdmVu
dC5oICovLAorCQkJCTMxQzBGRjQ0MEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRBbmltYXRp
b25FdmVudC5tbSAqLywKKwkJCQkzMUMwRkY0NTBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0
QW5pbWF0aW9uRXZlbnRJbnRlcm5hbC5oICovLAorCQkJCTMxQzBGRjQ2MEU0Q0VGREQwMDdENkZF
NSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCAqLywKKwkJCQkzMUMwRkY0NzBFNENFRkRE
MDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lm1tICovLAorCQkJCTMxQzBGRjQ4
MEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnRJbnRlcm5hbC5oICov
LAogCQkJCTg1QzdGNUU1MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2ZW50LmggKi8sCiAJ
CQkJODVDN0Y1RTYwQUFGQkFGQjAwNDAxNEREIC8qIERPTVdoZWVsRXZlbnQubW0gKi8sCiAJCQkJ
ODVGRjMxM0IwQUFGQkQ3MjAwMzc0RjM4IC8qIERPTVdoZWVsRXZlbnRQcml2YXRlLmggKi8sCkBA
IC0xMTM5Miw2ICsxMTQzMCwxMCBAQAogCQkJCTkzM0ExNEI3MEI3RDFENTIwMEE1M0ZGRCAvKiBK
U1RleHRFdmVudC5oICovLAogCQkJCUE4NjYyOUNBMDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJRXZl
bnQuY3BwICovLAogCQkJCUE4NjYyOUM5MDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJRXZlbnQuaCAq
LywKKwkJCQkzMUMwRkYzOTBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25FdmVu
dC5jcHAgKi8sCisJCQkJMzFDMEZGM0EwRTRDRUZBQzAwN0Q2RkU1IC8qIEpTV2ViS2l0QW5pbWF0
aW9uRXZlbnQuaCAqLywKKwkJCQkzMUMwRkYzQjBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRU
cmFuc2l0aW9uRXZlbnQuY3BwICovLAorCQkJCTMxQzBGRjNDMEU0Q0VGQUMwMDdENkZFNSAvKiBK
U1dlYktpdFRyYW5zaXRpb25FdmVudC5oICovLAogCQkJCTY1REYzMUYxMDlEMUNDNjAwMDBCRTMy
NSAvKiBKU1doZWVsRXZlbnQuY3BwICovLAogCQkJCTY1REYzMUYyMDlEMUNDNjAwMDBCRTMyNSAv
KiBKU1doZWVsRXZlbnQuaCAqLywKIAkJCSk7CkBAIC0xMzMxMCw2ICsxMzM1MiwxMiBAQAogCQkJ
CTE0MUI5NEVFMDlFQzQyNUEwMDBFOTQxMyAvKiBVSUV2ZW50LmlkbCAqLywKIAkJCQk5MzM1NEEz
QjBCMjRGOEM5MDAzRjZERUEgLyogVUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAgKi8sCiAJCQkJODUw
MzFCMzkwQTQ0RUZDNzAwRjk5MkUwIC8qIFVJRXZlbnRXaXRoS2V5U3RhdGUuaCAqLywKKwkJCQkz
MUMwRkYxQjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwICovLAor
CQkJCTMxQzBGRjFDMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oICov
LAorCQkJCTMxQzBGRjFEMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5p
ZGwgKi8sCisJCQkJMzFDMEZGMUUwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25F
dmVudC5jcHAgKi8sCisJCQkJMzFDMEZGMUYwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5z
aXRpb25FdmVudC5oICovLAorCQkJCTMxQzBGRjIwMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRU
cmFuc2l0aW9uRXZlbnQuaWRsICovLAogCQkJCTg1MDMxQjNBMEE0NEVGQzcwMEY5OTJFMCAvKiBX
aGVlbEV2ZW50LmNwcCAqLywKIAkJCQk4NTAzMUIzQjBBNDRFRkM3MDBGOTkyRTAgLyogV2hlZWxF
dmVudC5oICovLAogCQkJCTkzRUVDMUY3MDlDMjg3NzcwMEM1MTVEMSAvKiBXaGVlbEV2ZW50Lmlk
bCAqLywKQEAgLTE1MzMzLDYgKzE1MzgxLDE0IEBACiAJCQkJMzEyODhFNzUwRTMwMDVENjAwMzYx
OUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0MTUy
OTJFMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjU2MDI4RjBFNEI3NjU4MDA2NUIwMzggLyogUmVuZGVyTWFycXVlZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMzFDMEZGMjIwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1h
dGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUMwRkYyNTBFNENFQjZFMDA3RDZGRTUg
LyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUMwRkYzRTBF
NENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMzFDMEZGNDAwRTRDRUZBQzAwN0Q2RkU1IC8qIEpTV2ViS2l0VHJhbnNpdGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUMwRkY0OTBFNENFRkREMDA3RDZGRTUgLyogRE9NV2Vi
S2l0QW5pbWF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxQzBGRjRCMEU0Q0VGREQw
MDdENkZFNSAvKiBET01XZWJLaXRBbmltYXRpb25FdmVudEludGVybmFsLmggaW4gSGVhZGVycyAq
LywKKwkJCQkzMUMwRkY0QzBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUMwRkY0RTBFNENFRkREMDA3RDZGRTUgLyogRE9N
V2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTU0NTAs
NiArMTU1MDYsOCBAQAogCQkJCUJDMTg4MUREMEUwOEM1NDMwMDA0OEMxMyAvKiBGaWxlTGlzdC5p
ZGwgaW4gUmVzb3VyY2VzICovLAogCQkJCTMxNjExRTU1MEUxQzRENEEwMEY2QTU3OSAvKiBXZWJL
aXRDU1NUcmFuc2Zvcm1WYWx1ZS5pZGwgaW4gUmVzb3VyY2VzICovLAogCQkJCUJDM0E0NERGMEUy
NkQyMDIwMEMxNERGQSAvKiBOU1Jlc29sdmVyLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJMzFD
MEZGMjMwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmlkbCBpbiBSZXNv
dXJjZXMgKi8sCisJCQkJMzFDMEZGMjYwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRp
b25FdmVudC5pZGwgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTcxMDgsNiArMTcxNjYsMTIgQEAKIAkJ
CQlBODNFMUM3NDBFNDkwNDJDMDAxNDBCOUMgLyogU2NyaXB0Q29udHJvbGxlck1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTQ0MTUyOTJGMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1h
Z2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNTYwMjkwMEU0Qjc2NTgwMDY1QjAz
OCAvKiBSZW5kZXJNYXJxdWVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxQzBGRjIxMEU0Q0VC
NkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkzMUMwRkYyNDBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTMxQzBGRjNEMEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdEFu
aW1hdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxQzBGRjNGMEU0Q0VGQUMwMDdE
NkZFNSAvKiBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkz
MUMwRkY0QTBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQubW0gaW4g
U291cmNlcyAqLywKKwkJCQkzMUMwRkY0RDBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJh
bnNpdGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5jcHAKaW5kZXggMDBhZjkxMi4uMzIyNjRjNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dCYXNlLmNwcApAQCAtMTc5LDYgKzE3OSwxMCBAQCBjb25zdCBDbGFzc0luZm8g
SlNET01XaW5kb3dCYXNlOjpzX2luZm8gPSB7ICJXaW5kb3ciLCAwLCAmSlNET01XaW5kb3dCYXNl
VGFibGUsCiAgIG9uc3VibWl0ICAgICAgICAgICAgICBXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6
Ok9uc3VibWl0ICAgICAgICAgICBEb250RGVsZXRlCiAgIG9udW5sb2FkICAgICAgICAgICAgICBX
ZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Ok9udW5sb2FkICAgICAgICAgICBEb250RGVsZXRlCiAg
IG9uYmVmb3JldW5sb2FkICAgICAgICBXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Ok9uYmVmb3Jl
dW5sb2FkICAgICBEb250RGVsZXRlCisgIG9ud2Via2l0YW5pbWF0aW9uc3RhcnQgICAgV2ViQ29y
ZTo6SlNET01XaW5kb3dCYXNlOjpPbldlYktpdEFuaW1hdGlvblN0YXJ0ICBEb250RGVsZXRlCisg
IG9ud2Via2l0YW5pbWF0aW9uaXRlcmF0aW9uICAgICBXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6
Ok9uV2ViS2l0QW5pbWF0aW9uSXRlcmF0aW9uICAgRG9udERlbGV0ZQorICBvbndlYmtpdGFuaW1h
dGlvbmVuZCAgICAgIFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6T25XZWJLaXRBbmltYXRpb25F
bmQgICAgRG9udERlbGV0ZQorICBvbndlYmtpdHRyYW5zaXRpb25lbmQgICAgIFdlYkNvcmU6OkpT
RE9NV2luZG93QmFzZTo6T25XZWJLaXRUcmFuc2l0aW9uRW5kICAgRG9udERlbGV0ZQogIyAtLSBD
b25zdHJ1Y3RvcnMgLS0KICAgQXVkaW8gICAgICAgICAgICAgICAgIFdlYkNvcmU6OkpTRE9NV2lu
ZG93QmFzZTo6QXVkaW8gICAgICAgICAgICAgIERvbnREZWxldGUKICAgSW1hZ2UgICAgICAgICAg
ICAgICAgIFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6SW1hZ2UgICAgICAgICAgICAgIERvbnRE
ZWxldGUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCmluZGV4IGU0NjRmMGYuLjA1
Y2U2YjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaApAQCAtMTM3LDYgKzEz
Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIE9uV2luZG93TW91c2VXaGVl
bCwgT25yZXNldCwgT25yZXNpemUsIE9uc2Nyb2xsLAogICAgICAgICAgICAgT25zZWFyY2gsIE9u
c2VsZWN0LCBPbnN1Ym1pdCwgT251bmxvYWQsCiAgICAgICAgICAgICBPbmJlZm9yZXVubG9hZCwK
KyAgICAgICAgICAgIE9uV2ViS2l0QW5pbWF0aW9uU3RhcnQsIE9uV2ViS2l0QW5pbWF0aW9uSXRl
cmF0aW9uLCBPbldlYktpdEFuaW1hdGlvbkVuZCwKKyAgICAgICAgICAgIE9uV2ViS2l0VHJhbnNp
dGlvbkVuZCwKIAogICAgICAgICAgICAgLy8gQ29uc3RydWN0b3JzCiAgICAgICAgICAgICBBdWRp
bywgSW1hZ2UsIE9wdGlvbiwgWE1MSHR0cFJlcXVlc3QsCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA2M2ViNzc2Li41ZmEx
MzcwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKQEAgLTU0MCw3ICs1NDAsMTEgQEAgcHVibGljOgogICAgICAgICBET01OT0RF
SU5TRVJURURJTlRPRE9DVU1FTlRfTElTVEVORVIgPSAweDEwLAogICAgICAgICBET01BVFRSTU9E
SUZJRURfTElTVEVORVIgICAgICAgICAgICAgPSAweDIwLAogICAgICAgICBET01DSEFSQUNURVJE
QVRBTU9ESUZJRURfTElTVEVORVIgICAgPSAweDQwLAotICAgICAgICBPVkVSRkxPV0NIQU5HRURf
TElTVEVORVIgICAgICAgICAgICAgPSAweDgwCisgICAgICAgIE9WRVJGTE9XQ0hBTkdFRF9MSVNU
RU5FUiAgICAgICAgICAgICA9IDB4ODAsCisgICAgICAgIEFOSU1BVElPTkVORF9MSVNURU5FUiAg
ICAgICAgICAgICAgICA9IDB4MTAwLAorICAgICAgICBBTklNQVRJT05TVEFSVF9MSVNURU5FUiAg
ICAgICAgICAgICAgPSAweDIwMCwKKyAgICAgICAgQU5JTUFUSU9OSVRFUkFUSU9OX0xJU1RFTkVS
ICAgICAgICAgID0gMHg0MDAsCisgICAgICAgIFRSQU5TSVRJT05FTkRfTElTVEVORVIgICAgICAg
ICAgICAgICA9IDB4ODAwCiAgICAgfTsKIAogICAgIGJvb2wgaGFzTGlzdGVuZXJUeXBlKExpc3Rl
bmVyVHlwZSBsaXN0ZW5lclR5cGUpIGNvbnN0IHsgcmV0dXJuIChtX2xpc3RlbmVyVHlwZXMgJiBs
aXN0ZW5lclR5cGUpOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAg
Yi9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAKaW5kZXggYzE0MmZhMy4uMzdmYzVjOCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0V2
ZW50VGFyZ2V0LmNwcApAQCAtMTA2LDYgKzEwNiwxNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRk
TGlzdGVuZXJUeXBlVG9Eb2N1bWVudElmTmVlZGVkKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eQogICAgICAgICB0eXBlID0gRG9jdW1lbnQ6OkRPTUNIQVJBQ1RFUkRBVEFNT0RJRklFRF9MSVNU
RU5FUjsKICAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gb3ZlcmZsb3djaGFuZ2VkRXZlbnQpCiAg
ICAgICAgIHR5cGUgPSBEb2N1bWVudDo6T1ZFUkZMT1dDSEFOR0VEX0xJU1RFTkVSOworICAgIGVs
c2UgaWYgKGV2ZW50VHlwZSA9PSB3ZWJraXRBbmltYXRpb25TdGFydEV2ZW50KQorICAgICAgICB0
eXBlID0gRG9jdW1lbnQ6OkFOSU1BVElPTlNUQVJUX0xJU1RFTkVSOworICAgIGVsc2UgaWYgKGV2
ZW50VHlwZSA9PSB3ZWJraXRBbmltYXRpb25FbmRFdmVudCkKKyAgICAgICAgdHlwZSA9IERvY3Vt
ZW50OjpBTklNQVRJT05FTkRfTElTVEVORVI7CisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IHdl
YmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkV2ZW50KQorICAgICAgICB0eXBlID0gRG9jdW1lbnQ6OkFO
SU1BVElPTklURVJBVElPTl9MSVNURU5FUjsKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gd2Vi
a2l0VHJhbnNpdGlvbkVuZEV2ZW50KQorICAgICAgICB0eXBlID0gRG9jdW1lbnQ6OlRSQU5TSVRJ
T05FTkRfTElTVEVORVI7CiAKICAgICBpZiAodHlwZSkKICAgICAgICAgZG9jdW1lbnQtPmFkZExp
c3RlbmVyVHlwZSh0eXBlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Tm9k
ZS5jcHAgYi9XZWJDb3JlL2RvbS9FdmVudFRhcmdldE5vZGUuY3BwCmluZGV4IGUxODNjYTAuLjc2
NjE3YzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Tm9kZS5jcHAKKysrIGIv
V2ViQ29yZS9kb20vRXZlbnRUYXJnZXROb2RlLmNwcApAQCAtNDEsNiArNDEsOCBAQAogI2luY2x1
ZGUgIlByb2dyZXNzRXZlbnQuaCIKICNpbmNsdWRlICJSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5o
IgogI2luY2x1ZGUgIlRleHRFdmVudC5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkV2ZW50
LmgiCisjaW5jbHVkZSAiV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiV2hlZWxF
dmVudC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKQEAgLTM1OCw2ICszNjAsMjEgQEAg
dm9pZCBFdmVudFRhcmdldE5vZGU6OmRpc3BhdGNoV2hlZWxFdmVudChQbGF0Zm9ybVdoZWVsRXZl
bnQmIGUpCiAgICAgICAgIGUuYWNjZXB0KCk7CiB9CiAKK2Jvb2wgRXZlbnRUYXJnZXROb2RlOjpk
aXNwYXRjaFdlYktpdEFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSkKK3sKKyAg
ICBBU1NFUlQoIWV2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7CisgICAgCisgICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7CisgICAgcmV0dXJuIGRpc3BhdGNoRXZlbnQoV2ViS2l0QW5pbWF0aW9uRXZl
bnQ6OmNyZWF0ZShldmVudFR5cGUsIGFuaW1hdGlvbk5hbWUsIGVsYXBzZWRUaW1lKSwgZWMsIHRy
dWUpOworfQorCitib29sIEV2ZW50VGFyZ2V0Tm9kZTo6ZGlzcGF0Y2hXZWJLaXRUcmFuc2l0aW9u
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVy
dHlOYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpCit7CisgICAgQVNTRVJUKCFldmVudERpc3BhdGNo
Rm9yYmlkZGVuKCkpOworICAgIAorICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHJldHVy
biBkaXNwYXRjaEV2ZW50KFdlYktpdFRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwg
cHJvcGVydHlOYW1lLCBlbGFwc2VkVGltZSksIGVjLCB0cnVlKTsKK30KIAogdm9pZCBFdmVudFRh
cmdldE5vZGU6OmRpc3BhdGNoRm9jdXNFdmVudCgpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Rv
bS9FdmVudFRhcmdldE5vZGUuaCBiL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Tm9kZS5oCmluZGV4
IGM5ZWZiNjQuLjAyODJmODcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Tm9k
ZS5oCisrKyBiL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Tm9kZS5oCkBAIC02Nyw2ICs2Nyw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIGRpc3BhdGNoU2ltdWxhdGVkQ2xpY2soUGFzc1JlZlB0cjxFdmVu
dD4gdW5kZXJseWluZ0V2ZW50LCBib29sIHNlbmRNb3VzZUV2ZW50cyA9IGZhbHNlLCBib29sIHNo
b3dQcmVzc2VkTG9vayA9IHRydWUpOwogICAgIGJvb2wgZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyAmZXZlbnRUeXBlLCBib29sIGxlbmd0aENvbXB1dGFibGVBcmcsIHVu
c2lnbmVkIGxvYWRlZEFyZywgdW5zaWduZWQgdG90YWxBcmcpOwogICAgIHZvaWQgZGlzcGF0Y2hT
dG9yYWdlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nICZldmVudFR5cGUsIGNvbnN0IFN0cmluZyYg
a2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBGcmFt
ZSogc291cmNlKTsKKyAgICBib29sIGRpc3BhdGNoV2ViS2l0QW5pbWF0aW9uRXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91
YmxlIGVsYXBzZWRUaW1lKTsKKyAgICBib29sIGRpc3BhdGNoV2ViS2l0VHJhbnNpdGlvbkV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFt
ZSwgZG91YmxlIGVsYXBzZWRUaW1lKTsKIAogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVMb2NhbEV2
ZW50cyhFdmVudCosIGJvb2wgdXNlQ2FwdHVyZSk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9t
L1dlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBiL1dlYkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2
ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMDllYTljCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9kb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwCkBAIC0w
LDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKworI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorICAgIHVzaW5nIG5hbWVzcGFjZSBFdmVudE5hbWVz
OworICAgIAorICAgIFdlYktpdEFuaW1hdGlvbkV2ZW50OjpXZWJLaXRBbmltYXRpb25FdmVudCgp
CisgICAgOiBtX2FuaW1hdGlvbk5hbWUoKQorICAgIHsKKyAgICB9CisgICAgCisgICAgV2ViS2l0
QW5pbWF0aW9uRXZlbnQ6OldlYktpdEFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
dHlwZSwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpCisg
ICAgOiBFdmVudCh0eXBlLCB0cnVlLCB0cnVlKQorICAgICwgbV9hbmltYXRpb25OYW1lKGFuaW1h
dGlvbk5hbWUpCisgICAgLCBtX2VsYXBzZWRUaW1lKGVsYXBzZWRUaW1lKQorICAgIHsKKyAgICB9
CisgICAgCisgICAgV2ViS2l0QW5pbWF0aW9uRXZlbnQ6On5XZWJLaXRBbmltYXRpb25FdmVudCgp
CisgICAgeworICAgIH0KKyAgICAKKyAgICB2b2lkIFdlYktpdEFuaW1hdGlvbkV2ZW50Ojppbml0
V2ViS2l0QW5pbWF0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCAKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAvKmNhbkJ1YmJsZUFyZyov
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIC8qY2Fu
Y2VsYWJsZUFyZyovLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRvdWJsZSBlbGFwc2VkVGltZSkKKyAgICB7CisgICAgICAgIGlm
IChkaXNwYXRjaGVkKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAgICBp
bml0RXZlbnQodHlwZSwgZmFsc2UsIHRydWUpOworICAgICAgICAKKyAgICAgICAgbV9hbmltYXRp
b25OYW1lID0gYW5pbWF0aW9uTmFtZTsKKyAgICB9CisgICAgCisgICAgY29uc3QgU3RyaW5nJiBX
ZWJLaXRBbmltYXRpb25FdmVudDo6YW5pbWF0aW9uTmFtZSgpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gbV9hbmltYXRpb25OYW1lOworICAgIH0KKyAgICAKKyAgICBkb3VibGUgV2ViS2l0
QW5pbWF0aW9uRXZlbnQ6OmVsYXBzZWRUaW1lKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biBtX2VsYXBzZWRUaW1lOworICAgIH0KKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmggYi9XZWJDb3JlL2Rv
bS9XZWJLaXRBbmltYXRpb25FdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmJjN2U1N2MKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2RvbS9XZWJLaXRBbmltYXRp
b25FdmVudC5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIw
MDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFdlYktp
dEFuaW1hdGlvbkV2ZW50X2gKKyNkZWZpbmUgV2ViS2l0QW5pbWF0aW9uRXZlbnRfaAorCisjaW5j
bHVkZSAiRXZlbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgICAgICAKKyAgICBjbGFz
cyBXZWJLaXRBbmltYXRpb25FdmVudCA6IHB1YmxpYyBFdmVudCB7CisgICAgcHVibGljOgorICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRBbmltYXRpb25FdmVudD4gY3JlYXRlKCkKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRBbmltYXRpb25F
dmVudCk7CisgICAgICAgIH0KKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0
aW9uRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYg
YW5pbWF0aW9uTmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKQorICAgICAgICB7CisgICAgICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktpdEFuaW1hdGlvbkV2ZW50KHR5cGUsIGFuaW1hdGlv
bk5hbWUsIGVsYXBzZWRUaW1lKSk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIH5XZWJL
aXRBbmltYXRpb25FdmVudCgpOworICAgICAgICAKKyAgICAgICAgdm9pZCBpbml0V2ViS2l0QW5p
bWF0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCAKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBjYW5CdWJibGVBcmcsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJvb2wgY2FuY2VsYWJsZUFyZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkb3VibGUgZWxhcHNlZFRpbWUpOworICAgICAgICAgICAgICAgICAgICAgICAg
CisgICAgICAgIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSgpIGNvbnN0OworICAgICAgICBk
b3VibGUgZWxhcHNlZFRpbWUoKSBjb25zdDsKKyAgICAgICAgCisgICAgICAgIHZpcnR1YWwgYm9v
bCBpc1dlYktpdEFuaW1hdGlvbkV2ZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAg
ICAKKyAgICBwcml2YXRlOgorICAgICAgICBXZWJLaXRBbmltYXRpb25FdmVudCgpOworICAgICAg
ICBXZWJLaXRBbmltYXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFN0
cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKTsKKworICAgICAgICBTdHJp
bmcgbV9hbmltYXRpb25OYW1lOworICAgICAgICBkb3VibGUgbV9lbGFwc2VkVGltZTsKKyAgICB9
OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gV2ViS2l0QW5pbWF0
aW9uRXZlbnRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQu
aWRsIGIvV2ViQ29yZS9kb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmExOWE4NzQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3Jl
L2RvbS9XZWJLaXRBbmltYXRpb25FdmVudC5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKK21vZHVsZSBldmVudHMgeworCitpbnRlcmZhY2UgV2ViS2l0QW5pbWF0aW9uRXZlbnQg
OiBFdmVudCB7CisgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgICAgYW5p
bWF0aW9uTmFtZTsKKyAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSAgICAgICAgICAgICBl
bGFwc2VkVGltZTsKKyAgICAgdm9pZCAgICAgICAgICAgICAgIGluaXRXZWJLaXRBbmltYXRpb25F
dmVudChpbiBET01TdHJpbmcgdHlwZUFyZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBib29sZWFuIGNhbkJ1YmJsZUFyZywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGNhbmNlbGFibGVBcmcsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5nIGFuaW1h
dGlvbk5hbWVBcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gZG91YmxlIGVsYXBzZWRUaW1lQXJnKTsKK307CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
ZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgYi9XZWJDb3JlL2RvbS9XZWJLaXRUcmFuc2l0
aW9uRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZhMDUyZTcK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2RvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3Bw
CkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCisKKyNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKKyAgICB1c2luZyBuYW1lc3BhY2UgRXZl
bnROYW1lczsKKyAgICAKKyAgICBXZWJLaXRUcmFuc2l0aW9uRXZlbnQ6OldlYktpdFRyYW5zaXRp
b25FdmVudCgpCisgICAgOiBtX3Byb3BlcnR5TmFtZSgpCisgICAgeworICAgIH0KKyAgICAKKyAg
ICBXZWJLaXRUcmFuc2l0aW9uRXZlbnQ6OldlYktpdFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgZWxhcHNl
ZFRpbWUpCisgICAgOiBFdmVudCh0eXBlLCB0cnVlLCB0cnVlKQorICAgICwgbV9wcm9wZXJ0eU5h
bWUocHJvcGVydHlOYW1lKQorICAgICwgbV9lbGFwc2VkVGltZShlbGFwc2VkVGltZSkKKyAgICB7
CisgICAgfQorICAgIAorICAgIFdlYktpdFRyYW5zaXRpb25FdmVudDo6fldlYktpdFRyYW5zaXRp
b25FdmVudCgpCisgICAgeworICAgIH0KKyAgICAKKyAgICB2b2lkIFdlYktpdFRyYW5zaXRpb25F
dmVudDo6aW5pdFdlYktpdFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIC8qY2Fu
QnViYmxlQXJnKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJvb2wgLypjYW5jZWxhYmxlQXJnKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgZWxhcHNlZFRpbWUpCisgICAgewor
ICAgICAgICBpZiAoZGlzcGF0Y2hlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAK
KyAgICAgICAgaW5pdEV2ZW50KHR5cGUsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgCisgICAgICAg
IG1fcHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lOworICAgIH0KKyAgICAKKyAgICBjb25zdCBT
dHJpbmcmIFdlYktpdFRyYW5zaXRpb25FdmVudDo6cHJvcGVydHlOYW1lKCkgY29uc3QKKyAgICB7
CisgICAgICAgIHJldHVybiBtX3Byb3BlcnR5TmFtZTsKKyAgICB9CisgICAgCisgICAgZG91Ymxl
IFdlYktpdFRyYW5zaXRpb25FdmVudDo6ZWxhcHNlZFRpbWUoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG1fZWxhcHNlZFRpbWU7CisgICAgfQorICAgIAorfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggYi9X
ZWJDb3JlL2RvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5jY2JmMjUyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9kb20vV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50LmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgV2ViS2l0VHJhbnNpdGlvbkV2ZW50X2gKKyNkZWZpbmUgV2ViS2l0VHJhbnNpdGlvbkV2
ZW50X2gKKworI2luY2x1ZGUgIkV2ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAg
ICAgCisgICAgY2xhc3MgV2ViS2l0VHJhbnNpdGlvbkV2ZW50IDogcHVibGljIEV2ZW50IHsKKyAg
ICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdFRyYW5zaXRpb25FdmVu
dD4gY3JlYXRlKCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBX
ZWJLaXRUcmFuc2l0aW9uRXZlbnQpOworICAgICAgICB9CisgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFdlYktpdFRyYW5zaXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0VHJhbnNpdGlvbkV2
ZW50KHR5cGUsIGFuaW1hdGlvbk5hbWUsIGVsYXBzZWRUaW1lKSk7CisgICAgICAgIH0KKworICAg
ICAgICB2aXJ0dWFsIH5XZWJLaXRUcmFuc2l0aW9uRXZlbnQoKTsKKyAgICAgICAgCisgICAgICAg
IHZvaWQgaW5pdFdlYktpdFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUs
IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGNhbkJ1YmJsZUFyZywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5jZWxhYmxlQXJnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGVsYXBzZWRUaW1lKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIAorICAgICAgICBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSgp
IGNvbnN0OworICAgICAgICBkb3VibGUgZWxhcHNlZFRpbWUoKSBjb25zdDsKKyAgICAgICAgCisg
ICAgICAgIHZpcnR1YWwgYm9vbCBpc1dlYktpdFRyYW5zaXRpb25FdmVudCgpIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KKyAgICAgICAgCisgICAgcHJpdmF0ZToKKyAgICAgICAgV2ViS2l0VHJhbnNp
dGlvbkV2ZW50KCk7CisgICAgICAgIFdlYktpdFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9taWNT
dHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgZWxhcHNlZFRp
bWUpOworCisgICAgICAgIFN0cmluZyBtX3Byb3BlcnR5TmFtZTsKKyAgICAgICAgZG91YmxlIG1f
ZWxhcHNlZFRpbWU7CisgICAgfTsKKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIFdlYktpdFRyYW5zaXRpb25FdmVudF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9X
ZWJLaXRUcmFuc2l0aW9uRXZlbnQuaWRsIGIvV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2
ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTgwZGFlCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmlkbApAQCAt
MCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9kdWxlIGV2ZW50cyB7CisKK2ludGVyZmFj
ZSBXZWJLaXRUcmFuc2l0aW9uRXZlbnQgOiBFdmVudCB7CisgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgICAgICAgICAgcHJvcGVydHlOYW1lOworICAgICByZWFkb25seSBhdHRyaWJ1
dGUgZG91YmxlICAgICAgICAgICAgIGVsYXBzZWRUaW1lOworICAgICB2b2lkICAgICAgICAgICAg
ICAgaW5pdFdlYktpdFRyYW5zaXRpb25FdmVudChpbiBET01TdHJpbmcgdHlwZUFyZywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGNhbkJ1YmJs
ZUFyZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29s
ZWFuIGNhbmNlbGFibGVBcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gRE9NU3RyaW5nIHByb3BlcnR5TmFtZUFyZywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBkb3VibGUgZWxhcHNlZFRpbWVBcmcpOworfTsKKwor
fQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiBiL1dlYkNv
cmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KaW5kZXggODE2YjlmZS4uYTM3MWZhMyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgorKysgYi9XZWJDb3Jl
L2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCkBAIC0xNTQsNiArMTU0LDEwIEBAIG9uc2VsZWN0
c3RhcnQKIG9uc3RvcmFnZQogb25zdWJtaXQKIG9udW5sb2FkCitvbndlYmtpdGFuaW1hdGlvbnN0
YXJ0CitvbndlYmtpdGFuaW1hdGlvbml0ZXJhdGlvbgorb253ZWJraXRhbmltYXRpb25lbmQKK29u
d2Via2l0dHJhbnNpdGlvbmVuZAogcGFnZXgKIHBhZ2V5CiBwbGFjZWhvbGRlcgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5jcHAKaW5kZXggYzM0ZGIyMS4uZWFlOTlmMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC0yMTks
NiArMjE5LDE0IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBl
ZEF0dHJpYnV0ZSAqYXR0cikKICAgICAgICAgc2V0SFRNTEV2ZW50TGlzdGVuZXIoc3VibWl0RXZl
bnQsIGF0dHIpOwogICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9uZXJyb3JBdHRyKSB7
CiAgICAgICAgIHNldEhUTUxFdmVudExpc3RlbmVyKGVycm9yRXZlbnQsIGF0dHIpOworICAgIH0g
ZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9ud2Via2l0YW5pbWF0aW9uc3RhcnRBdHRyKSB7Cisg
ICAgICAgIHNldEhUTUxFdmVudExpc3RlbmVyKHdlYmtpdEFuaW1hdGlvblN0YXJ0RXZlbnQsIGF0
dHIpOworICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9ud2Via2l0YW5pbWF0aW9uaXRl
cmF0aW9uQXR0cikgeworICAgICAgICBzZXRIVE1MRXZlbnRMaXN0ZW5lcih3ZWJraXRBbmltYXRp
b25JdGVyYXRpb25FdmVudCwgYXR0cik7CisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0g
b253ZWJraXRhbmltYXRpb25lbmRBdHRyKSB7CisgICAgICAgIHNldEhUTUxFdmVudExpc3RlbmVy
KHdlYmtpdEFuaW1hdGlvbkVuZEV2ZW50LCBhdHRyKTsKKyAgICB9IGVsc2UgaWYgKGF0dHItPm5h
bWUoKSA9PSBvbndlYmtpdHRyYW5zaXRpb25lbmRBdHRyKSB7CisgICAgICAgIHNldEhUTUxFdmVu
dExpc3RlbmVyKHdlYmtpdFRyYW5zaXRpb25FbmRFdmVudCwgYXR0cik7CiAgICAgfQogfQogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9XZWJDb3Jl
L3BhZ2UvQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggMzViZWI1My4uNGVkMzJjMiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wYWdlL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNv
cmUvcGFnZS9BbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAtNzc1LDcgKzc3NSwxMiBAQCB2b2lk
IEFuaW1hdGlvbkJhc2U6OmFuaW1hdGlvbkV2ZW50RGlzcGF0Y2hlckZpcmVkKEVsZW1lbnQqIGVs
ZW1lbnQsIGNvbnN0IEF0b21pYwogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgLy8gRklYTUU6IEFjdHVhbCBldmVudCBkaXNwYXRjaGluZyB3aWxsIGJlIGRvbmUgaGVy
ZQorICAgIGlmIChldmVudFR5cGUgPT0gRXZlbnROYW1lczo6d2Via2l0VHJhbnNpdGlvbkVuZEV2
ZW50KSB7CisgICAgICAgIGVsZW1lbnQtPmRpc3BhdGNoV2ViS2l0VHJhbnNpdGlvbkV2ZW50KGV2
ZW50VHlwZSwgbmFtZSwgZWxhcHNlZFRpbWUpOworICAgIH0gCisgICAgZWxzZSB7CisgICAgICAg
IGVsZW1lbnQtPmRpc3BhdGNoV2ViS2l0QW5pbWF0aW9uRXZlbnQoZXZlbnRUeXBlLCBuYW1lLCBl
bGFwc2VkVGltZSk7CisgICAgfQogCiAgICAgaWYgKGFuaW1FdmVudFR5cGUgPT0gRXZlbnROYW1l
czo6d2Via2l0QW5pbWF0aW9uRW5kRXZlbnQpIHsKICAgICAgICAgaWYgKGVsZW1lbnQtPnJlbmRl
cmVyKCkpIHsKQEAgLTE4NjEsNyArMTg2NiwyNCBAQCB2b2lkIEltcGxpY2l0QW5pbWF0aW9uOjpv
bkFuaW1hdGlvbkVuZChkb3VibGUgaW5FbGFwc2VkVGltZSkKIAogYm9vbCBJbXBsaWNpdEFuaW1h
dGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGluRXZlbnRUeXBl
LCBkb3VibGUgaW5FbGFwc2VkVGltZSkKIHsKLSAgICAvLyBGSVhNRTogZXZlbnQgZGlzcGF0Y2hp
bmcgY29kZSB3aWxsIGdvIGhlcmUKKyAgICBpZiAoaW5FdmVudFR5cGUgPT0gRXZlbnROYW1lczo6
d2Via2l0VHJhbnNpdGlvbkVuZEV2ZW50KSB7CisgICAgICAgIERvY3VtZW50OjpMaXN0ZW5lclR5
cGUgbGlzdGVuZXJUeXBlID0gRG9jdW1lbnQ6OlRSQU5TSVRJT05FTkRfTElTVEVORVI7CisgICAg
ICAgIAorICAgICAgICBpZiAoc2hvdWxkU2VuZEV2ZW50Rm9yTGlzdGVuZXIobGlzdGVuZXJUeXBl
KSkgeworICAgICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IGVsZW1lbnRGb3JFdmVudERpc3Bh
dGNoKCk7CisgICAgICAgICAgICBTdHJpbmcgcHJvcGVydHlOYW1lOworICAgICAgICAgICAgaWYg
KG1fcHJvcGVydHkgPT0gY0FuaW1hdGVBbGwpCisgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1l
ID0gU3RyaW5nKCIiKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBwcm9wZXJ0
eU5hbWUgPSBTdHJpbmcoZ2V0UHJvcGVydHlOYW1lKChDU1NQcm9wZXJ0eUlEKW1fcHJvcGVydHkp
KTsKKyAgICAgICAgICAgIGlmIChlbGVtZW50KSB7CisgICAgICAgICAgICAgICAgbV93YWl0aW5n
Rm9yRW5kRXZlbnQgPSB0cnVlOworICAgICAgICAgICAgICAgIG1fYW5pbWF0aW9uRXZlbnREaXNw
YXRjaGVyLnN0YXJ0VGltZXIoZWxlbWVudCwgcHJvcGVydHlOYW1lLCBtX3Byb3BlcnR5LCB0cnVl
LCBpbkV2ZW50VHlwZSwgaW5FbGFwc2VkVGltZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7IC8vIERpZCBkaXNwYXRjaCBhbiBldmVudAorICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfQorICAgIAogICAgIHJldHVybiBmYWxzZTsgLy8gRGlkbid0IGRpc3BhdGNoIGFuIGV2ZW50
CiB9CiAKQEAgLTIwMTgsOCArMjA0MCwyNCBAQCB2b2lkIEtleWZyYW1lQW5pbWF0aW9uOjpvbkFu
aW1hdGlvbkVuZChkb3VibGUgaW5FbGFwc2VkVGltZSkKIAogYm9vbCBLZXlmcmFtZUFuaW1hdGlv
bjo6c2VuZEFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgaW5FdmVudFR5cGUsIGRv
dWJsZSBpbkVsYXBzZWRUaW1lKQogewotICAgIC8vIEZJWE1FOiBFdmVudCBkaXNwYXRjaCBnb2Vz
IGhlcmUKLSAgICByZXR1cm4gZmFsc2U7IC8vIGRpZG4ndCBkaXNwYXRjaCBhbiBldmVudAorICAg
IERvY3VtZW50OjpMaXN0ZW5lclR5cGUgbGlzdGVuZXJUeXBlOworICAgIGlmIChpbkV2ZW50VHlw
ZSA9PSBFdmVudE5hbWVzOjp3ZWJraXRBbmltYXRpb25JdGVyYXRpb25FdmVudCkKKyAgICAgICAg
bGlzdGVuZXJUeXBlID0gRG9jdW1lbnQ6OkFOSU1BVElPTklURVJBVElPTl9MSVNURU5FUjsKKyAg
ICBlbHNlIGlmIChpbkV2ZW50VHlwZSA9PSBFdmVudE5hbWVzOjp3ZWJraXRBbmltYXRpb25FbmRF
dmVudCkKKyAgICAgICAgbGlzdGVuZXJUeXBlID0gRG9jdW1lbnQ6OkFOSU1BVElPTkVORF9MSVNU
RU5FUjsKKyAgICBlbHNlCisgICAgICAgIGxpc3RlbmVyVHlwZSA9IERvY3VtZW50OjpBTklNQVRJ
T05TVEFSVF9MSVNURU5FUjsKKyAgICAKKyAgICBpZiAoc2hvdWxkU2VuZEV2ZW50Rm9yTGlzdGVu
ZXIobGlzdGVuZXJUeXBlKSkgeworICAgICAgICBFbGVtZW50KiBlbGVtZW50ID0gZWxlbWVudEZv
ckV2ZW50RGlzcGF0Y2goKTsKKyAgICAgICAgaWYgKGVsZW1lbnQpIHsKKyAgICAgICAgICAgIG1f
d2FpdGluZ0ZvckVuZEV2ZW50ID0gdHJ1ZTsKKyAgICAgICAgICAgIG1fYW5pbWF0aW9uRXZlbnRE
aXNwYXRjaGVyLnN0YXJ0VGltZXIoZWxlbWVudCwgbV9uYW1lLCAtMSwgdHJ1ZSwgaW5FdmVudFR5
cGUsIGluRWxhcHNlZFRpbWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8vIERpZCBkaXNw
YXRjaCBhbiBldmVudAorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOyAvLyBE
aWQgbm90IGRpc3BhdGNoIGFuIGV2ZW50CiB9CiAKIHZvaWQgS2V5ZnJhbWVBbmltYXRpb246Om92
ZXJyaWRlQW5pbWF0aW9ucygpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22711</attachid>
            <date>2008-08-08 15:17:33 -0700</date>
            <delta_ts>2008-08-08 15:26:02 -0700</delta_ts>
            <desc>working patch, with a test/example</desc>
            <filename>events.patch</filename>
            <type>text/plain</type>
            <size>44265</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQppbmRleCA1NGEwZGFhLi44MDMxNWEyIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBA
IC0zNDEsNyArMzQxLDkgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgVHJlZVdhbGtlciBcCiAgICAg
VUlFdmVudCBcCiAgICAgVm9pZENhbGxiYWNrIFwKKyAgICBXZWJLaXRBbmltYXRpb25FdmVudCBc
CiAgICAgV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUgXAorICAgIFdlYktpdFRyYW5zaXRpb25FdmVu
dCBcCiAgICAgV2hlZWxFdmVudCBcCiAgICAgWE1MSHR0cFJlcXVlc3QgXAogICAgIFhNTEh0dHBS
ZXF1ZXN0RXhjZXB0aW9uIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggZGM0YTA1OS4uZTlhMWY0MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTQwNSw2ICs0MDUsMjIgQEAKIAkJMzE2MTFFNjEwRTFDNEUxNDAw
RjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTYxMUU1RTBFMUM0RTE0MDBGNkE1NzkgLyog
RE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCAqLzsgfTsKIAkJMzE2MTFFNjIwRTFDNEUxNDAw
RjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2MTFFNUYwRTFDNEUxNDAwRjZBNTc5IC8q
IERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLm1tICovOyB9OwogCQkzMTYxMUU2MzBFMUM0RTE0
MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2MTFFNjAwRTFDNEUxNDAw
RjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlSW50ZXJuYWwuaCAqLzsgfTsKKwkJ
MzFDMEZGMjEwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFCMEU0Q0VC
NkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgKi87IH07CisJCTMxQzBGRjIy
MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUMwRTRDRUI2RTAwN0Q2RkU1
IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmggKi87IH07CisJCTMxQzBGRjIzMEU0Q0VCNkUwMDdE
NkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFEMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJL
aXRBbmltYXRpb25FdmVudC5pZGwgKi87IH07CisJCTMxQzBGRjI0MEU0Q0VCNkUwMDdENkZFNSAv
KiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGMUUwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5z
aXRpb25FdmVudC5jcHAgKi87IH07CisJCTMxQzBGRjI1MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJL
aXRUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxQzBGRjFGMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZl
bnQuaCAqLzsgfTsKKwkJMzFDMEZGMjYwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRp
b25FdmVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxQzBGRjIwMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaWRs
ICovOyB9OworCQkzMUMwRkYzRDBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25F
dmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MUMwRkYzOTBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgKi87
IH07CisJCTMxQzBGRjNFMEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdEFuaW1hdGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYz
QTBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25FdmVudC5oICovOyB9OworCQkz
MUMwRkYzRjBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGM0IwRTRD
RUZBQzAwN0Q2RkU1IC8qIEpTV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCAqLzsgfTsKKwkJMzFD
MEZGNDAwRTRDRUZBQzAwN0Q2RkU1IC8qIEpTV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYzQzBFNENFRkFD
MDA3RDZGRTUgLyogSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCAqLzsgfTsKKwkJMzFDMEZGNDkw
RTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdEFuaW1hdGlvbkV2ZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkY0MzBFNENFRkREMDA3RDZG
RTUgLyogRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCAqLzsgfTsKKwkJMzFDMEZGNEEwRTRDRUZE
RDAwN0Q2RkU1IC8qIERPTVdlYktpdEFuaW1hdGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGNDQwRTRDRUZERDAwN0Q2RkU1IC8q
IERPTVdlYktpdEFuaW1hdGlvbkV2ZW50Lm1tICovOyB9OworCQkzMUMwRkY0QjBFNENFRkREMDA3
RDZGRTUgLyogRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGNDUwRTRDRUZERDAwN0Q2RkU1
IC8qIERPTVdlYktpdEFuaW1hdGlvbkV2ZW50SW50ZXJuYWwuaCAqLzsgfTsKKwkJMzFDMEZGNEMw
RTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGNDYwRTRDRUZERDAwN0Q2
RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5oICovOyB9OworCQkzMUMwRkY0RDBFNENF
RkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGNDcwRTRDRUZERDAwN0Q2RkU1
IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbSAqLzsgfTsKKwkJMzFDMEZGNEUwRTRDRUZE
RDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudEludGVybmFsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkY0ODBFNENFRkREMDA3
RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJMzcx
RjRGNDAwRDI1QjlBRjAwRUNFMEQ1IC8qIEZvbnREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzFGNEYzRTBEMjVCOUFGMDBFQ0UwRDUgLyogRm9u
dERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkzNzFGNEY0MTBEMjVCOUFGMDBFQ0UwRDUgLyogRm9udERhdGEuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzcxRjRGM0YwRDI1QjlBRjAwRUNFMEQ1
IC8qIEZvbnREYXRhLmNwcCAqLzsgfTsKIAkJMzcxRjRGRkMwRDI1RTdGMzAwRUNFMEQ1IC8qIFNl
Z21lbnRlZEZvbnREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzNzFGNEZGQTBEMjVFN0YzMDBFQ0UwRDUgLyogU2VnbWVudGVkRm9udERhdGEuaCAq
LzsgfTsKQEAgLTQ5MzQsNiArNDk1MCwyMiBAQAogCQkzMTYxMUU1RTBFMUM0RTE0MDBGNkE1Nzkg
LyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMzE2MTFFNUYwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5z
Zm9ybVZhbHVlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9N
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTMxNjExRTYwMEUxQzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUlu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdlYktpdENTU1Ry
YW5zZm9ybVZhbHVlSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFD
MEZGMUIwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFDMEZGMUMwRTRDRUI2RTAwN0Q2RkU1IC8q
IFdlYktpdEFuaW1hdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYktpdEFuaW1hdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMx
QzBGRjFEMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkzMUMwRkYxRTBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNp
dGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktp
dFRyYW5zaXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBG
RjFGMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBGRjIwMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRU
cmFuc2l0aW9uRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdFRyYW5zaXRp
b25FdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBGRjM5MEU0Q0VG
QUMwMDdENkZFNSAvKiBKU1dlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkzMUMwRkYzQTBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJL
aXRBbmltYXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dl
YktpdEFuaW1hdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBG
RjNCMEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBGRjNDMEU0Q0VGQUMwMDdENkZF
NSAvKiBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkzMUMwRkY0MzBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0QW5pbWF0aW9uRXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2ViS2l0QW5pbWF0aW9u
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFDMEZGNDQwRTRDRUZERDAw
N0Q2RkU1IC8qIERPTVdlYktpdEFuaW1hdGlvbkV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBGRjQ1MEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJL
aXRBbmltYXRpb25FdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTVdlYktpdEFuaW1hdGlvbkV2ZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMzFDMEZGNDYwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRp
b25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRUcmFu
c2l0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFDMEZGNDcwRTRD
RUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFDMEZGNDgwRTRDRUZERDAwN0Q2RkU1IC8q
IERPTVdlYktpdFRyYW5zaXRpb25FdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTVdlYktpdFRyYW5zaXRpb25FdmVudEludGVybmFsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTM3MUY0RjNFMEQyNUI5QUYwMEVDRTBENSAvKiBGb250RGF0
YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250RGF0YS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzNzFGNEYzRjBEMjVCOUFGMDBFQ0UwRDUgLyogRm9udERh
dGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udERhdGEuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzNzFGNEZGQTBEMjVFN0YzMDBFQ0UwRDUg
LyogU2VnbWVudGVkRm9udERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
U2VnbWVudGVkRm9udERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk5NzUs
NiArMTAwMDcsMTIgQEAKIAkJCQk4NUM3RjQ4RjBBQUY3OURDMDA0MDE0REQgLyogRE9NVUlFdmVu
dC5oICovLAogCQkJCTg1QzdGNDkwMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50Lm1tICov
LAogCQkJCTg1QzdGNEMyMEFBRjgwODEwMDQwMTRERCAvKiBET01VSUV2ZW50UHJpdmF0ZS5oICov
LAorCQkJCTMxQzBGRjQzMEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRBbmltYXRpb25FdmVu
dC5oICovLAorCQkJCTMxQzBGRjQ0MEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRBbmltYXRp
b25FdmVudC5tbSAqLywKKwkJCQkzMUMwRkY0NTBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0
QW5pbWF0aW9uRXZlbnRJbnRlcm5hbC5oICovLAorCQkJCTMxQzBGRjQ2MEU0Q0VGREQwMDdENkZF
NSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCAqLywKKwkJCQkzMUMwRkY0NzBFNENFRkRE
MDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lm1tICovLAorCQkJCTMxQzBGRjQ4
MEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnRJbnRlcm5hbC5oICov
LAogCQkJCTg1QzdGNUU1MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2ZW50LmggKi8sCiAJ
CQkJODVDN0Y1RTYwQUFGQkFGQjAwNDAxNEREIC8qIERPTVdoZWVsRXZlbnQubW0gKi8sCiAJCQkJ
ODVGRjMxM0IwQUFGQkQ3MjAwMzc0RjM4IC8qIERPTVdoZWVsRXZlbnRQcml2YXRlLmggKi8sCkBA
IC0xMTM5Miw2ICsxMTQzMCwxMCBAQAogCQkJCTkzM0ExNEI3MEI3RDFENTIwMEE1M0ZGRCAvKiBK
U1RleHRFdmVudC5oICovLAogCQkJCUE4NjYyOUNBMDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJRXZl
bnQuY3BwICovLAogCQkJCUE4NjYyOUM5MDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJRXZlbnQuaCAq
LywKKwkJCQkzMUMwRkYzOTBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25FdmVu
dC5jcHAgKi8sCisJCQkJMzFDMEZGM0EwRTRDRUZBQzAwN0Q2RkU1IC8qIEpTV2ViS2l0QW5pbWF0
aW9uRXZlbnQuaCAqLywKKwkJCQkzMUMwRkYzQjBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRU
cmFuc2l0aW9uRXZlbnQuY3BwICovLAorCQkJCTMxQzBGRjNDMEU0Q0VGQUMwMDdENkZFNSAvKiBK
U1dlYktpdFRyYW5zaXRpb25FdmVudC5oICovLAogCQkJCTY1REYzMUYxMDlEMUNDNjAwMDBCRTMy
NSAvKiBKU1doZWVsRXZlbnQuY3BwICovLAogCQkJCTY1REYzMUYyMDlEMUNDNjAwMDBCRTMyNSAv
KiBKU1doZWVsRXZlbnQuaCAqLywKIAkJCSk7CkBAIC0xMzMxMCw2ICsxMzM1MiwxMiBAQAogCQkJ
CTE0MUI5NEVFMDlFQzQyNUEwMDBFOTQxMyAvKiBVSUV2ZW50LmlkbCAqLywKIAkJCQk5MzM1NEEz
QjBCMjRGOEM5MDAzRjZERUEgLyogVUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAgKi8sCiAJCQkJODUw
MzFCMzkwQTQ0RUZDNzAwRjk5MkUwIC8qIFVJRXZlbnRXaXRoS2V5U3RhdGUuaCAqLywKKwkJCQkz
MUMwRkYxQjBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwICovLAor
CQkJCTMxQzBGRjFDMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oICov
LAorCQkJCTMxQzBGRjFEMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5p
ZGwgKi8sCisJCQkJMzFDMEZGMUUwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25F
dmVudC5jcHAgKi8sCisJCQkJMzFDMEZGMUYwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5z
aXRpb25FdmVudC5oICovLAorCQkJCTMxQzBGRjIwMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRU
cmFuc2l0aW9uRXZlbnQuaWRsICovLAogCQkJCTg1MDMxQjNBMEE0NEVGQzcwMEY5OTJFMCAvKiBX
aGVlbEV2ZW50LmNwcCAqLywKIAkJCQk4NTAzMUIzQjBBNDRFRkM3MDBGOTkyRTAgLyogV2hlZWxF
dmVudC5oICovLAogCQkJCTkzRUVDMUY3MDlDMjg3NzcwMEM1MTVEMSAvKiBXaGVlbEV2ZW50Lmlk
bCAqLywKQEAgLTE1MzMzLDYgKzE1MzgxLDE0IEBACiAJCQkJMzEyODhFNzUwRTMwMDVENjAwMzYx
OUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0MTUy
OTJFMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjU2MDI4RjBFNEI3NjU4MDA2NUIwMzggLyogUmVuZGVyTWFycXVlZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMzFDMEZGMjIwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1h
dGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUMwRkYyNTBFNENFQjZFMDA3RDZGRTUg
LyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUMwRkYzRTBF
NENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJMzFDMEZGNDAwRTRDRUZBQzAwN0Q2RkU1IC8qIEpTV2ViS2l0VHJhbnNpdGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUMwRkY0OTBFNENFRkREMDA3RDZGRTUgLyogRE9NV2Vi
S2l0QW5pbWF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxQzBGRjRCMEU0Q0VGREQw
MDdENkZFNSAvKiBET01XZWJLaXRBbmltYXRpb25FdmVudEludGVybmFsLmggaW4gSGVhZGVycyAq
LywKKwkJCQkzMUMwRkY0QzBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUMwRkY0RTBFNENFRkREMDA3RDZGRTUgLyogRE9N
V2ViS2l0VHJhbnNpdGlvbkV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTU0NTAs
NiArMTU1MDYsOCBAQAogCQkJCUJDMTg4MUREMEUwOEM1NDMwMDA0OEMxMyAvKiBGaWxlTGlzdC5p
ZGwgaW4gUmVzb3VyY2VzICovLAogCQkJCTMxNjExRTU1MEUxQzRENEEwMEY2QTU3OSAvKiBXZWJL
aXRDU1NUcmFuc2Zvcm1WYWx1ZS5pZGwgaW4gUmVzb3VyY2VzICovLAogCQkJCUJDM0E0NERGMEUy
NkQyMDIwMEMxNERGQSAvKiBOU1Jlc29sdmVyLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJMzFD
MEZGMjMwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmlkbCBpbiBSZXNv
dXJjZXMgKi8sCisJCQkJMzFDMEZGMjYwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRp
b25FdmVudC5pZGwgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTcxMDgsNiArMTcxNjYsMTIgQEAKIAkJ
CQlBODNFMUM3NDBFNDkwNDJDMDAxNDBCOUMgLyogU2NyaXB0Q29udHJvbGxlck1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTQ0MTUyOTJGMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1h
Z2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNTYwMjkwMEU0Qjc2NTgwMDY1QjAz
OCAvKiBSZW5kZXJNYXJxdWVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxQzBGRjIxMEU0Q0VC
NkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQkzMUMwRkYyNDBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTMxQzBGRjNEMEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdEFu
aW1hdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMxQzBGRjNGMEU0Q0VGQUMwMDdE
NkZFNSAvKiBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkz
MUMwRkY0QTBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQubW0gaW4g
U291cmNlcyAqLywKKwkJCQkzMUMwRkY0RDBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJh
bnNpdGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93QmFzZS5jcHAKaW5kZXggMDBhZjkxMi4uNzk0ZGIwYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dCYXNlLmNwcApAQCAtMTc5LDYgKzE3OSwxMCBAQCBjb25zdCBDbGFzc0luZm8g
SlNET01XaW5kb3dCYXNlOjpzX2luZm8gPSB7ICJXaW5kb3ciLCAwLCAmSlNET01XaW5kb3dCYXNl
VGFibGUsCiAgIG9uc3VibWl0ICAgICAgICAgICAgICBXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6
Ok9uc3VibWl0ICAgICAgICAgICBEb250RGVsZXRlCiAgIG9udW5sb2FkICAgICAgICAgICAgICBX
ZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Ok9udW5sb2FkICAgICAgICAgICBEb250RGVsZXRlCiAg
IG9uYmVmb3JldW5sb2FkICAgICAgICBXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Ok9uYmVmb3Jl
dW5sb2FkICAgICBEb250RGVsZXRlCisgIG9ud2Via2l0YW5pbWF0aW9uc3RhcnQgICAgV2ViQ29y
ZTo6SlNET01XaW5kb3dCYXNlOjpPbldlYktpdEFuaW1hdGlvblN0YXJ0ICBEb250RGVsZXRlCisg
IG9ud2Via2l0YW5pbWF0aW9uaXRlcmF0aW9uICAgICBXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6
Ok9uV2ViS2l0QW5pbWF0aW9uSXRlcmF0aW9uICAgRG9udERlbGV0ZQorICBvbndlYmtpdGFuaW1h
dGlvbmVuZCAgICAgIFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6T25XZWJLaXRBbmltYXRpb25F
bmQgICAgRG9udERlbGV0ZQorICBvbndlYmtpdHRyYW5zaXRpb25lbmQgICAgIFdlYkNvcmU6OkpT
RE9NV2luZG93QmFzZTo6T25XZWJLaXRUcmFuc2l0aW9uRW5kICAgRG9udERlbGV0ZQogIyAtLSBD
b25zdHJ1Y3RvcnMgLS0KICAgQXVkaW8gICAgICAgICAgICAgICAgIFdlYkNvcmU6OkpTRE9NV2lu
ZG93QmFzZTo6QXVkaW8gICAgICAgICAgICAgIERvbnREZWxldGUKICAgSW1hZ2UgICAgICAgICAg
ICAgICAgIFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6SW1hZ2UgICAgICAgICAgICAgIERvbnRE
ZWxldGUKQEAgLTUxOCw2ICs1MjIsMTQgQEAgSlNWYWx1ZSAqSlNET01XaW5kb3dCYXNlOjpnZXRW
YWx1ZVByb3BlcnR5KEV4ZWNTdGF0ZSAqZXhlYywgaW50IHRva2VuKSBjb25zdAogICAgICByZXR1
cm4gZ2V0TGlzdGVuZXIoZXhlYywgYmVmb3JldW5sb2FkRXZlbnQpOwogICAgY2FzZSBPbnVubG9h
ZDoKICAgICAgcmV0dXJuIGdldExpc3RlbmVyKGV4ZWMsIHVubG9hZEV2ZW50KTsKKyAgIGNhc2Ug
T25XZWJLaXRBbmltYXRpb25TdGFydDoKKyAgICAgcmV0dXJuIGdldExpc3RlbmVyKGV4ZWMsIHdl
YmtpdEFuaW1hdGlvblN0YXJ0RXZlbnQpOworICAgY2FzZSBPbldlYktpdEFuaW1hdGlvbkl0ZXJh
dGlvbjoKKyAgICAgcmV0dXJuIGdldExpc3RlbmVyKGV4ZWMsIHdlYmtpdEFuaW1hdGlvbkl0ZXJh
dGlvbkV2ZW50KTsKKyAgIGNhc2UgT25XZWJLaXRBbmltYXRpb25FbmQ6CisgICAgIHJldHVybiBn
ZXRMaXN0ZW5lcihleGVjLCB3ZWJraXRBbmltYXRpb25FbmRFdmVudCk7CisgICBjYXNlIE9uV2Vi
S2l0VHJhbnNpdGlvbkVuZDoKKyAgICAgcmV0dXJuIGdldExpc3RlbmVyKGV4ZWMsIHdlYmtpdFRy
YW5zaXRpb25FbmRFdmVudCk7CiAgICB9CiAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuaCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgKaW5k
ZXggZTQ2NGYwZi4uMDVjZTZiNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5o
CkBAIC0xMzcsNiArMTM3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgT25X
aW5kb3dNb3VzZVdoZWVsLCBPbnJlc2V0LCBPbnJlc2l6ZSwgT25zY3JvbGwsCiAgICAgICAgICAg
ICBPbnNlYXJjaCwgT25zZWxlY3QsIE9uc3VibWl0LCBPbnVubG9hZCwKICAgICAgICAgICAgIE9u
YmVmb3JldW5sb2FkLAorICAgICAgICAgICAgT25XZWJLaXRBbmltYXRpb25TdGFydCwgT25XZWJL
aXRBbmltYXRpb25JdGVyYXRpb24sIE9uV2ViS2l0QW5pbWF0aW9uRW5kLAorICAgICAgICAgICAg
T25XZWJLaXRUcmFuc2l0aW9uRW5kLAogCiAgICAgICAgICAgICAvLyBDb25zdHJ1Y3RvcnMKICAg
ICAgICAgICAgIEF1ZGlvLCBJbWFnZSwgT3B0aW9uLCBYTUxIdHRwUmVxdWVzdCwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCmluZGV4IDMyNTdlNzguLmE4NjhiMDcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcApAQCAtNDAsNiArNDAsOCBAQAogI2luY2x1ZGUg
IkpTUHJvZ3Jlc3NFdmVudC5oIgogI2luY2x1ZGUgIkpTVGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAi
SlNVSUV2ZW50LmgiCisjaW5jbHVkZSAiSlNXZWJLaXRBbmltYXRpb25FdmVudC5oIgorI2luY2x1
ZGUgIkpTV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiSlNXaGVlbEV2ZW50Lmgi
CiAjaW5jbHVkZSAiSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCIKICNpbmNsdWRlICJL
ZXlib2FyZEV2ZW50LmgiCkBAIC01MCw2ICs1Miw4IEBACiAjaW5jbHVkZSAiUHJvZ3Jlc3NFdmVu
dC5oIgogI2luY2x1ZGUgIlRleHRFdmVudC5oIgogI2luY2x1ZGUgIlVJRXZlbnQuaCIKKyNpbmNs
dWRlICJXZWJLaXRBbmltYXRpb25FdmVudC5oIgorI2luY2x1ZGUgIldlYktpdFRyYW5zaXRpb25F
dmVudC5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnQuaCIKIApAQCAtMTEyLDYgKzExNiwxMCBAQCBKU1ZhbHVlKiB0b0pTKEV4
ZWNTdGF0ZSogZXhlYywgRXZlbnQqIGV2ZW50KQogICAgIGVsc2UgaWYgKGV2ZW50LT5pc1N0b3Jh
Z2VFdmVudCgpKQogICAgICAgICByZXQgPSBuZXcgKGV4ZWMpIEpTU3RvcmFnZUV2ZW50KEpTU3Rv
cmFnZUV2ZW50UHJvdG90eXBlOjpzZWxmKGV4ZWMpLCBzdGF0aWNfY2FzdDxTdG9yYWdlRXZlbnQq
PihldmVudCkpOwogI2VuZGlmCisgICAgZWxzZSBpZiAoZXZlbnQtPmlzV2ViS2l0QW5pbWF0aW9u
RXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IChleGVjKSBKU1dlYktpdEFuaW1hdGlvbkV2ZW50
KEpTV2ViS2l0QW5pbWF0aW9uRXZlbnRQcm90b3R5cGU6OnNlbGYoZXhlYyksIHN0YXRpY19jYXN0
PFdlYktpdEFuaW1hdGlvbkV2ZW50Kj4oZXZlbnQpKTsKKyAgICBlbHNlIGlmIChldmVudC0+aXNX
ZWJLaXRUcmFuc2l0aW9uRXZlbnQoKSkKKyAgICAgICAgcmV0ID0gbmV3IChleGVjKSBKU1dlYktp
dFRyYW5zaXRpb25FdmVudChKU1dlYktpdFRyYW5zaXRpb25FdmVudFByb3RvdHlwZTo6c2VsZihl
eGVjKSwgc3RhdGljX2Nhc3Q8V2ViS2l0VHJhbnNpdGlvbkV2ZW50Kj4oZXZlbnQpKTsKICAgICBl
bHNlCiAgICAgICAgIHJldCA9IG5ldyAoZXhlYykgSlNFdmVudChKU0V2ZW50UHJvdG90eXBlOjpz
ZWxmKGV4ZWMpLCBldmVudCk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDYzZWI3NzYuLjVmYTEzNzAgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApA
QCAtNTQwLDcgKzU0MCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIERPTU5PREVJTlNFUlRFRElOVE9E
T0NVTUVOVF9MSVNURU5FUiA9IDB4MTAsCiAgICAgICAgIERPTUFUVFJNT0RJRklFRF9MSVNURU5F
UiAgICAgICAgICAgICA9IDB4MjAsCiAgICAgICAgIERPTUNIQVJBQ1RFUkRBVEFNT0RJRklFRF9M
SVNURU5FUiAgICA9IDB4NDAsCi0gICAgICAgIE9WRVJGTE9XQ0hBTkdFRF9MSVNURU5FUiAgICAg
ICAgICAgICA9IDB4ODAKKyAgICAgICAgT1ZFUkZMT1dDSEFOR0VEX0xJU1RFTkVSICAgICAgICAg
ICAgID0gMHg4MCwKKyAgICAgICAgQU5JTUFUSU9ORU5EX0xJU1RFTkVSICAgICAgICAgICAgICAg
ID0gMHgxMDAsCisgICAgICAgIEFOSU1BVElPTlNUQVJUX0xJU1RFTkVSICAgICAgICAgICAgICA9
IDB4MjAwLAorICAgICAgICBBTklNQVRJT05JVEVSQVRJT05fTElTVEVORVIgICAgICAgICAgPSAw
eDQwMCwKKyAgICAgICAgVFJBTlNJVElPTkVORF9MSVNURU5FUiAgICAgICAgICAgICAgID0gMHg4
MDAKICAgICB9OwogCiAgICAgYm9vbCBoYXNMaXN0ZW5lclR5cGUoTGlzdGVuZXJUeXBlIGxpc3Rl
bmVyVHlwZSkgY29uc3QgeyByZXR1cm4gKG1fbGlzdGVuZXJUeXBlcyAmIGxpc3RlbmVyVHlwZSk7
IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0V2ZW50LmNwcCBiL1dlYkNvcmUvZG9tL0V2ZW50
LmNwcAppbmRleCBhZDc0NGQxLi42N2FlNDkyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FdmVu
dC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRXZlbnQuY3BwCkBAIC0xMjksNiArMTI5LDE2IEBAIGJv
b2wgRXZlbnQ6OmlzUHJvZ3Jlc3NFdmVudCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Citib29sIEV2ZW50Ojppc1dlYktpdEFuaW1hdGlvbkV2ZW50KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnQ6OmlzV2ViS2l0VHJhbnNpdGlvbkV2ZW50KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgRXZlbnQ6OmlzWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2RvbS9FdmVudC5oIGIvV2ViQ29yZS9kb20vRXZlbnQuaAppbmRleCA2ZjA0MWIz
Li5jZTNkOTY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FdmVudC5oCisrKyBiL1dlYkNvcmUv
ZG9tL0V2ZW50LmgKQEAgLTExMSw2ICsxMTEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBpc092ZXJmbG93RXZlbnQoKSBjb25zdDsKICAgICAgICAgdmlydHVh
bCBib29sIGlzUHJvZ3Jlc3NFdmVudCgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNY
TUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBib29s
IGlzV2ViS2l0QW5pbWF0aW9uRXZlbnQoKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBib29sIGlz
V2ViS2l0VHJhbnNpdGlvbkV2ZW50KCkgY29uc3Q7CiAjaWYgRU5BQkxFKFNWRykKICAgICAgICAg
dmlydHVhbCBib29sIGlzU1ZHWm9vbUV2ZW50KCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcCBiL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNw
cAppbmRleCBjMTQyZmEzLi4zN2ZjNWM4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9FdmVudFRh
cmdldC5jcHAKKysrIGIvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuY3BwCkBAIC0xMDYsNiArMTA2
LDE0IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRMaXN0ZW5lclR5cGVUb0RvY3VtZW50SWZOZWVk
ZWQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5CiAgICAgICAgIHR5cGUgPSBEb2N1bWVudDo6
RE9NQ0hBUkFDVEVSREFUQU1PRElGSUVEX0xJU1RFTkVSOwogICAgIGVsc2UgaWYgKGV2ZW50VHlw
ZSA9PSBvdmVyZmxvd2NoYW5nZWRFdmVudCkKICAgICAgICAgdHlwZSA9IERvY3VtZW50OjpPVkVS
RkxPV0NIQU5HRURfTElTVEVORVI7CisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IHdlYmtpdEFu
aW1hdGlvblN0YXJ0RXZlbnQpCisgICAgICAgIHR5cGUgPSBEb2N1bWVudDo6QU5JTUFUSU9OU1RB
UlRfTElTVEVORVI7CisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IHdlYmtpdEFuaW1hdGlvbkVu
ZEV2ZW50KQorICAgICAgICB0eXBlID0gRG9jdW1lbnQ6OkFOSU1BVElPTkVORF9MSVNURU5FUjsK
KyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gd2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uRXZlbnQp
CisgICAgICAgIHR5cGUgPSBEb2N1bWVudDo6QU5JTUFUSU9OSVRFUkFUSU9OX0xJU1RFTkVSOwor
ICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSB3ZWJraXRUcmFuc2l0aW9uRW5kRXZlbnQpCisgICAg
ICAgIHR5cGUgPSBEb2N1bWVudDo6VFJBTlNJVElPTkVORF9MSVNURU5FUjsKIAogICAgIGlmICh0
eXBlKQogICAgICAgICBkb2N1bWVudC0+YWRkTGlzdGVuZXJUeXBlKHR5cGUpOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXROb2RlLmNwcCBiL1dlYkNvcmUvZG9tL0V2ZW50VGFy
Z2V0Tm9kZS5jcHAKaW5kZXggZTE4M2NhMC4uNzY2MTdjNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9k
b20vRXZlbnRUYXJnZXROb2RlLmNwcAorKysgYi9XZWJDb3JlL2RvbS9FdmVudFRhcmdldE5vZGUu
Y3BwCkBAIC00MSw2ICs0MSw4IEBACiAjaW5jbHVkZSAiUHJvZ3Jlc3NFdmVudC5oIgogI2luY2x1
ZGUgIlJlZ2lzdGVyZWRFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50LmgiCisj
aW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLaXRUcmFuc2l0
aW9uRXZlbnQuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KIApAQCAtMzU4LDYgKzM2MCwyMSBAQCB2b2lkIEV2ZW50VGFyZ2V0Tm9kZTo6ZGlzcGF0
Y2hXaGVlbEV2ZW50KFBsYXRmb3JtV2hlZWxFdmVudCYgZSkKICAgICAgICAgZS5hY2NlcHQoKTsK
IH0KIAorYm9vbCBFdmVudFRhcmdldE5vZGU6OmRpc3BhdGNoV2ViS2l0QW5pbWF0aW9uRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFt
ZSwgZG91YmxlIGVsYXBzZWRUaW1lKQoreworICAgIEFTU0VSVCghZXZlbnREaXNwYXRjaEZvcmJp
ZGRlbigpKTsKKyAgICAKKyAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICByZXR1cm4gZGlz
cGF0Y2hFdmVudChXZWJLaXRBbmltYXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwgYW5pbWF0
aW9uTmFtZSwgZWxhcHNlZFRpbWUpLCBlYywgdHJ1ZSk7Cit9CisKK2Jvb2wgRXZlbnRUYXJnZXRO
b2RlOjpkaXNwYXRjaFdlYktpdFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSkK
K3sKKyAgICBBU1NFUlQoIWV2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7CisgICAgCisgICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgcmV0dXJuIGRpc3BhdGNoRXZlbnQoV2ViS2l0VHJhbnNp
dGlvbkV2ZW50OjpjcmVhdGUoZXZlbnRUeXBlLCBwcm9wZXJ0eU5hbWUsIGVsYXBzZWRUaW1lKSwg
ZWMsIHRydWUpOworfQogCiB2b2lkIEV2ZW50VGFyZ2V0Tm9kZTo6ZGlzcGF0Y2hGb2N1c0V2ZW50
KCkKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Tm9kZS5oIGIvV2ViQ29y
ZS9kb20vRXZlbnRUYXJnZXROb2RlLmgKaW5kZXggYzllZmI2NC4uMDI4MmY4NyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXROb2RlLmgKKysrIGIvV2ViQ29yZS9kb20vRXZlbnRU
YXJnZXROb2RlLmgKQEAgLTY3LDYgKzY3LDggQEAgcHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hT
aW11bGF0ZWRDbGljayhQYXNzUmVmUHRyPEV2ZW50PiB1bmRlcmx5aW5nRXZlbnQsIGJvb2wgc2Vu
ZE1vdXNlRXZlbnRzID0gZmFsc2UsIGJvb2wgc2hvd1ByZXNzZWRMb29rID0gdHJ1ZSk7CiAgICAg
Ym9vbCBkaXNwYXRjaFByb2dyZXNzRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nICZldmVudFR5cGUs
IGJvb2wgbGVuZ3RoQ29tcHV0YWJsZUFyZywgdW5zaWduZWQgbG9hZGVkQXJnLCB1bnNpZ25lZCB0
b3RhbEFyZyk7CiAgICAgdm9pZCBkaXNwYXRjaFN0b3JhZ2VFdmVudChjb25zdCBBdG9taWNTdHJp
bmcgJmV2ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgb2xkVmFsdWUs
IGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIEZyYW1lKiBzb3VyY2UpOworICAgIGJvb2wgZGlzcGF0
Y2hXZWJLaXRBbmltYXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29u
c3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpOworICAgIGJvb2wg
ZGlzcGF0Y2hXZWJLaXRUcmFuc2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpOwogCiAg
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUxvY2FsRXZlbnRzKEV2ZW50KiwgYm9vbCB1c2VDYXB0dXJl
KTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwIGIv
V2ViQ29yZS9kb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjNlNWM5ZWQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2RvbS9X
ZWJLaXRBbmltYXRpb25FdmVudC5jcHAKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRBbmltYXRpb25FdmVudC5oIgor
CisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCisg
ICAgdXNpbmcgbmFtZXNwYWNlIEV2ZW50TmFtZXM7CisgICAgCisgICAgV2ViS2l0QW5pbWF0aW9u
RXZlbnQ6OldlYktpdEFuaW1hdGlvbkV2ZW50KCkKKyAgICA6IG1fYW5pbWF0aW9uTmFtZSgpCisg
ICAgLCBtX2VsYXBzZWRUaW1lKDAuMCkKKyAgICB7CisgICAgfQorICAgIAorICAgIFdlYktpdEFu
aW1hdGlvbkV2ZW50OjpXZWJLaXRBbmltYXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5
cGUsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKQorICAg
IDogRXZlbnQodHlwZSwgdHJ1ZSwgdHJ1ZSkKKyAgICAsIG1fYW5pbWF0aW9uTmFtZShhbmltYXRp
b25OYW1lKQorICAgICwgbV9lbGFwc2VkVGltZShlbGFwc2VkVGltZSkKKyAgICB7CisgICAgfQor
ICAgIAorICAgIFdlYktpdEFuaW1hdGlvbkV2ZW50Ojp+V2ViS2l0QW5pbWF0aW9uRXZlbnQoKQor
ICAgIHsKKyAgICB9CisgICAgCisgICAgdm9pZCBXZWJLaXRBbmltYXRpb25FdmVudDo6aW5pdFdl
YktpdEFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgLypjYW5CdWJibGVBcmcqLywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCAvKmNhbmNl
bGFibGVBcmcqLywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkb3VibGUgZWxhcHNlZFRpbWUpCisgICAgeworICAgICAgICBpZiAo
ZGlzcGF0Y2hlZCgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgaW5p
dEV2ZW50KHR5cGUsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgCisgICAgICAgIG1fYW5pbWF0aW9u
TmFtZSA9IGFuaW1hdGlvbk5hbWU7CisgICAgfQorICAgIAorICAgIGNvbnN0IFN0cmluZyYgV2Vi
S2l0QW5pbWF0aW9uRXZlbnQ6OmFuaW1hdGlvbk5hbWUoKSBjb25zdAorICAgIHsKKyAgICAgICAg
cmV0dXJuIG1fYW5pbWF0aW9uTmFtZTsKKyAgICB9CisgICAgCisgICAgZG91YmxlIFdlYktpdEFu
aW1hdGlvbkV2ZW50OjplbGFwc2VkVGltZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
bV9lbGFwc2VkVGltZTsKKyAgICB9CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2RvbS9XZWJLaXRBbmltYXRpb25FdmVudC5oIGIvV2ViQ29yZS9kb20v
V2ViS2l0QW5pbWF0aW9uRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5iYzdlNTdjCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9kb20vV2ViS2l0QW5pbWF0aW9u
RXZlbnQuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBXZWJLaXRB
bmltYXRpb25FdmVudF9oCisjZGVmaW5lIFdlYktpdEFuaW1hdGlvbkV2ZW50X2gKKworI2luY2x1
ZGUgIkV2ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAgICAgCisgICAgY2xhc3Mg
V2ViS2l0QW5pbWF0aW9uRXZlbnQgOiBwdWJsaWMgRXZlbnQgeworICAgIHB1YmxpYzoKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0QW5pbWF0aW9uRXZlbnQ+IGNyZWF0ZSgpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0QW5pbWF0aW9uRXZl
bnQpOworICAgICAgICB9CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlv
bkV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGFu
aW1hdGlvbk5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSkKKyAgICAgICAgeworICAgICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRBbmltYXRpb25FdmVudCh0eXBlLCBhbmltYXRpb25O
YW1lLCBlbGFwc2VkVGltZSkpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCB+V2ViS2l0
QW5pbWF0aW9uRXZlbnQoKTsKKyAgICAgICAgCisgICAgICAgIHZvaWQgaW5pdFdlYktpdEFuaW1h
dGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJvb2wgY2FuQnViYmxlQXJnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBib29sIGNhbmNlbGFibGVBcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZG91YmxlIGVsYXBzZWRUaW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAor
ICAgICAgICBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUoKSBjb25zdDsKKyAgICAgICAgZG91
YmxlIGVsYXBzZWRUaW1lKCkgY29uc3Q7CisgICAgICAgIAorICAgICAgICB2aXJ0dWFsIGJvb2wg
aXNXZWJLaXRBbmltYXRpb25FdmVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAg
CisgICAgcHJpdmF0ZToKKyAgICAgICAgV2ViS2l0QW5pbWF0aW9uRXZlbnQoKTsKKyAgICAgICAg
V2ViS2l0QW5pbWF0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJp
bmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSk7CisKKyAgICAgICAgU3RyaW5n
IG1fYW5pbWF0aW9uTmFtZTsKKyAgICAgICAgZG91YmxlIG1fZWxhcHNlZFRpbWU7CisgICAgfTsK
KyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFdlYktpdEFuaW1hdGlv
bkV2ZW50X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50Lmlk
bCBiL1dlYkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hMTlhODc0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9k
b20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCittb2R1bGUgZXZlbnRzIHsKKworaW50ZXJmYWNlIFdlYktpdEFuaW1hdGlvbkV2ZW50IDog
RXZlbnQgeworICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICAgIGFuaW1h
dGlvbk5hbWU7CisgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgICAgICAgICAgICAgZWxh
cHNlZFRpbWU7CisgICAgIHZvaWQgICAgICAgICAgICAgICBpbml0V2ViS2l0QW5pbWF0aW9uRXZl
bnQoaW4gRE9NU3RyaW5nIHR5cGVBcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5CdWJibGVBcmcsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5jZWxhYmxlQXJnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBhbmltYXRp
b25OYW1lQXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
IGRvdWJsZSBlbGFwc2VkVGltZUFyZyk7Cit9OworCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Rv
bS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGIvV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlv
bkV2ZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOWYzMDgxCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcApA
QCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYktpdFRyYW5zaXRpb25FdmVudC5oIgorCisjaW5jbHVkZSAiRXZlbnROYW1lcy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCisgICAgdXNpbmcgbmFtZXNwYWNlIEV2ZW50
TmFtZXM7CisgICAgCisgICAgV2ViS2l0VHJhbnNpdGlvbkV2ZW50OjpXZWJLaXRUcmFuc2l0aW9u
RXZlbnQoKQorICAgIDogbV9wcm9wZXJ0eU5hbWUoKQorICAgICwgbV9lbGFwc2VkVGltZSgwLjAp
CisgICAgeworICAgIH0KKyAgICAKKyAgICBXZWJLaXRUcmFuc2l0aW9uRXZlbnQ6OldlYktpdFRy
YW5zaXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcHJv
cGVydHlOYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpCisgICAgOiBFdmVudCh0eXBlLCB0cnVlLCB0
cnVlKQorICAgICwgbV9wcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKQorICAgICwgbV9lbGFwc2Vk
VGltZShlbGFwc2VkVGltZSkKKyAgICB7CisgICAgfQorICAgIAorICAgIFdlYktpdFRyYW5zaXRp
b25FdmVudDo6fldlYktpdFRyYW5zaXRpb25FdmVudCgpCisgICAgeworICAgIH0KKyAgICAKKyAg
ICB2b2lkIFdlYktpdFRyYW5zaXRpb25FdmVudDo6aW5pdFdlYktpdFRyYW5zaXRpb25FdmVudChj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBib29sIC8qY2FuQnViYmxlQXJnKi8sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgLypjYW5jZWxhYmxlQXJnKi8sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgcHJvcGVy
dHlOYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3Vi
bGUgZWxhcHNlZFRpbWUpCisgICAgeworICAgICAgICBpZiAoZGlzcGF0Y2hlZCgpKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICAgICAgaW5pdEV2ZW50KHR5cGUsIGZhbHNlLCB0
cnVlKTsKKyAgICAgICAgCisgICAgICAgIG1fcHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lOwor
ICAgIH0KKyAgICAKKyAgICBjb25zdCBTdHJpbmcmIFdlYktpdFRyYW5zaXRpb25FdmVudDo6cHJv
cGVydHlOYW1lKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX3Byb3BlcnR5TmFtZTsK
KyAgICB9CisgICAgCisgICAgZG91YmxlIFdlYktpdFRyYW5zaXRpb25FdmVudDo6ZWxhcHNlZFRp
bWUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZWxhcHNlZFRpbWU7CisgICAgfQor
ICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50LmggYi9XZWJDb3JlL2RvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jY2JmMjUyCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmgKQEAgLTAsMCArMSw2
NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgV2ViS2l0VHJhbnNpdGlvbkV2ZW50X2gKKyNk
ZWZpbmUgV2ViS2l0VHJhbnNpdGlvbkV2ZW50X2gKKworI2luY2x1ZGUgIkV2ZW50LmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKyAgICAgICAgCisgICAgY2xhc3MgV2ViS2l0VHJhbnNpdGlvbkV2
ZW50IDogcHVibGljIEV2ZW50IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFdlYktpdFRyYW5zaXRpb25FdmVudD4gY3JlYXRlKCkKKyAgICAgICAgeworICAgICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRUcmFuc2l0aW9uRXZlbnQpOworICAgICAgICB9
CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdFRyYW5zaXRpb25FdmVudD4gY3JlYXRl
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBk
b3VibGUgZWxhcHNlZFRpbWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgV2ViS2l0VHJhbnNpdGlvbkV2ZW50KHR5cGUsIGFuaW1hdGlvbk5hbWUsIGVsYXBzZWRU
aW1lKSk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIH5XZWJLaXRUcmFuc2l0aW9uRXZl
bnQoKTsKKyAgICAgICAgCisgICAgICAgIHZvaWQgaW5pdFdlYktpdFRyYW5zaXRpb25FdmVudChj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBib29sIGNhbkJ1YmJsZUFyZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v
bCBjYW5jZWxhYmxlQXJnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBT
dHJpbmcmIHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91
YmxlIGVsYXBzZWRUaW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBjb25z
dCBTdHJpbmcmIHByb3BlcnR5TmFtZSgpIGNvbnN0OworICAgICAgICBkb3VibGUgZWxhcHNlZFRp
bWUoKSBjb25zdDsKKyAgICAgICAgCisgICAgICAgIHZpcnR1YWwgYm9vbCBpc1dlYktpdFRyYW5z
aXRpb25FdmVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgCisgICAgcHJpdmF0
ZToKKyAgICAgICAgV2ViS2l0VHJhbnNpdGlvbkV2ZW50KCk7CisgICAgICAgIFdlYktpdFRyYW5z
aXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVy
dHlOYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpOworCisgICAgICAgIFN0cmluZyBtX3Byb3BlcnR5
TmFtZTsKKyAgICAgICAgZG91YmxlIG1fZWxhcHNlZFRpbWU7CisgICAgfTsKKyAgICAKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFdlYktpdFRyYW5zaXRpb25FdmVudF9oCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaWRsIGIvV2ViQ29y
ZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi45ZTgwZGFlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9kb20vV2ViS2l0
VHJhbnNpdGlvbkV2ZW50LmlkbApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworbW9k
dWxlIGV2ZW50cyB7CisKK2ludGVyZmFjZSBXZWJLaXRUcmFuc2l0aW9uRXZlbnQgOiBFdmVudCB7
CisgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgICAgcHJvcGVydHlOYW1l
OworICAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlICAgICAgICAgICAgIGVsYXBzZWRUaW1l
OworICAgICB2b2lkICAgICAgICAgICAgICAgaW5pdFdlYktpdFRyYW5zaXRpb25FdmVudChpbiBE
T01TdHJpbmcgdHlwZUFyZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBib29sZWFuIGNhbkJ1YmJsZUFyZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGNhbmNlbGFibGVBcmcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5nIHByb3BlcnR5TmFtZUFy
ZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBkb3VibGUg
ZWxhcHNlZFRpbWVBcmcpOworfTsKKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxB
dHRyaWJ1dGVOYW1lcy5pbiBiL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KaW5k
ZXggODE2YjlmZS4uYTM3MWZhMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1
dGVOYW1lcy5pbgorKysgYi9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCkBAIC0x
NTQsNiArMTU0LDEwIEBAIG9uc2VsZWN0c3RhcnQKIG9uc3RvcmFnZQogb25zdWJtaXQKIG9udW5s
b2FkCitvbndlYmtpdGFuaW1hdGlvbnN0YXJ0CitvbndlYmtpdGFuaW1hdGlvbml0ZXJhdGlvbgor
b253ZWJraXRhbmltYXRpb25lbmQKK29ud2Via2l0dHJhbnNpdGlvbmVuZAogcGFnZXgKIHBhZ2V5
CiBwbGFjZWhvbGRlcgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBi
L1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKaW5kZXggYzM0ZGIyMS4uZWFlOTlmMCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwCkBAIC0yMTksNiArMjE5LDE0IEBAIHZvaWQgSFRNTEVsZW1lbnQ6OnBh
cnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSAqYXR0cikKICAgICAgICAgc2V0SFRN
TEV2ZW50TGlzdGVuZXIoc3VibWl0RXZlbnQsIGF0dHIpOwogICAgIH0gZWxzZSBpZiAoYXR0ci0+
bmFtZSgpID09IG9uZXJyb3JBdHRyKSB7CiAgICAgICAgIHNldEhUTUxFdmVudExpc3RlbmVyKGVy
cm9yRXZlbnQsIGF0dHIpOworICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9ud2Via2l0
YW5pbWF0aW9uc3RhcnRBdHRyKSB7CisgICAgICAgIHNldEhUTUxFdmVudExpc3RlbmVyKHdlYmtp
dEFuaW1hdGlvblN0YXJ0RXZlbnQsIGF0dHIpOworICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgp
ID09IG9ud2Via2l0YW5pbWF0aW9uaXRlcmF0aW9uQXR0cikgeworICAgICAgICBzZXRIVE1MRXZl
bnRMaXN0ZW5lcih3ZWJraXRBbmltYXRpb25JdGVyYXRpb25FdmVudCwgYXR0cik7CisgICAgfSBl
bHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb253ZWJraXRhbmltYXRpb25lbmRBdHRyKSB7CisgICAg
ICAgIHNldEhUTUxFdmVudExpc3RlbmVyKHdlYmtpdEFuaW1hdGlvbkVuZEV2ZW50LCBhdHRyKTsK
KyAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbndlYmtpdHRyYW5zaXRpb25lbmRBdHRy
KSB7CisgICAgICAgIHNldEhUTUxFdmVudExpc3RlbmVyKHdlYmtpdFRyYW5zaXRpb25FbmRFdmVu
dCwgYXR0cik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL21hbnVhbC10ZXN0cy90
cmFuc2l0aW9uLWV2ZW50cy5odG1sIGIvV2ViQ29yZS9tYW51YWwtdGVzdHMvdHJhbnNpdGlvbi1l
dmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNmNmOTQwCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9tYW51YWwtdGVzdHMvdHJhbnNpdGlvbi1ldmVudHMu
aHRtbApAQCAtMCwwICsxLDkwIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFRE
IEhUTUwgNC4wMSBUcmFuc2l0aW9uYWwvL0VOIgorICAgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0
bWw0L2xvb3NlLmR0ZCI+CisKKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorICA8bWV0YSBodHRw
LWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI+
CisgIDx0aXRsZT5UcmFuc2l0aW9uIEV2ZW50czwvdGl0bGU+CisgIDxzdHlsZSB0eXBlPSJ0ZXh0
L2NzcyIgbWVkaWE9InNjcmVlbiI+CisgICAgI2JveDEgeworICAgICAgcG9zaXRpb246IHJlbGF0
aXZlOworICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIG1h
cmdpbjogMTBweDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICB6LWluZGV4
OiAwOworICAgICAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiBsZWZ0OworICAgICAgLXdl
YmtpdC10cmFuc2l0aW9uLWR1cmF0aW9uOiAyczsKKyAgICAgIGxlZnQ6IDBweDsKKyAgICB9CisK
KyAgICAjYm94MiB7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICB3aWR0aDogMTAw
cHg7CisgICAgICBoZWlnaHQ6IDEwMHB4OworICAgICAgbWFyZ2luOiAxMHB4OworICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogcmVkOworICAgICAgei1pbmRleDogMDsKKyAgICAgIC13ZWJraXQtdHJh
bnNpdGlvbi1wcm9wZXJ0eTogbGVmdDsKKyAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlv
bjogMnM7CisgICAgICBsZWZ0OiAwcHg7CisgICAgfQorCisgICAgI2xvZyB7CisgICAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgICB3aWR0aDogOTAlOworICAgICAgaGVpZ2h0OiAyMDBweDsK
KyAgICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsK
KyAgICB9CisgIDwvc3R5bGU+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFy
c2V0PSJ1dGYtOCI+CisKKyAgICB2YXIgc3dpdGNoMSA9IHRydWU7CisgICAgdmFyIHN3aXRjaDIg
PSBmYWxzZTsKKyAgICAKKyAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd3ZWJraXRUcmFu
c2l0aW9uRW5kJywgZnVuY3Rpb24oZSkgeworICAgICAgdmFyIGlkID0gIjEiOworICAgICAgaWYg
KHN3aXRjaDEpIHsKKyAgICAgICAgaWQgPSAiMiI7CisgICAgICB9CisgICAgICB2YXIgb2Zmc2V0
ID0gMjAwOworICAgICAgaWYgKHN3aXRjaDIpIHsKKyAgICAgICAgb2Zmc2V0ID0gMDsKKyAgICAg
IH0KKyAgICAgIHZhciBib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYm94IiArIGlkKTsK
KyAgICAgIGJveC5zdHlsZS5sZWZ0ID0gIiIgKyBvZmZzZXQgKyAicHgiOworICAgICAgc3dpdGNo
MSA9ICFzd2l0Y2gxOworICAgICAgaWYgKCFzd2l0Y2gxKSBzd2l0Y2gyID0gIXN3aXRjaDI7Cisg
ICAgICBsb2dUcmFuc2l0aW9uKGV2ZW50KTsKKyAgICB9LCBmYWxzZSk7CisKKyAgICBmdW5jdGlv
biBkb0NsaWNrKG9iaikKKyAgICB7CisgICAgICB2YXIgYm94MSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJib3gxIik7CisgICAgICBib3gxLnN0eWxlLmxlZnQgPSAiMjAwcHgiOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGxvZ1RyYW5zaXRpb24oZXZlbnQpCisgICAgeworICAgICAgdmFyIGxv
ZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKTsKKyAgICAgIGxvZy5pbm5lckhUTUwg
PSBsb2cuaW5uZXJIVE1MICsgJzxicj5Qcm9wZXJ0eTogJyArIGV2ZW50LnByb3BlcnR5TmFtZSAr
ICcgVGltZTogJyArIGV2ZW50LmVsYXBzZWRUaW1lOworICAgIH0KKyAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgPGgyPlRyYW5zaXRpb24gRXZlbnRzPC9oMj4KKyAgPHA+Q2xpY2sgdG8g
c3RhcnQgdHJhbnNpdGlvbnMuIE9uY2Ugc3RhcnRlZCwgdHJhbnNpdGlvbiBlbmQgZXZlbnRzIHNo
b3VsZCBrZWVwCisgICAgdGhpbmdzIG1vdmluZyBmb3JldmVyLjwvcD4KKyAgPGRpdiBpZD0iY29u
dGFpbmVyIiBvbmNsaWNrPSJkb0NsaWNrKHRoaXMpIj4KKyAgICA8ZGl2IGlkPSJib3gxIj4KKyAg
ICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJib3gyIj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+CisKKyAg
PGRpdiBpZD0ibG9nIj4KKyAgICAKKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BhZ2UvQW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL3BhZ2Uv
QW5pbWF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggMzViZWI1My4uODQ1MDFjMSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wYWdlL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvcGFn
ZS9BbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAtNzc1LDcgKzc3NSwxMiBAQCB2b2lkIEFuaW1h
dGlvbkJhc2U6OmFuaW1hdGlvbkV2ZW50RGlzcGF0Y2hlckZpcmVkKEVsZW1lbnQqIGVsZW1lbnQs
IGNvbnN0IEF0b21pYwogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
Ly8gRklYTUU6IEFjdHVhbCBldmVudCBkaXNwYXRjaGluZyB3aWxsIGJlIGRvbmUgaGVyZQorICAg
IGlmIChldmVudFR5cGUgPT0gRXZlbnROYW1lczo6d2Via2l0VHJhbnNpdGlvbkVuZEV2ZW50KSB7
CisgICAgICAgIGVsZW1lbnQtPmRpc3BhdGNoV2ViS2l0VHJhbnNpdGlvbkV2ZW50KGV2ZW50VHlw
ZSwgbmFtZSwgZWxhcHNlZFRpbWUpOworICAgIH0gCisgICAgZWxzZSB7CisgICAgICAgIGVsZW1l
bnQtPmRpc3BhdGNoV2ViS2l0QW5pbWF0aW9uRXZlbnQoZXZlbnRUeXBlLCBuYW1lLCBlbGFwc2Vk
VGltZSk7CisgICAgfQogCiAgICAgaWYgKGFuaW1FdmVudFR5cGUgPT0gRXZlbnROYW1lczo6d2Vi
a2l0QW5pbWF0aW9uRW5kRXZlbnQpIHsKICAgICAgICAgaWYgKGVsZW1lbnQtPnJlbmRlcmVyKCkp
IHsKQEAgLTE4NjEsNyArMTg2NiwyNCBAQCB2b2lkIEltcGxpY2l0QW5pbWF0aW9uOjpvbkFuaW1h
dGlvbkVuZChkb3VibGUgaW5FbGFwc2VkVGltZSkKIAogYm9vbCBJbXBsaWNpdEFuaW1hdGlvbjo6
c2VuZFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGluRXZlbnRUeXBlLCBkb3Vi
bGUgaW5FbGFwc2VkVGltZSkKIHsKLSAgICAvLyBGSVhNRTogZXZlbnQgZGlzcGF0Y2hpbmcgY29k
ZSB3aWxsIGdvIGhlcmUKKyAgICBpZiAoaW5FdmVudFR5cGUgPT0gRXZlbnROYW1lczo6d2Via2l0
VHJhbnNpdGlvbkVuZEV2ZW50KSB7CisgICAgICAgIERvY3VtZW50OjpMaXN0ZW5lclR5cGUgbGlz
dGVuZXJUeXBlID0gRG9jdW1lbnQ6OlRSQU5TSVRJT05FTkRfTElTVEVORVI7CisgICAgICAgIAor
ICAgICAgICBpZiAoc2hvdWxkU2VuZEV2ZW50Rm9yTGlzdGVuZXIobGlzdGVuZXJUeXBlKSkgewor
ICAgICAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IGVsZW1lbnRGb3JFdmVudERpc3BhdGNoKCk7
CisgICAgICAgICAgICBpZiAoZWxlbWVudCkgeworICAgICAgICAgICAgICAgIFN0cmluZyBwcm9w
ZXJ0eU5hbWU7CisgICAgICAgICAgICAgICAgaWYgKG1fcHJvcGVydHkgPT0gY0FuaW1hdGVBbGwp
CisgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5TmFtZSA9IFN0cmluZygiIik7CisgICAgICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWUgPSBTdHJpbmco
Z2V0UHJvcGVydHlOYW1lKChDU1NQcm9wZXJ0eUlEKW1fcHJvcGVydHkpKTsKKyAgICAgICAgICAg
ICAgICBtX3dhaXRpbmdGb3JFbmRFdmVudCA9IHRydWU7CisgICAgICAgICAgICAgICAgbV9hbmlt
YXRpb25FdmVudERpc3BhdGNoZXIuc3RhcnRUaW1lcihlbGVtZW50LCBwcm9wZXJ0eU5hbWUsIG1f
cHJvcGVydHksIHRydWUsIGluRXZlbnRUeXBlLCBpbkVsYXBzZWRUaW1lKTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsgLy8gRGlkIGRpc3BhdGNoIGFuIGV2ZW50CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CisgICAgCiAgICAgcmV0dXJuIGZhbHNlOyAvLyBEaWRuJ3QgZGlz
cGF0Y2ggYW4gZXZlbnQKIH0KIApAQCAtMjAxOCw4ICsyMDQwLDI0IEBAIHZvaWQgS2V5ZnJhbWVB
bmltYXRpb246Om9uQW5pbWF0aW9uRW5kKGRvdWJsZSBpbkVsYXBzZWRUaW1lKQogCiBib29sIEtl
eWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBp
bkV2ZW50VHlwZSwgZG91YmxlIGluRWxhcHNlZFRpbWUpCiB7Ci0gICAgLy8gRklYTUU6IEV2ZW50
IGRpc3BhdGNoIGdvZXMgaGVyZQotICAgIHJldHVybiBmYWxzZTsgLy8gZGlkbid0IGRpc3BhdGNo
IGFuIGV2ZW50CisgICAgRG9jdW1lbnQ6Okxpc3RlbmVyVHlwZSBsaXN0ZW5lclR5cGU7CisgICAg
aWYgKGluRXZlbnRUeXBlID09IEV2ZW50TmFtZXM6OndlYmtpdEFuaW1hdGlvbkl0ZXJhdGlvbkV2
ZW50KQorICAgICAgICBsaXN0ZW5lclR5cGUgPSBEb2N1bWVudDo6QU5JTUFUSU9OSVRFUkFUSU9O
X0xJU1RFTkVSOworICAgIGVsc2UgaWYgKGluRXZlbnRUeXBlID09IEV2ZW50TmFtZXM6OndlYmtp
dEFuaW1hdGlvbkVuZEV2ZW50KQorICAgICAgICBsaXN0ZW5lclR5cGUgPSBEb2N1bWVudDo6QU5J
TUFUSU9ORU5EX0xJU1RFTkVSOworICAgIGVsc2UKKyAgICAgICAgbGlzdGVuZXJUeXBlID0gRG9j
dW1lbnQ6OkFOSU1BVElPTlNUQVJUX0xJU1RFTkVSOworICAgIAorICAgIGlmIChzaG91bGRTZW5k
RXZlbnRGb3JMaXN0ZW5lcihsaXN0ZW5lclR5cGUpKSB7CisgICAgICAgIEVsZW1lbnQqIGVsZW1l
bnQgPSBlbGVtZW50Rm9yRXZlbnREaXNwYXRjaCgpOworICAgICAgICBpZiAoZWxlbWVudCkgewor
ICAgICAgICAgICAgbV93YWl0aW5nRm9yRW5kRXZlbnQgPSB0cnVlOworICAgICAgICAgICAgbV9h
bmltYXRpb25FdmVudERpc3BhdGNoZXIuc3RhcnRUaW1lcihlbGVtZW50LCBtX25hbWUsIC0xLCB0
cnVlLCBpbkV2ZW50VHlwZSwgaW5FbGFwc2VkVGltZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsgLy8gRGlkIGRpc3BhdGNoIGFuIGV2ZW50CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1
cm4gZmFsc2U7IC8vIERpZCBub3QgZGlzcGF0Y2ggYW4gZXZlbnQKIH0KIAogdm9pZCBLZXlmcmFt
ZUFuaW1hdGlvbjo6b3ZlcnJpZGVBbmltYXRpb25zKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22712</attachid>
            <date>2008-08-08 15:26:02 -0700</date>
            <delta_ts>2008-08-08 20:48:32 -0700</delta_ts>
            <desc>now ready for review</desc>
            <filename>events.patch</filename>
            <type>text/plain</type>
            <size>48490</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMubWFrZQppbmRleCA1NGEwZGFhLi44MDMxNWEyIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBA
IC0zNDEsNyArMzQxLDkgQEAgRE9NX0NMQVNTRVMgPSBcCiAgICAgVHJlZVdhbGtlciBcCiAgICAg
VUlFdmVudCBcCiAgICAgVm9pZENhbGxiYWNrIFwKKyAgICBXZWJLaXRBbmltYXRpb25FdmVudCBc
CiAgICAgV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUgXAorICAgIFdlYktpdFRyYW5zaXRpb25FdmVu
dCBcCiAgICAgV2hlZWxFdmVudCBcCiAgICAgWE1MSHR0cFJlcXVlc3QgXAogICAgIFhNTEh0dHBS
ZXF1ZXN0RXhjZXB0aW9uIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDgxYTI4YzMuLmMyNzRjYWMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAt
MjA1LDcgKzIwNSw5IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJj
ZXMvSlNUZXh0RXZlbnQuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNUcmVlV2Fsa2VyLmggXAogCURl
cml2ZWRTb3VyY2VzL0pTVUlFdmVudC5oIFwKKwlEZXJpdmVkU291cmNlcy9KU1dlYktpdEFuaW1h
dGlvbkV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL0pTV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUu
aCBcCisJRGVyaXZlZFNvdXJjZXMvSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBcCiAJRGVyaXZl
ZFNvdXJjZXMvSlNXaGVlbEV2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL0pTWE1MSHR0cFJlcXVl
c3QuaCBcCiAJRGVyaXZlZFNvdXJjZXMvSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIFwKQEAg
LTQxMiw2ICs0MTQsOCBAQCBJRExfQklORElOR1MgKz0gIFwKIAlXZWJDb3JlL2RvbS9UZXh0RXZl
bnQuaWRsIFwKIAlXZWJDb3JlL2RvbS9UcmVlV2Fsa2VyLmlkbCBcCiAJV2ViQ29yZS9kb20vVUlF
dmVudC5pZGwgXAorCVdlYkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmlkbCBcCisJV2Vi
Q29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmlkbCBcCiAJV2ViQ29yZS9kb20vV2hlZWxF
dmVudC5pZGwgXAogCVdlYkNvcmUvaHRtbC9DYW52YXNHcmFkaWVudC5pZGwgXAogCVdlYkNvcmUv
aHRtbC9DYW52YXNQYXR0ZXJuLmlkbCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJv
IGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAxZDQyM2Q4Li5hZTNlYzVmIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTI1OSw2
ICsyNTksOCBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGRvbS9UZXh0RXZlbnQuaWRsIFwKICAg
ICBkb20vVHJlZVdhbGtlci5pZGwgXAogICAgIGRvbS9VSUV2ZW50LmlkbCBcCisgICAgZG9tL1dl
YktpdEFuaW1hdGlvbkV2ZW50LmlkbCBcCisgICAgZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5p
ZGwgXAogICAgIGRvbS9XaGVlbEV2ZW50LmlkbCBcCiAgICAgaHRtbC9DYW52YXNHcmFkaWVudC5p
ZGwgXAogICAgIGh0bWwvQ2FudmFzUGF0dGVybi5pZGwgXApAQCAtNTQ1LDYgKzU0Nyw4IEBAIFNP
VVJDRVMgKz0gXAogICAgIGRvbS9UcmVlV2Fsa2VyLmNwcCBcCiAgICAgZG9tL1VJRXZlbnQuY3Bw
IFwKICAgICBkb20vVUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAgXAorICAgIGRvbS9XZWJLaXRBbmlt
YXRpb25FdmVudC5jcHAgXAorICAgIGRvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIFwKICAg
ICBkb20vV2hlZWxFdmVudC5jcHAgXAogICAgIGRvbS9YTUxUb2tlbml6ZXIuY3BwIFwKICAgICBl
ZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagppbmRleCA1NDZmNjg1Li43MDMyNTkzIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKQEAgLTE2NjQsMTAgKzE2NjQsMTggQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0K
IAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU1dlYktpdEFuaW1hdGlvbkV2ZW50LmgiDQorCQkJ
CT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91
dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTV2ViS2l0Q1NTVHJh
bnNmb3JtVmFsdWUuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxh
dGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNv
dXJjZXNcSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJ
CQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNXaGVlbEV2ZW50LmgiDQogCQkJCT4NCiAJCQk8L0Zp
bGU+DQpAQCAtMTA1NjUsNiArMTA1NzMsMzggQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxG
aWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCIN
CisJCQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2VfUEdP
fFdpbjMyIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKwkJCQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0idHJ1ZSINCisJCQkJCS8+DQor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJl
bGF0aXZlUGF0aD0iLi5cZG9tXFdlYktpdEFuaW1hdGlvbkV2ZW50LmgiDQorCQkJCT4NCisJCQk8
L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cV2ViS2l0VHJhbnNp
dGlvbkV2ZW50LmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5h
bWU9IlJlbGVhc2VfUEdPfFdpbjMyIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCVdob2xlUHJvZ3JhbU9wdGltaXphdGlvbj0idHJ1
ZSINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJ
CTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFdlYktpdFRyYW5zaXRpb25FdmVudC5o
Ig0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
ZG9tXFdoZWVsRXZlbnQuY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGM0YTA1OS4uZTlh
MWY0MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQw
NSw2ICs0MDUsMjIgQEAKIAkJMzE2MTFFNjEwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENT
U1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTYxMUU1RTBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuaCAqLzsgfTsKIAkJMzE2MTFFNjIwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENT
U1RyYW5zZm9ybVZhbHVlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzE2MTFFNUYwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9y
bVZhbHVlLm1tICovOyB9OwogCQkzMTYxMUU2MzBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0
Q1NTVHJhbnNmb3JtVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzE2MTFFNjAwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENT
U1RyYW5zZm9ybVZhbHVlSW50ZXJuYWwuaCAqLzsgfTsKKwkJMzFDMEZGMjEwRTRDRUI2RTAwN0Q2
RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFCMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRB
bmltYXRpb25FdmVudC5jcHAgKi87IH07CisJCTMxQzBGRjIyMEU0Q0VCNkUwMDdENkZFNSAvKiBX
ZWJLaXRBbmltYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzFDMEZGMUMwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2
ZW50LmggKi87IH07CisJCTMxQzBGRjIzMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRp
b25FdmVudC5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxQzBGRjFEMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5pZGwg
Ki87IH07CisJCTMxQzBGRjI0MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFD
MEZGMUUwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgKi87IH07
CisJCTMxQzBGRjI1MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjFGMEU0
Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCAqLzsgfTsKKwkJMzFDMEZG
MjYwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5pZGwgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQzBGRjIwMEU0Q0VCNkUw
MDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaWRsICovOyB9OworCQkzMUMwRkYzRDBF
NENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYzOTBFNENFRkFDMDA3RDZG
RTUgLyogSlNXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgKi87IH07CisJCTMxQzBGRjNFMEU0Q0VG
QUMwMDdENkZFNSAvKiBKU1dlYktpdEFuaW1hdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYzQTBFNENFRkFDMDA3RDZGRTUgLyog
SlNXZWJLaXRBbmltYXRpb25FdmVudC5oICovOyB9OworCQkzMUMwRkYzRjBFNENFRkFDMDA3RDZG
RTUgLyogSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzFDMEZGM0IwRTRDRUZBQzAwN0Q2RkU1IC8qIEpTV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50LmNwcCAqLzsgfTsKKwkJMzFDMEZGNDAwRTRDRUZBQzAwN0Q2RkU1
IC8qIEpTV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkYzQzBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRU
cmFuc2l0aW9uRXZlbnQuaCAqLzsgfTsKKwkJMzFDMEZGNDkwRTRDRUZERDAwN0Q2RkU1IC8qIERP
TVdlYktpdEFuaW1hdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMUMwRkY0MzBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0QW5pbWF0
aW9uRXZlbnQuaCAqLzsgfTsKKwkJMzFDMEZGNEEwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktp
dEFuaW1hdGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzFDMEZGNDQwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdEFuaW1hdGlvbkV2
ZW50Lm1tICovOyB9OworCQkzMUMwRkY0QjBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0QW5p
bWF0aW9uRXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzFDMEZGNDUwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdEFuaW1hdGlv
bkV2ZW50SW50ZXJuYWwuaCAqLzsgfTsKKwkJMzFDMEZGNEMwRTRDRUZERDAwN0Q2RkU1IC8qIERP
TVdlYktpdFRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMzFDMEZGNDYwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5z
aXRpb25FdmVudC5oICovOyB9OworCQkzMUMwRkY0RDBFNENFRkREMDA3RDZGRTUgLyogRE9NV2Vi
S2l0VHJhbnNpdGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzFDMEZGNDcwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRp
b25FdmVudC5tbSAqLzsgfTsKKwkJMzFDMEZGNEUwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktp
dFRyYW5zaXRpb25FdmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMUMwRkY0ODBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJh
bnNpdGlvbkV2ZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJMzcxRjRGNDAwRDI1QjlBRjAwRUNFMEQ1
IC8qIEZvbnREYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzNzFGNEYzRTBEMjVCOUFGMDBFQ0UwRDUgLyogRm9udERhdGEuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzNzFGNEY0MTBEMjVCOUFGMDBF
Q0UwRDUgLyogRm9udERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzcxRjRGM0YwRDI1QjlBRjAwRUNFMEQ1IC8qIEZvbnREYXRhLmNwcCAqLzsg
fTsKIAkJMzcxRjRGRkMwRDI1RTdGMzAwRUNFMEQ1IC8qIFNlZ21lbnRlZEZvbnREYXRhLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzNzFGNEZGQTBEMjVF
N0YzMDBFQ0UwRDUgLyogU2VnbWVudGVkRm9udERhdGEuaCAqLzsgfTsKQEAgLTQ5MzQsNiArNDk1
MCwyMiBAQAogCQkzMTYxMUU1RTBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNm
b3JtVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2ViS2l0Q1NT
VHJhbnNmb3JtVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2MTFFNUYw
RTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFs
dWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNjExRTYwMEUxQzRFMTQwMEY2
QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUludGVybmFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlSW50ZXJuYWwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFDMEZGMUIwRTRDRUI2RTAwN0Q2RkU1
IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzFDMEZGMUMwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdEFuaW1hdGlvbkV2ZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBGRjFEMEU0Q0VCNkUwMDdENkZF
NSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2Vi
S2l0QW5pbWF0aW9uRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUMw
RkYxRTBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdFRyYW5zaXRpb25FdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBGRjFGMEU0Q0VCNkUwMDdENkZFNSAv
KiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxQzBGRjIwMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktpdFRyYW5zaXRpb25FdmVudC5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBGRjM5MEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktp
dEFuaW1hdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkzMUMwRkYzQTBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25FdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYktpdEFuaW1hdGlvbkV2ZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQzBGRjNCMEU0Q0VGQUMwMDdENkZFNSAv
KiBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTMxQzBGRjNDMEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdFRyYW5zaXRp
b25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYktpdFRyYW5z
aXRpb25FdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkzMUMwRkY0MzBFNENF
RkREMDA3RDZGRTUgLyogRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMzFDMEZGNDQwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdEFu
aW1hdGlvbkV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
RE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTMxQzBGRjQ1MEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRBbmltYXRpb25FdmVudEludGVy
bmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdlYktpdEFuaW1hdGlv
bkV2ZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFDMEZGNDYw
RTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzFDMEZGNDcwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdl
YktpdFRyYW5zaXRpb25FdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IERPTVdlYktpdFRyYW5zaXRpb25FdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMzFDMEZGNDgwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdFRyYW5zaXRpb25F
dmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdlYktp
dFRyYW5zaXRpb25FdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTM3MUY0RjNFMEQyNUI5QUYwMEVDRTBENSAvKiBGb250RGF0YS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGb250RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzNzFGNEYzRjBEMjVCOUFGMDBFQ0UwRDUgLyogRm9udERhdGEuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzNzFGNEZGQTBEMjVFN0YzMDBFQ0UwRDUgLyogU2VnbWVudGVkRm9udERhdGEu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VnbWVudGVkRm9udERhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk5NzUsNiArMTAwMDcsMTIgQEAKIAkJCQk4
NUM3RjQ4RjBBQUY3OURDMDA0MDE0REQgLyogRE9NVUlFdmVudC5oICovLAogCQkJCTg1QzdGNDkw
MEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50Lm1tICovLAogCQkJCTg1QzdGNEMyMEFBRjgw
ODEwMDQwMTRERCAvKiBET01VSUV2ZW50UHJpdmF0ZS5oICovLAorCQkJCTMxQzBGRjQzMEU0Q0VG
REQwMDdENkZFNSAvKiBET01XZWJLaXRBbmltYXRpb25FdmVudC5oICovLAorCQkJCTMxQzBGRjQ0
MEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRBbmltYXRpb25FdmVudC5tbSAqLywKKwkJCQkz
MUMwRkY0NTBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnRJbnRlcm5h
bC5oICovLAorCQkJCTMxQzBGRjQ2MEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRUcmFuc2l0
aW9uRXZlbnQuaCAqLywKKwkJCQkzMUMwRkY0NzBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0
VHJhbnNpdGlvbkV2ZW50Lm1tICovLAorCQkJCTMxQzBGRjQ4MEU0Q0VGREQwMDdENkZFNSAvKiBE
T01XZWJLaXRUcmFuc2l0aW9uRXZlbnRJbnRlcm5hbC5oICovLAogCQkJCTg1QzdGNUU1MEFBRkJB
RkIwMDQwMTRERCAvKiBET01XaGVlbEV2ZW50LmggKi8sCiAJCQkJODVDN0Y1RTYwQUFGQkFGQjAw
NDAxNEREIC8qIERPTVdoZWVsRXZlbnQubW0gKi8sCiAJCQkJODVGRjMxM0IwQUFGQkQ3MjAwMzc0
RjM4IC8qIERPTVdoZWVsRXZlbnRQcml2YXRlLmggKi8sCkBAIC0xMTM5Miw2ICsxMTQzMCwxMCBA
QAogCQkJCTkzM0ExNEI3MEI3RDFENTIwMEE1M0ZGRCAvKiBKU1RleHRFdmVudC5oICovLAogCQkJ
CUE4NjYyOUNBMDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJRXZlbnQuY3BwICovLAogCQkJCUE4NjYy
OUM5MDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJRXZlbnQuaCAqLywKKwkJCQkzMUMwRkYzOTBFNENF
RkFDMDA3RDZGRTUgLyogSlNXZWJLaXRBbmltYXRpb25FdmVudC5jcHAgKi8sCisJCQkJMzFDMEZG
M0EwRTRDRUZBQzAwN0Q2RkU1IC8qIEpTV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCAqLywKKwkJCQkz
MUMwRkYzQjBFNENFRkFDMDA3RDZGRTUgLyogSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwICov
LAorCQkJCTMxQzBGRjNDMEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdFRyYW5zaXRpb25FdmVu
dC5oICovLAogCQkJCTY1REYzMUYxMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1doZWVsRXZlbnQuY3Bw
ICovLAogCQkJCTY1REYzMUYyMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1doZWVsRXZlbnQuaCAqLywK
IAkJCSk7CkBAIC0xMzMxMCw2ICsxMzM1MiwxMiBAQAogCQkJCTE0MUI5NEVFMDlFQzQyNUEwMDBF
OTQxMyAvKiBVSUV2ZW50LmlkbCAqLywKIAkJCQk5MzM1NEEzQjBCMjRGOEM5MDAzRjZERUEgLyog
VUlFdmVudFdpdGhLZXlTdGF0ZS5jcHAgKi8sCiAJCQkJODUwMzFCMzkwQTQ0RUZDNzAwRjk5MkUw
IC8qIFVJRXZlbnRXaXRoS2V5U3RhdGUuaCAqLywKKwkJCQkzMUMwRkYxQjBFNENFQjZFMDA3RDZG
RTUgLyogV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwICovLAorCQkJCTMxQzBGRjFDMEU0Q0VCNkUw
MDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5oICovLAorCQkJCTMxQzBGRjFEMEU0Q0VC
NkUwMDdENkZFNSAvKiBXZWJLaXRBbmltYXRpb25FdmVudC5pZGwgKi8sCisJCQkJMzFDMEZGMUUw
RTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgKi8sCisJCQkJMzFD
MEZGMUYwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5oICovLAorCQkJ
CTMxQzBGRjIwMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaWRsICov
LAogCQkJCTg1MDMxQjNBMEE0NEVGQzcwMEY5OTJFMCAvKiBXaGVlbEV2ZW50LmNwcCAqLywKIAkJ
CQk4NTAzMUIzQjBBNDRFRkM3MDBGOTkyRTAgLyogV2hlZWxFdmVudC5oICovLAogCQkJCTkzRUVD
MUY3MDlDMjg3NzcwMEM1MTVEMSAvKiBXaGVlbEV2ZW50LmlkbCAqLywKQEAgLTE1MzMzLDYgKzE1
MzgxLDE0IEBACiAJCQkJMzEyODhFNzUwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZy
YW1lc1J1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0MTUyOTJFMEUxQUU4QTAwMEM0QTJEMCAv
KiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU2MDI4RjBF
NEI3NjU4MDA2NUIwMzggLyogUmVuZGVyTWFycXVlZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzFD
MEZGMjIwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmggaW4gSGVhZGVy
cyAqLywKKwkJCQkzMUMwRkYyNTBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUMwRkYzRTBFNENFRkFDMDA3RDZGRTUgLyogSlNX
ZWJLaXRBbmltYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzFDMEZGNDAwRTRDRUZB
QzAwN0Q2RkU1IC8qIEpTV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkzMUMwRkY0OTBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCTMxQzBGRjRCMEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRB
bmltYXRpb25FdmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQkzMUMwRkY0QzBFNENF
RkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLywK
KwkJCQkzMUMwRkY0RTBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTU0NTAsNiArMTU1MDYsOCBAQAogCQkJCUJD
MTg4MUREMEUwOEM1NDMwMDA0OEMxMyAvKiBGaWxlTGlzdC5pZGwgaW4gUmVzb3VyY2VzICovLAog
CQkJCTMxNjExRTU1MEUxQzRENEEwMEY2QTU3OSAvKiBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5p
ZGwgaW4gUmVzb3VyY2VzICovLAogCQkJCUJDM0E0NERGMEUyNkQyMDIwMEMxNERGQSAvKiBOU1Jl
c29sdmVyLmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJMzFDMEZGMjMwRTRDRUI2RTAwN0Q2RkU1
IC8qIFdlYktpdEFuaW1hdGlvbkV2ZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCisJCQkJMzFDMEZG
MjYwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5pZGwgaW4gUmVzb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtMTcxMDgsNiArMTcxNjYsMTIgQEAKIAkJCQlBODNFMUM3NDBFNDkwNDJDMDAx
NDBCOUMgLyogU2NyaXB0Q29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTQ0MTUy
OTJGMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGNTYwMjkwMEU0Qjc2NTgwMDY1QjAzOCAvKiBSZW5kZXJNYXJxdWVlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTMxQzBGRjIxMEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRB
bmltYXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMUMwRkYyNDBFNENFQjZFMDA3
RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTMx
QzBGRjNEMEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdEFuaW1hdGlvbkV2ZW50LmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTMxQzBGRjNGMEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdFRyYW5z
aXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkzMUMwRkY0QTBFNENFRkREMDA3RDZG
RTUgLyogRE9NV2ViS2l0QW5pbWF0aW9uRXZlbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQkzMUMw
RkY0RDBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0VHJhbnNpdGlvbkV2ZW50Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbCBiL1dlYkNv
cmUvV2ViQ29yZVNvdXJjZXMuYmtsCmluZGV4IDM4NzE4YzUuLmQyZjAzM2QgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCisrKyBiL1dlYkNvcmUvV2ViQ29yZVNvdXJjZXMu
YmtsCkBAIC0zMzMsNyArMzMzLDkgQEAgVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBsaXN0IG9mIGZp
bGVzIG5lZWRlZCB0byBidWlsZCBXZWJDb3JlLgogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTVGV4dEV2ZW50LmNwcAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTVHJl
ZVdhbGtlci5jcHAKICAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1VJRXZlbnQuY3Bw
CisgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRBbmltYXRpb25FdmVudC5j
cHAKICAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdENTU1RyYW5zZm9ybVZh
bHVlLmNwcAorICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0VHJhbnNpdGlv
bkV2ZW50LmNwcAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2hlZWxFdmVudC5j
cHAKICAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1hNTEh0dHBSZXF1ZXN0LmNwcAog
ICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24u
Y3BwCkBAIC00MTUsNiArNDE3LDggQEAgVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBsaXN0IG9mIGZp
bGVzIG5lZWRlZCB0byBidWlsZCBXZWJDb3JlLgogICAgICAgICBkb20vVHJlZVdhbGtlci5jcHAK
ICAgICAgICAgZG9tL1VJRXZlbnQuY3BwCiAgICAgICAgIGRvbS9VSUV2ZW50V2l0aEtleVN0YXRl
LmNwcAorICAgICAgICBkb20vV2Via2l0QW5pbWF0aW9uRXZlbnQuY3BwCisgICAgICAgIGRvbS9X
ZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwCiAgICAgICAgIGRvbS9XaGVlbEV2ZW50LmNwcAogICAg
ICAgICBkb20vWE1MVG9rZW5pemVyLmNwcAogICAgIDwvc2V0PgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0Jhc2UuY3BwCmluZGV4IDAwYWY5MTIuLjc5NGRiMGEgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKQEAgLTE3OSw2ICsxNzksMTAgQEAgY29uc3QgQ2xh
c3NJbmZvIEpTRE9NV2luZG93QmFzZTo6c19pbmZvID0geyAiV2luZG93IiwgMCwgJkpTRE9NV2lu
ZG93QmFzZVRhYmxlLAogICBvbnN1Ym1pdCAgICAgICAgICAgICAgV2ViQ29yZTo6SlNET01XaW5k
b3dCYXNlOjpPbnN1Ym1pdCAgICAgICAgICAgRG9udERlbGV0ZQogICBvbnVubG9hZCAgICAgICAg
ICAgICAgV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpPbnVubG9hZCAgICAgICAgICAgRG9udERl
bGV0ZQogICBvbmJlZm9yZXVubG9hZCAgICAgICAgV2ViQ29yZTo6SlNET01XaW5kb3dCYXNlOjpP
bmJlZm9yZXVubG9hZCAgICAgRG9udERlbGV0ZQorICBvbndlYmtpdGFuaW1hdGlvbnN0YXJ0ICAg
IFdlYkNvcmU6OkpTRE9NV2luZG93QmFzZTo6T25XZWJLaXRBbmltYXRpb25TdGFydCAgRG9udERl
bGV0ZQorICBvbndlYmtpdGFuaW1hdGlvbml0ZXJhdGlvbiAgICAgV2ViQ29yZTo6SlNET01XaW5k
b3dCYXNlOjpPbldlYktpdEFuaW1hdGlvbkl0ZXJhdGlvbiAgIERvbnREZWxldGUKKyAgb253ZWJr
aXRhbmltYXRpb25lbmQgICAgICBXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6Ok9uV2ViS2l0QW5p
bWF0aW9uRW5kICAgIERvbnREZWxldGUKKyAgb253ZWJraXR0cmFuc2l0aW9uZW5kICAgICBXZWJD
b3JlOjpKU0RPTVdpbmRvd0Jhc2U6Ok9uV2ViS2l0VHJhbnNpdGlvbkVuZCAgIERvbnREZWxldGUK
ICMgLS0gQ29uc3RydWN0b3JzIC0tCiAgIEF1ZGlvICAgICAgICAgICAgICAgICBXZWJDb3JlOjpK
U0RPTVdpbmRvd0Jhc2U6OkF1ZGlvICAgICAgICAgICAgICBEb250RGVsZXRlCiAgIEltYWdlICAg
ICAgICAgICAgICAgICBXZWJDb3JlOjpKU0RPTVdpbmRvd0Jhc2U6OkltYWdlICAgICAgICAgICAg
ICBEb250RGVsZXRlCkBAIC01MTgsNiArNTIyLDE0IEBAIEpTVmFsdWUgKkpTRE9NV2luZG93QmFz
ZTo6Z2V0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbikgY29uc3QKICAg
ICAgcmV0dXJuIGdldExpc3RlbmVyKGV4ZWMsIGJlZm9yZXVubG9hZEV2ZW50KTsKICAgIGNhc2Ug
T251bmxvYWQ6CiAgICAgIHJldHVybiBnZXRMaXN0ZW5lcihleGVjLCB1bmxvYWRFdmVudCk7Cisg
ICBjYXNlIE9uV2ViS2l0QW5pbWF0aW9uU3RhcnQ6CisgICAgIHJldHVybiBnZXRMaXN0ZW5lcihl
eGVjLCB3ZWJraXRBbmltYXRpb25TdGFydEV2ZW50KTsKKyAgIGNhc2UgT25XZWJLaXRBbmltYXRp
b25JdGVyYXRpb246CisgICAgIHJldHVybiBnZXRMaXN0ZW5lcihleGVjLCB3ZWJraXRBbmltYXRp
b25JdGVyYXRpb25FdmVudCk7CisgICBjYXNlIE9uV2ViS2l0QW5pbWF0aW9uRW5kOgorICAgICBy
ZXR1cm4gZ2V0TGlzdGVuZXIoZXhlYywgd2Via2l0QW5pbWF0aW9uRW5kRXZlbnQpOworICAgY2Fz
ZSBPbldlYktpdFRyYW5zaXRpb25FbmQ6CisgICAgIHJldHVybiBnZXRMaXN0ZW5lcihleGVjLCB3
ZWJraXRUcmFuc2l0aW9uRW5kRXZlbnQpOwogICAgfQogICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5oCmluZGV4IGU0NjRmMGYuLjA1Y2U2YjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dCYXNlLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0Jhc2UuaApAQCAtMTM3LDYgKzEzNyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
ICAgIE9uV2luZG93TW91c2VXaGVlbCwgT25yZXNldCwgT25yZXNpemUsIE9uc2Nyb2xsLAogICAg
ICAgICAgICAgT25zZWFyY2gsIE9uc2VsZWN0LCBPbnN1Ym1pdCwgT251bmxvYWQsCiAgICAgICAg
ICAgICBPbmJlZm9yZXVubG9hZCwKKyAgICAgICAgICAgIE9uV2ViS2l0QW5pbWF0aW9uU3RhcnQs
IE9uV2ViS2l0QW5pbWF0aW9uSXRlcmF0aW9uLCBPbldlYktpdEFuaW1hdGlvbkVuZCwKKyAgICAg
ICAgICAgIE9uV2ViS2l0VHJhbnNpdGlvbkVuZCwKIAogICAgICAgICAgICAgLy8gQ29uc3RydWN0
b3JzCiAgICAgICAgICAgICBBdWRpbywgSW1hZ2UsIE9wdGlvbiwgWE1MSHR0cFJlcXVlc3QsCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAppbmRleCAzMjU3ZTc4Li5hODY4YjA3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRDdXN0b20uY3BwCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFdmVudEN1c3RvbS5jcHAKQEAgLTQwLDYgKzQwLDggQEAKICNp
bmNsdWRlICJKU1Byb2dyZXNzRXZlbnQuaCIKICNpbmNsdWRlICJKU1RleHRFdmVudC5oIgogI2lu
Y2x1ZGUgIkpTVUlFdmVudC5oIgorI2luY2x1ZGUgIkpTV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIK
KyNpbmNsdWRlICJKU1dlYktpdFRyYW5zaXRpb25FdmVudC5oIgogI2luY2x1ZGUgIkpTV2hlZWxF
dmVudC5oIgogI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmgiCiAjaW5j
bHVkZSAiS2V5Ym9hcmRFdmVudC5oIgpAQCAtNTAsNiArNTIsOCBAQAogI2luY2x1ZGUgIlByb2dy
ZXNzRXZlbnQuaCIKICNpbmNsdWRlICJUZXh0RXZlbnQuaCIKICNpbmNsdWRlICJVSUV2ZW50Lmgi
CisjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCIKKyNpbmNsdWRlICJXZWJLaXRUcmFu
c2l0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmgiCiAKQEAgLTExMiw2ICsxMTYsMTAgQEAgSlNWYWx1ZSog
dG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEV2ZW50KiBldmVudCkKICAgICBlbHNlIGlmIChldmVudC0+
aXNTdG9yYWdlRXZlbnQoKSkKICAgICAgICAgcmV0ID0gbmV3IChleGVjKSBKU1N0b3JhZ2VFdmVu
dChKU1N0b3JhZ2VFdmVudFByb3RvdHlwZTo6c2VsZihleGVjKSwgc3RhdGljX2Nhc3Q8U3RvcmFn
ZUV2ZW50Kj4oZXZlbnQpKTsKICNlbmRpZgorICAgIGVsc2UgaWYgKGV2ZW50LT5pc1dlYktpdEFu
aW1hdGlvbkV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyAoZXhlYykgSlNXZWJLaXRBbmltYXRp
b25FdmVudChKU1dlYktpdEFuaW1hdGlvbkV2ZW50UHJvdG90eXBlOjpzZWxmKGV4ZWMpLCBzdGF0
aWNfY2FzdDxXZWJLaXRBbmltYXRpb25FdmVudCo+KGV2ZW50KSk7CisgICAgZWxzZSBpZiAoZXZl
bnQtPmlzV2ViS2l0VHJhbnNpdGlvbkV2ZW50KCkpCisgICAgICAgIHJldCA9IG5ldyAoZXhlYykg
SlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQoSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnRQcm90b3R5cGU6
OnNlbGYoZXhlYyksIHN0YXRpY19jYXN0PFdlYktpdFRyYW5zaXRpb25FdmVudCo+KGV2ZW50KSk7
CiAgICAgZWxzZQogICAgICAgICByZXQgPSBuZXcgKGV4ZWMpIEpTRXZlbnQoSlNFdmVudFByb3Rv
dHlwZTo6c2VsZihleGVjKSwgZXZlbnQpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oIGIvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA2M2ViNzc2Li41ZmExMzcwIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKQEAgLTU0MCw3ICs1NDAsMTEgQEAgcHVibGljOgogICAgICAgICBET01OT0RFSU5TRVJU
RURJTlRPRE9DVU1FTlRfTElTVEVORVIgPSAweDEwLAogICAgICAgICBET01BVFRSTU9ESUZJRURf
TElTVEVORVIgICAgICAgICAgICAgPSAweDIwLAogICAgICAgICBET01DSEFSQUNURVJEQVRBTU9E
SUZJRURfTElTVEVORVIgICAgPSAweDQwLAotICAgICAgICBPVkVSRkxPV0NIQU5HRURfTElTVEVO
RVIgICAgICAgICAgICAgPSAweDgwCisgICAgICAgIE9WRVJGTE9XQ0hBTkdFRF9MSVNURU5FUiAg
ICAgICAgICAgICA9IDB4ODAsCisgICAgICAgIEFOSU1BVElPTkVORF9MSVNURU5FUiAgICAgICAg
ICAgICAgICA9IDB4MTAwLAorICAgICAgICBBTklNQVRJT05TVEFSVF9MSVNURU5FUiAgICAgICAg
ICAgICAgPSAweDIwMCwKKyAgICAgICAgQU5JTUFUSU9OSVRFUkFUSU9OX0xJU1RFTkVSICAgICAg
ICAgID0gMHg0MDAsCisgICAgICAgIFRSQU5TSVRJT05FTkRfTElTVEVORVIgICAgICAgICAgICAg
ICA9IDB4ODAwCiAgICAgfTsKIAogICAgIGJvb2wgaGFzTGlzdGVuZXJUeXBlKExpc3RlbmVyVHlw
ZSBsaXN0ZW5lclR5cGUpIGNvbnN0IHsgcmV0dXJuIChtX2xpc3RlbmVyVHlwZXMgJiBsaXN0ZW5l
clR5cGUpOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FdmVudC5jcHAgYi9XZWJDb3JlL2Rv
bS9FdmVudC5jcHAKaW5kZXggYWQ3NDRkMS4uNjdhZTQ5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9k
b20vRXZlbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0V2ZW50LmNwcApAQCAtMTI5LDYgKzEyOSwx
NiBAQCBib29sIEV2ZW50Ojppc1Byb2dyZXNzRXZlbnQoKSBjb25zdAogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAorYm9vbCBFdmVudDo6aXNXZWJLaXRBbmltYXRpb25FdmVudCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50Ojppc1dlYktpdFRyYW5zaXRpb25FdmVu
dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIEV2ZW50Ojppc1hNTEh0
dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGZhbHNlOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9kb20vRXZlbnQuaCBiL1dlYkNvcmUvZG9tL0V2ZW50LmgKaW5kZXgg
NmYwNDFiMy4uY2UzZDk2OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRXZlbnQuaAorKysgYi9X
ZWJDb3JlL2RvbS9FdmVudC5oCkBAIC0xMTEsNiArMTExLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNPdmVyZmxvd0V2ZW50KCkgY29uc3Q7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBpc1Byb2dyZXNzRXZlbnQoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBi
b29sIGlzWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50KCkgY29uc3Q7CisgICAgICAgIHZpcnR1
YWwgYm9vbCBpc1dlYktpdEFuaW1hdGlvbkV2ZW50KCkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwg
Ym9vbCBpc1dlYktpdFRyYW5zaXRpb25FdmVudCgpIGNvbnN0OwogI2lmIEVOQUJMRShTVkcpCiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBpc1NWR1pvb21FdmVudCgpIGNvbnN0OwogI2VuZGlmCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldC5jcHAgYi9XZWJDb3JlL2RvbS9FdmVudFRh
cmdldC5jcHAKaW5kZXggYzE0MmZhMy4uMzdmYzVjOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0LmNwcApAQCAtMTA2
LDYgKzEwNiwxNCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkTGlzdGVuZXJUeXBlVG9Eb2N1bWVu
dElmTmVlZGVkKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeQogICAgICAgICB0eXBlID0gRG9j
dW1lbnQ6OkRPTUNIQVJBQ1RFUkRBVEFNT0RJRklFRF9MSVNURU5FUjsKICAgICBlbHNlIGlmIChl
dmVudFR5cGUgPT0gb3ZlcmZsb3djaGFuZ2VkRXZlbnQpCiAgICAgICAgIHR5cGUgPSBEb2N1bWVu
dDo6T1ZFUkZMT1dDSEFOR0VEX0xJU1RFTkVSOworICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSB3
ZWJraXRBbmltYXRpb25TdGFydEV2ZW50KQorICAgICAgICB0eXBlID0gRG9jdW1lbnQ6OkFOSU1B
VElPTlNUQVJUX0xJU1RFTkVSOworICAgIGVsc2UgaWYgKGV2ZW50VHlwZSA9PSB3ZWJraXRBbmlt
YXRpb25FbmRFdmVudCkKKyAgICAgICAgdHlwZSA9IERvY3VtZW50OjpBTklNQVRJT05FTkRfTElT
VEVORVI7CisgICAgZWxzZSBpZiAoZXZlbnRUeXBlID09IHdlYmtpdEFuaW1hdGlvbkl0ZXJhdGlv
bkV2ZW50KQorICAgICAgICB0eXBlID0gRG9jdW1lbnQ6OkFOSU1BVElPTklURVJBVElPTl9MSVNU
RU5FUjsKKyAgICBlbHNlIGlmIChldmVudFR5cGUgPT0gd2Via2l0VHJhbnNpdGlvbkVuZEV2ZW50
KQorICAgICAgICB0eXBlID0gRG9jdW1lbnQ6OlRSQU5TSVRJT05FTkRfTElTVEVORVI7CiAKICAg
ICBpZiAodHlwZSkKICAgICAgICAgZG9jdW1lbnQtPmFkZExpc3RlbmVyVHlwZSh0eXBlKTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Tm9kZS5jcHAgYi9XZWJDb3JlL2RvbS9F
dmVudFRhcmdldE5vZGUuY3BwCmluZGV4IGUxODNjYTAuLjc2NjE3YzYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0Tm9kZS5jcHAKKysrIGIvV2ViQ29yZS9kb20vRXZlbnRUYXJn
ZXROb2RlLmNwcApAQCAtNDEsNiArNDEsOCBAQAogI2luY2x1ZGUgIlByb2dyZXNzRXZlbnQuaCIK
ICNpbmNsdWRlICJSZWdpc3RlcmVkRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIlRleHRFdmVu
dC5oIgorI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiV2ViS2l0
VHJhbnNpdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CiAKQEAgLTM1OCw2ICszNjAsMjEgQEAgdm9pZCBFdmVudFRhcmdldE5vZGU6
OmRpc3BhdGNoV2hlZWxFdmVudChQbGF0Zm9ybVdoZWVsRXZlbnQmIGUpCiAgICAgICAgIGUuYWNj
ZXB0KCk7CiB9CiAKK2Jvb2wgRXZlbnRUYXJnZXROb2RlOjpkaXNwYXRjaFdlYktpdEFuaW1hdGlv
bkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBTdHJpbmcmIGFuaW1h
dGlvbk5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSkKK3sKKyAgICBBU1NFUlQoIWV2ZW50RGlzcGF0
Y2hGb3JiaWRkZW4oKSk7CisgICAgCisgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgcmV0
dXJuIGRpc3BhdGNoRXZlbnQoV2ViS2l0QW5pbWF0aW9uRXZlbnQ6OmNyZWF0ZShldmVudFR5cGUs
IGFuaW1hdGlvbk5hbWUsIGVsYXBzZWRUaW1lKSwgZWMsIHRydWUpOworfQorCitib29sIEV2ZW50
VGFyZ2V0Tm9kZTo6ZGlzcGF0Y2hXZWJLaXRUcmFuc2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlOYW1lLCBkb3VibGUgZWxhcHNl
ZFRpbWUpCit7CisgICAgQVNTRVJUKCFldmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOworICAgIAor
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHJldHVybiBkaXNwYXRjaEV2ZW50KFdlYktp
dFRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50VHlwZSwgcHJvcGVydHlOYW1lLCBlbGFwc2Vk
VGltZSksIGVjLCB0cnVlKTsKK30KIAogdm9pZCBFdmVudFRhcmdldE5vZGU6OmRpc3BhdGNoRm9j
dXNFdmVudCgpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldE5vZGUuaCBi
L1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Tm9kZS5oCmluZGV4IGM5ZWZiNjQuLjAyODJmODcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0V2ZW50VGFyZ2V0Tm9kZS5oCisrKyBiL1dlYkNvcmUvZG9t
L0V2ZW50VGFyZ2V0Tm9kZS5oCkBAIC02Nyw2ICs2Nyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRp
c3BhdGNoU2ltdWxhdGVkQ2xpY2soUGFzc1JlZlB0cjxFdmVudD4gdW5kZXJseWluZ0V2ZW50LCBi
b29sIHNlbmRNb3VzZUV2ZW50cyA9IGZhbHNlLCBib29sIHNob3dQcmVzc2VkTG9vayA9IHRydWUp
OwogICAgIGJvb2wgZGlzcGF0Y2hQcm9ncmVzc0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyAmZXZl
bnRUeXBlLCBib29sIGxlbmd0aENvbXB1dGFibGVBcmcsIHVuc2lnbmVkIGxvYWRlZEFyZywgdW5z
aWduZWQgdG90YWxBcmcpOwogICAgIHZvaWQgZGlzcGF0Y2hTdG9yYWdlRXZlbnQoY29uc3QgQXRv
bWljU3RyaW5nICZldmVudFR5cGUsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9s
ZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBGcmFtZSogc291cmNlKTsKKyAgICBib29s
IGRpc3BhdGNoV2ViS2l0QW5pbWF0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5
cGUsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKTsKKyAg
ICBib29sIGRpc3BhdGNoV2ViS2l0VHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIGVsYXBzZWRUaW1l
KTsKIAogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVMb2NhbEV2ZW50cyhFdmVudCosIGJvb2wgdXNl
Q2FwdHVyZSk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50
LmNwcCBiL1dlYkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZTVjOWVkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9kb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuY3BwCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0QW5pbWF0aW9uRXZl
bnQuaCIKKworI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
ICAgIAorICAgIHVzaW5nIG5hbWVzcGFjZSBFdmVudE5hbWVzOworICAgIAorICAgIFdlYktpdEFu
aW1hdGlvbkV2ZW50OjpXZWJLaXRBbmltYXRpb25FdmVudCgpCisgICAgOiBtX2FuaW1hdGlvbk5h
bWUoKQorICAgICwgbV9lbGFwc2VkVGltZSgwLjApCisgICAgeworICAgIH0KKyAgICAKKyAgICBX
ZWJLaXRBbmltYXRpb25FdmVudDo6V2ViS2l0QW5pbWF0aW9uRXZlbnQoY29uc3QgQXRvbWljU3Ry
aW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSBlbGFwc2VkVGlt
ZSkKKyAgICA6IEV2ZW50KHR5cGUsIHRydWUsIHRydWUpCisgICAgLCBtX2FuaW1hdGlvbk5hbWUo
YW5pbWF0aW9uTmFtZSkKKyAgICAsIG1fZWxhcHNlZFRpbWUoZWxhcHNlZFRpbWUpCisgICAgewor
ICAgIH0KKyAgICAKKyAgICBXZWJLaXRBbmltYXRpb25FdmVudDo6fldlYktpdEFuaW1hdGlvbkV2
ZW50KCkKKyAgICB7CisgICAgfQorICAgIAorICAgIHZvaWQgV2ViS2l0QW5pbWF0aW9uRXZlbnQ6
OmluaXRXZWJLaXRBbmltYXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIC8qY2FuQnViYmxl
QXJnKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg
LypjYW5jZWxhYmxlQXJnKi8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIGVsYXBzZWRUaW1lKQorICAgIHsKKyAgICAg
ICAgaWYgKGRpc3BhdGNoZWQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAg
ICAgIGluaXRFdmVudCh0eXBlLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIAorICAgICAgICBtX2Fu
aW1hdGlvbk5hbWUgPSBhbmltYXRpb25OYW1lOworICAgIH0KKyAgICAKKyAgICBjb25zdCBTdHJp
bmcmIFdlYktpdEFuaW1hdGlvbkV2ZW50OjphbmltYXRpb25OYW1lKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIHJldHVybiBtX2FuaW1hdGlvbk5hbWU7CisgICAgfQorICAgIAorICAgIGRvdWJsZSBX
ZWJLaXRBbmltYXRpb25FdmVudDo6ZWxhcHNlZFRpbWUoKSBjb25zdAorICAgIHsKKyAgICAgICAg
cmV0dXJuIG1fZWxhcHNlZFRpbWU7CisgICAgfQorICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaCBiL1dlYkNv
cmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYmM3ZTU3YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZG9tL1dlYktpdEFu
aW1hdGlvbkV2ZW50LmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
V2ViS2l0QW5pbWF0aW9uRXZlbnRfaAorI2RlZmluZSBXZWJLaXRBbmltYXRpb25FdmVudF9oCisK
KyNpbmNsdWRlICJFdmVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgICAgIAorICAg
IGNsYXNzIFdlYktpdEFuaW1hdGlvbkV2ZW50IDogcHVibGljIEV2ZW50IHsKKyAgICBwdWJsaWM6
CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdEFuaW1hdGlvbkV2ZW50PiBjcmVhdGUo
KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktpdEFuaW1h
dGlvbkV2ZW50KTsKKyAgICAgICAgfQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRB
bmltYXRpb25FdmVudD4gY3JlYXRlKGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBhbmltYXRpb25OYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0QW5pbWF0aW9uRXZlbnQodHlwZSwgYW5p
bWF0aW9uTmFtZSwgZWxhcHNlZFRpbWUpKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwg
fldlYktpdEFuaW1hdGlvbkV2ZW50KCk7CisgICAgICAgIAorICAgICAgICB2b2lkIGluaXRXZWJL
aXRBbmltYXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBib29sIGNhbkJ1YmJsZUFyZywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBjYW5jZWxhYmxlQXJnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRvdWJsZSBlbGFwc2VkVGltZSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICAKKyAgICAgICAgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1lKCkgY29uc3Q7CisgICAg
ICAgIGRvdWJsZSBlbGFwc2VkVGltZSgpIGNvbnN0OworICAgICAgICAKKyAgICAgICAgdmlydHVh
bCBib29sIGlzV2ViS2l0QW5pbWF0aW9uRXZlbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Cisg
ICAgICAgIAorICAgIHByaXZhdGU6CisgICAgICAgIFdlYktpdEFuaW1hdGlvbkV2ZW50KCk7Cisg
ICAgICAgIFdlYktpdEFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgY29u
c3QgU3RyaW5nJiBhbmltYXRpb25OYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpOworCisgICAgICAg
IFN0cmluZyBtX2FuaW1hdGlvbk5hbWU7CisgICAgICAgIGRvdWJsZSBtX2VsYXBzZWRUaW1lOwor
ICAgIH07CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBXZWJLaXRB
bmltYXRpb25FdmVudF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9XZWJLaXRBbmltYXRpb25F
dmVudC5pZGwgYi9XZWJDb3JlL2RvbS9XZWJLaXRBbmltYXRpb25FdmVudC5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTE5YTg3NAotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmlkbApAQCAtMCwwICsxLDM4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENP
TVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworbW9kdWxlIGV2ZW50cyB7CisKK2ludGVyZmFjZSBXZWJLaXRBbmltYXRpb25F
dmVudCA6IEV2ZW50IHsKKyAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAg
ICBhbmltYXRpb25OYW1lOworICAgICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlICAgICAgICAg
ICAgIGVsYXBzZWRUaW1lOworICAgICB2b2lkICAgICAgICAgICAgICAgaW5pdFdlYktpdEFuaW1h
dGlvbkV2ZW50KGluIERPTVN0cmluZyB0eXBlQXJnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY2FuQnViYmxlQXJnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY2FuY2VsYWJsZUFyZywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcg
YW5pbWF0aW9uTmFtZUFyZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbiBkb3VibGUgZWxhcHNlZFRpbWVBcmcpOworfTsKKworfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBiL1dlYkNvcmUvZG9tL1dlYktpdFRy
YW5zaXRpb25FdmVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjlm
MzA4MQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVu
dC5jcHAKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCIKKworI2luY2x1ZGUgIkV2ZW50
TmFtZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorICAgIHVzaW5nIG5hbWVzcGFj
ZSBFdmVudE5hbWVzOworICAgIAorICAgIFdlYktpdFRyYW5zaXRpb25FdmVudDo6V2ViS2l0VHJh
bnNpdGlvbkV2ZW50KCkKKyAgICA6IG1fcHJvcGVydHlOYW1lKCkKKyAgICAsIG1fZWxhcHNlZFRp
bWUoMC4wKQorICAgIHsKKyAgICB9CisgICAgCisgICAgV2ViS2l0VHJhbnNpdGlvbkV2ZW50OjpX
ZWJLaXRUcmFuc2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJp
bmcmIHByb3BlcnR5TmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKQorICAgIDogRXZlbnQodHlwZSwg
dHJ1ZSwgdHJ1ZSkKKyAgICAsIG1fcHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSkKKyAgICAsIG1f
ZWxhcHNlZFRpbWUoZWxhcHNlZFRpbWUpCisgICAgeworICAgIH0KKyAgICAKKyAgICBXZWJLaXRU
cmFuc2l0aW9uRXZlbnQ6On5XZWJLaXRUcmFuc2l0aW9uRXZlbnQoKQorICAgIHsKKyAgICB9Cisg
ICAgCisgICAgdm9pZCBXZWJLaXRUcmFuc2l0aW9uRXZlbnQ6OmluaXRXZWJLaXRUcmFuc2l0aW9u
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYm9vbCAvKmNhbkJ1YmJsZUFyZyovLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIC8qY2FuY2VsYWJsZUFyZyovLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJpbmcm
IHByb3BlcnR5TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZG91YmxlIGVsYXBzZWRUaW1lKQorICAgIHsKKyAgICAgICAgaWYgKGRpc3BhdGNoZWQoKSkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgCisgICAgICAgIGluaXRFdmVudCh0eXBlLCBm
YWxzZSwgdHJ1ZSk7CisgICAgICAgIAorICAgICAgICBtX3Byb3BlcnR5TmFtZSA9IHByb3BlcnR5
TmFtZTsKKyAgICB9CisgICAgCisgICAgY29uc3QgU3RyaW5nJiBXZWJLaXRUcmFuc2l0aW9uRXZl
bnQ6OnByb3BlcnR5TmFtZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9wcm9wZXJ0
eU5hbWU7CisgICAgfQorICAgIAorICAgIGRvdWJsZSBXZWJLaXRUcmFuc2l0aW9uRXZlbnQ6OmVs
YXBzZWRUaW1lKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2VsYXBzZWRUaW1lOwor
ICAgIH0KKyAgICAKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
ZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5oIGIvV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlv
bkV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2NiZjI1MgotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5oCkBAIC0w
LDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFdlYktpdFRyYW5zaXRpb25FdmVu
dF9oCisjZGVmaW5lIFdlYktpdFRyYW5zaXRpb25FdmVudF9oCisKKyNpbmNsdWRlICJFdmVudC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgICAgIAorICAgIGNsYXNzIFdlYktpdFRyYW5z
aXRpb25FdmVudCA6IHB1YmxpYyBFdmVudCB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJLaXRUcmFuc2l0aW9uRXZlbnQ+IGNyZWF0ZSgpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0VHJhbnNpdGlvbkV2ZW50KTsKKyAg
ICAgICAgfQorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRUcmFuc2l0aW9uRXZlbnQ+
IGNyZWF0ZShjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9u
TmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFdlYktpdFRyYW5zaXRpb25FdmVudCh0eXBlLCBhbmltYXRpb25OYW1lLCBl
bGFwc2VkVGltZSkpOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCB+V2ViS2l0VHJhbnNp
dGlvbkV2ZW50KCk7CisgICAgICAgIAorICAgICAgICB2b2lkIGluaXRXZWJLaXRUcmFuc2l0aW9u
RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCAKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYm9vbCBjYW5CdWJibGVBcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wgY2FuY2VsYWJsZUFyZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRvdWJsZSBlbGFwc2VkVGltZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAg
ICAgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUoKSBjb25zdDsKKyAgICAgICAgZG91YmxlIGVs
YXBzZWRUaW1lKCkgY29uc3Q7CisgICAgICAgIAorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNXZWJL
aXRUcmFuc2l0aW9uRXZlbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIAorICAg
IHByaXZhdGU6CisgICAgICAgIFdlYktpdFRyYW5zaXRpb25FdmVudCgpOworICAgICAgICBXZWJL
aXRUcmFuc2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcm
IHByb3BlcnR5TmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKTsKKworICAgICAgICBTdHJpbmcgbV9w
cm9wZXJ0eU5hbWU7CisgICAgICAgIGRvdWJsZSBtX2VsYXBzZWRUaW1lOworICAgIH07CisgICAg
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBXZWJLaXRUcmFuc2l0aW9uRXZl
bnRfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmlkbCBi
L1dlYkNvcmUvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uOWU4MGRhZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvZG9t
L1dlYktpdFRyYW5zaXRpb25FdmVudC5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKK21vZHVsZSBldmVudHMgeworCitpbnRlcmZhY2UgV2ViS2l0VHJhbnNpdGlvbkV2ZW50IDog
RXZlbnQgeworICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICAgIHByb3Bl
cnR5TmFtZTsKKyAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGRvdWJsZSAgICAgICAgICAgICBlbGFw
c2VkVGltZTsKKyAgICAgdm9pZCAgICAgICAgICAgICAgIGluaXRXZWJLaXRUcmFuc2l0aW9uRXZl
bnQoaW4gRE9NU3RyaW5nIHR5cGVBcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5CdWJibGVBcmcsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5jZWxhYmxlQXJnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVN0cmluZyBwcm9wZXJ0
eU5hbWVBcmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
ZG91YmxlIGVsYXBzZWRUaW1lQXJnKTsKK307CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9IVE1MQXR0cmlidXRlTmFtZXMuaW4gYi9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVz
LmluCmluZGV4IDgxNmI5ZmUuLmEzNzFmYTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1M
QXR0cmlidXRlTmFtZXMuaW4KKysrIGIvV2ViQ29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5p
bgpAQCAtMTU0LDYgKzE1NCwxMCBAQCBvbnNlbGVjdHN0YXJ0CiBvbnN0b3JhZ2UKIG9uc3VibWl0
CiBvbnVubG9hZAorb253ZWJraXRhbmltYXRpb25zdGFydAorb253ZWJraXRhbmltYXRpb25pdGVy
YXRpb24KK29ud2Via2l0YW5pbWF0aW9uZW5kCitvbndlYmtpdHRyYW5zaXRpb25lbmQKIHBhZ2V4
CiBwYWdleQogcGxhY2Vob2xkZXIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IGMzNGRiMjEuLmVhZTk5
ZjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKKysrIGIvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtMjE5LDYgKzIxOSwxNCBAQCB2b2lkIEhUTUxFbGVt
ZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUgKmF0dHIpCiAgICAgICAg
IHNldEhUTUxFdmVudExpc3RlbmVyKHN1Ym1pdEV2ZW50LCBhdHRyKTsKICAgICB9IGVsc2UgaWYg
KGF0dHItPm5hbWUoKSA9PSBvbmVycm9yQXR0cikgewogICAgICAgICBzZXRIVE1MRXZlbnRMaXN0
ZW5lcihlcnJvckV2ZW50LCBhdHRyKTsKKyAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBv
bndlYmtpdGFuaW1hdGlvbnN0YXJ0QXR0cikgeworICAgICAgICBzZXRIVE1MRXZlbnRMaXN0ZW5l
cih3ZWJraXRBbmltYXRpb25TdGFydEV2ZW50LCBhdHRyKTsKKyAgICB9IGVsc2UgaWYgKGF0dHIt
Pm5hbWUoKSA9PSBvbndlYmtpdGFuaW1hdGlvbml0ZXJhdGlvbkF0dHIpIHsKKyAgICAgICAgc2V0
SFRNTEV2ZW50TGlzdGVuZXIod2Via2l0QW5pbWF0aW9uSXRlcmF0aW9uRXZlbnQsIGF0dHIpOwor
ICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9ud2Via2l0YW5pbWF0aW9uZW5kQXR0cikg
eworICAgICAgICBzZXRIVE1MRXZlbnRMaXN0ZW5lcih3ZWJraXRBbmltYXRpb25FbmRFdmVudCwg
YXR0cik7CisgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0gb253ZWJraXR0cmFuc2l0aW9u
ZW5kQXR0cikgeworICAgICAgICBzZXRIVE1MRXZlbnRMaXN0ZW5lcih3ZWJraXRUcmFuc2l0aW9u
RW5kRXZlbnQsIGF0dHIpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9tYW51YWwt
dGVzdHMvdHJhbnNpdGlvbi1ldmVudHMuaHRtbCBiL1dlYkNvcmUvbWFudWFsLXRlc3RzL3RyYW5z
aXRpb24tZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzZj
Zjk0MAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvbWFudWFsLXRlc3RzL3RyYW5zaXRpb24t
ZXZlbnRzLmh0bWwKQEAgLTAsMCArMSw5MCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9X
M0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFsLy9FTiIKKyAgICJodHRwOi8vd3d3LnczLm9y
Zy9UUi9odG1sNC9sb29zZS5kdGQiPgorCis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKyAgPG1l
dGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9
dXRmLTgiPgorICA8dGl0bGU+VHJhbnNpdGlvbiBFdmVudHM8L3RpdGxlPgorICA8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iPgorICAgICNib3gxIHsKKyAgICAgIHBvc2l0aW9u
OiByZWxhdGl2ZTsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIGhlaWdodDogMTAwcHg7Cisg
ICAgICBtYXJnaW46IDEwcHg7CisgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAg
ei1pbmRleDogMDsKKyAgICAgIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogbGVmdDsKKyAg
ICAgIC13ZWJraXQtdHJhbnNpdGlvbi1kdXJhdGlvbjogMnM7CisgICAgICBsZWZ0OiAwcHg7Cisg
ICAgfQorCisgICAgI2JveDIgeworICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgd2lk
dGg6IDEwMHB4OworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIG1hcmdpbjogMTBweDsKKyAg
ICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgIHotaW5kZXg6IDA7CisgICAgICAtd2Vi
a2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7CisgICAgICAtd2Via2l0LXRyYW5zaXRpb24t
ZHVyYXRpb246IDJzOworICAgICAgbGVmdDogMHB4OworICAgIH0KKworICAgICNsb2cgeworICAg
ICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgd2lkdGg6IDkwJTsKKyAgICAgIGhlaWdodDog
MjAwcHg7CisgICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgYm9yZGVyOiAxcHggc29saWQg
YmxhY2s7CisgICAgfQorICA8L3N0eWxlPgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgY2hhcnNldD0idXRmLTgiPgorCisgICAgdmFyIHN3aXRjaDEgPSB0cnVlOworICAgIHZhciBz
d2l0Y2gyID0gZmFsc2U7CisgICAgCisgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignd2Vi
a2l0VHJhbnNpdGlvbkVuZCcsIGZ1bmN0aW9uKGUpIHsKKyAgICAgIHZhciBpZCA9ICIxIjsKKyAg
ICAgIGlmIChzd2l0Y2gxKSB7CisgICAgICAgIGlkID0gIjIiOworICAgICAgfQorICAgICAgdmFy
IG9mZnNldCA9IDIwMDsKKyAgICAgIGlmIChzd2l0Y2gyKSB7CisgICAgICAgIG9mZnNldCA9IDA7
CisgICAgICB9CisgICAgICB2YXIgYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJveCIg
KyBpZCk7CisgICAgICBib3guc3R5bGUubGVmdCA9ICIiICsgb2Zmc2V0ICsgInB4IjsKKyAgICAg
IHN3aXRjaDEgPSAhc3dpdGNoMTsKKyAgICAgIGlmICghc3dpdGNoMSkgc3dpdGNoMiA9ICFzd2l0
Y2gyOworICAgICAgbG9nVHJhbnNpdGlvbihldmVudCk7CisgICAgfSwgZmFsc2UpOworCisgICAg
ZnVuY3Rpb24gZG9DbGljayhvYmopCisgICAgeworICAgICAgdmFyIGJveDEgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiYm94MSIpOworICAgICAgYm94MS5zdHlsZS5sZWZ0ID0gIjIwMHB4IjsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBsb2dUcmFuc2l0aW9uKGV2ZW50KQorICAgIHsKKyAgICAg
IHZhciBsb2cgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7CisgICAgICBsb2cuaW5u
ZXJIVE1MID0gbG9nLmlubmVySFRNTCArICc8YnI+UHJvcGVydHk6ICcgKyBldmVudC5wcm9wZXJ0
eU5hbWUgKyAnIFRpbWU6ICcgKyBldmVudC5lbGFwc2VkVGltZTsKKyAgICB9CisgIDwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+CisgIDxoMj5UcmFuc2l0aW9uIEV2ZW50czwvaDI+CisgIDxwPkNs
aWNrIHRvIHN0YXJ0IHRyYW5zaXRpb25zLiBPbmNlIHN0YXJ0ZWQsIHRyYW5zaXRpb24gZW5kIGV2
ZW50cyBzaG91bGQga2VlcAorICAgIHRoaW5ncyBtb3ZpbmcgZm9yZXZlci48L3A+CisgIDxkaXYg
aWQ9ImNvbnRhaW5lciIgb25jbGljaz0iZG9DbGljayh0aGlzKSI+CisgICAgPGRpdiBpZD0iYm94
MSI+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iYm94MiI+CisgICAgPC9kaXY+CisgIDwvZGl2
PgorCisgIDxkaXYgaWQ9ImxvZyI+CisgICAgCisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGIvV2ViQ29y
ZS9wYWdlL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDM1YmViNTMuLjg0NTAxYzEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9BbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9XZWJD
b3JlL3BhZ2UvQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTc3NSw3ICs3NzUsMTIgQEAgdm9p
ZCBBbmltYXRpb25CYXNlOjphbmltYXRpb25FdmVudERpc3BhdGNoZXJGaXJlZChFbGVtZW50KiBl
bGVtZW50LCBjb25zdCBBdG9taWMKICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgIHJldHVybjsK
IAotICAgIC8vIEZJWE1FOiBBY3R1YWwgZXZlbnQgZGlzcGF0Y2hpbmcgd2lsbCBiZSBkb25lIGhl
cmUKKyAgICBpZiAoZXZlbnRUeXBlID09IEV2ZW50TmFtZXM6OndlYmtpdFRyYW5zaXRpb25FbmRF
dmVudCkgeworICAgICAgICBlbGVtZW50LT5kaXNwYXRjaFdlYktpdFRyYW5zaXRpb25FdmVudChl
dmVudFR5cGUsIG5hbWUsIGVsYXBzZWRUaW1lKTsKKyAgICB9IAorICAgIGVsc2UgeworICAgICAg
ICBlbGVtZW50LT5kaXNwYXRjaFdlYktpdEFuaW1hdGlvbkV2ZW50KGV2ZW50VHlwZSwgbmFtZSwg
ZWxhcHNlZFRpbWUpOworICAgIH0KIAogICAgIGlmIChhbmltRXZlbnRUeXBlID09IEV2ZW50TmFt
ZXM6OndlYmtpdEFuaW1hdGlvbkVuZEV2ZW50KSB7CiAgICAgICAgIGlmIChlbGVtZW50LT5yZW5k
ZXJlcigpKSB7CkBAIC0xODYxLDcgKzE4NjYsMjQgQEAgdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6
b25BbmltYXRpb25FbmQoZG91YmxlIGluRWxhcHNlZFRpbWUpCiAKIGJvb2wgSW1wbGljaXRBbmlt
YXRpb246OnNlbmRUcmFuc2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBpbkV2ZW50VHlw
ZSwgZG91YmxlIGluRWxhcHNlZFRpbWUpCiB7Ci0gICAgLy8gRklYTUU6IGV2ZW50IGRpc3BhdGNo
aW5nIGNvZGUgd2lsbCBnbyBoZXJlCisgICAgaWYgKGluRXZlbnRUeXBlID09IEV2ZW50TmFtZXM6
OndlYmtpdFRyYW5zaXRpb25FbmRFdmVudCkgeworICAgICAgICBEb2N1bWVudDo6TGlzdGVuZXJU
eXBlIGxpc3RlbmVyVHlwZSA9IERvY3VtZW50OjpUUkFOU0lUSU9ORU5EX0xJU1RFTkVSOworICAg
ICAgICAKKyAgICAgICAgaWYgKHNob3VsZFNlbmRFdmVudEZvckxpc3RlbmVyKGxpc3RlbmVyVHlw
ZSkpIHsKKyAgICAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBlbGVtZW50Rm9yRXZlbnREaXNw
YXRjaCgpOworICAgICAgICAgICAgaWYgKGVsZW1lbnQpIHsKKyAgICAgICAgICAgICAgICBTdHJp
bmcgcHJvcGVydHlOYW1lOworICAgICAgICAgICAgICAgIGlmIChtX3Byb3BlcnR5ID09IGNBbmlt
YXRlQWxsKQorICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eU5hbWUgPSBTdHJpbmcoIiIpOwor
ICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlOYW1lID0g
U3RyaW5nKGdldFByb3BlcnR5TmFtZSgoQ1NTUHJvcGVydHlJRCltX3Byb3BlcnR5KSk7CisgICAg
ICAgICAgICAgICAgbV93YWl0aW5nRm9yRW5kRXZlbnQgPSB0cnVlOworICAgICAgICAgICAgICAg
IG1fYW5pbWF0aW9uRXZlbnREaXNwYXRjaGVyLnN0YXJ0VGltZXIoZWxlbWVudCwgcHJvcGVydHlO
YW1lLCBtX3Byb3BlcnR5LCB0cnVlLCBpbkV2ZW50VHlwZSwgaW5FbGFwc2VkVGltZSk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8vIERpZCBkaXNwYXRjaCBhbiBldmVudAorICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgfQorICAgIAogICAgIHJldHVybiBmYWxzZTsgLy8gRGlk
bid0IGRpc3BhdGNoIGFuIGV2ZW50CiB9CiAKQEAgLTIwMTgsOCArMjA0MCwyNCBAQCB2b2lkIEtl
eWZyYW1lQW5pbWF0aW9uOjpvbkFuaW1hdGlvbkVuZChkb3VibGUgaW5FbGFwc2VkVGltZSkKIAog
Ym9vbCBLZXlmcmFtZUFuaW1hdGlvbjo6c2VuZEFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0
cmluZyYgaW5FdmVudFR5cGUsIGRvdWJsZSBpbkVsYXBzZWRUaW1lKQogewotICAgIC8vIEZJWE1F
OiBFdmVudCBkaXNwYXRjaCBnb2VzIGhlcmUKLSAgICByZXR1cm4gZmFsc2U7IC8vIGRpZG4ndCBk
aXNwYXRjaCBhbiBldmVudAorICAgIERvY3VtZW50OjpMaXN0ZW5lclR5cGUgbGlzdGVuZXJUeXBl
OworICAgIGlmIChpbkV2ZW50VHlwZSA9PSBFdmVudE5hbWVzOjp3ZWJraXRBbmltYXRpb25JdGVy
YXRpb25FdmVudCkKKyAgICAgICAgbGlzdGVuZXJUeXBlID0gRG9jdW1lbnQ6OkFOSU1BVElPTklU
RVJBVElPTl9MSVNURU5FUjsKKyAgICBlbHNlIGlmIChpbkV2ZW50VHlwZSA9PSBFdmVudE5hbWVz
Ojp3ZWJraXRBbmltYXRpb25FbmRFdmVudCkKKyAgICAgICAgbGlzdGVuZXJUeXBlID0gRG9jdW1l
bnQ6OkFOSU1BVElPTkVORF9MSVNURU5FUjsKKyAgICBlbHNlCisgICAgICAgIGxpc3RlbmVyVHlw
ZSA9IERvY3VtZW50OjpBTklNQVRJT05TVEFSVF9MSVNURU5FUjsKKyAgICAKKyAgICBpZiAoc2hv
dWxkU2VuZEV2ZW50Rm9yTGlzdGVuZXIobGlzdGVuZXJUeXBlKSkgeworICAgICAgICBFbGVtZW50
KiBlbGVtZW50ID0gZWxlbWVudEZvckV2ZW50RGlzcGF0Y2goKTsKKyAgICAgICAgaWYgKGVsZW1l
bnQpIHsKKyAgICAgICAgICAgIG1fd2FpdGluZ0ZvckVuZEV2ZW50ID0gdHJ1ZTsKKyAgICAgICAg
ICAgIG1fYW5pbWF0aW9uRXZlbnREaXNwYXRjaGVyLnN0YXJ0VGltZXIoZWxlbWVudCwgbV9uYW1l
LCAtMSwgdHJ1ZSwgaW5FdmVudFR5cGUsIGluRWxhcHNlZFRpbWUpOworICAgICAgICAgICAgcmV0
dXJuIHRydWU7IC8vIERpZCBkaXNwYXRjaCBhbiBldmVudAorICAgICAgICB9CisgICAgfQorCisg
ICAgcmV0dXJuIGZhbHNlOyAvLyBEaWQgbm90IGRpc3BhdGNoIGFuIGV2ZW50CiB9CiAKIHZvaWQg
S2V5ZnJhbWVBbmltYXRpb246Om92ZXJyaWRlQW5pbWF0aW9ucygpCg==
</data>
<flag name="review"
          id="10062"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>