<?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>197165</bug_id>
          
          <creation_ts>2019-04-22 10:33:18 -0700</creation_ts>
          <short_desc>Add ENABLE(CONTENT_EXTENSIONS) and namespace ContentExtensions to ResourceLoadInfo.h</short_desc>
          <delta_ts>2019-04-26 10:04:26 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1529288</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-22 10:33:18 -0700</bug_when>
    <thetext>Add ENABLE(CONTENT_EXTENSIONS) and namespace ContentExtensions to ResourceLoadInfo.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529293</commentid>
    <comment_count>1</comment_count>
      <attachid>367948</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-22 10:38:42 -0700</bug_when>
    <thetext>Created attachment 367948
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529297</commentid>
    <comment_count>2</comment_count>
      <attachid>367950</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-22 10:43:10 -0700</bug_when>
    <thetext>Created attachment 367950
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529350</commentid>
    <comment_count>3</comment_count>
      <attachid>367963</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-22 13:06:49 -0700</bug_when>
    <thetext>Created attachment 367963
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529406</commentid>
    <comment_count>4</comment_count>
      <attachid>367963</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-04-22 14:51:04 -0700</bug_when>
    <thetext>Comment on attachment 367963
Patch

Win bot has a compilation issue.

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

&gt; Source/WebCore/loader/PingLoader.cpp:63
&gt; +static inline bool processContentRuleListsForLoad(const Frame&amp;, ResourceRequest&amp;, ContentExtensions::ResourceType)

Looks odd that we have ContentExtensions::ResourceType with #if !ENABLE(CONTENT_EXTENSIONS).
Is it defined in that case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529411</commentid>
    <comment_count>5</comment_count>
      <attachid>367963</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-22 14:58:05 -0700</bug_when>
    <thetext>Comment on attachment 367963
Patch

Windows build failure looks legit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1529452</commentid>
    <comment_count>6</comment_count>
      <attachid>367992</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-22 16:25:25 -0700</bug_when>
    <thetext>Created attachment 367992
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530622</commentid>
    <comment_count>7</comment_count>
      <attachid>368300</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-25 22:20:10 -0700</bug_when>
    <thetext>Created attachment 368300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530633</commentid>
    <comment_count>8</comment_count>
      <attachid>368300</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-25 23:08:26 -0700</bug_when>
    <thetext>Comment on attachment 368300
Patch

Rejecting attachment 368300 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=release&apos;, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 5000 characters of output:
rface-ivars -Wno-arc-repeated-use-of-weak -Wimplicit-retain-self -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-float-conversion -Wnon-literal-null-conversion -Wobjc-literal-conversion -Wno-shorten-64-to-32 -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wdeprecated-implementations -Wno-c++11-extensions -DNDEBUG -DENABLE_3D_TRANSFORMS -DENABLE_APPLE_PAY -DENABLE_APPLE_PAY_SESSION_V3 -DENABLE_APPLICATION_MANIFEST -DENABLE_ATTACHMENT_ELEMENT -DENABLE_AVF_CAPTIONS -DENABLE_CACHE_PARTITIONING -DENABLE_CHANNEL_MESSAGING -DENABLE_CONTENT_FILTERING -DENABLE_CSS_BOX_DECORATION_BREAK -DENABLE_CSS_COMPOSITING -DENABLE_CSS_PAINTING_API -DENABLE_CSS_SCROLL_SNAP -DENABLE_CSS_SELECTORS_LEVEL4 -DENABLE_CSS_TRAILING_WORD -DENABLE_CSS_TYPED_OM -DENABLE_CURSOR_VISIBILITY -DENABLE_DARK_MODE_CSS -DENABLE_DASHBOARD_SUPPORT -DENABLE_DATACUE_VALUE -DENABLE_DATALIST_ELEMENT -DENABLE_EXPERIMENTAL_FEATURES -DENABLE_FILTERS_LEVEL_2 -DENABLE_FTL_JIT -DENABLE_FULLSCREEN_API -DENABLE_GAMEPAD -DENABLE_GEOLOCATION -DENABLE_ICONDATABASE -DENABLE_INDEXED_DATABASE -DENABLE_INDEXED_DATABASE_IN_WORKERS -DENABLE_INPUT_TYPE_COLOR -DENABLE_INTERSECTION_OBSERVER -DENABLE_INTL -DENABLE_KEYBOARD_CODE_ATTRIBUTE -DENABLE_KEYBOARD_KEY_ATTRIBUTE -DENABLE_LAYOUT_FORMATTING_CONTEXT -DENABLE_LEGACY_CSS_VENDOR_PREFIXES -DENABLE_LEGACY_CUSTOM_PROTOCOL_MANAGER -DENABLE_LEGACY_ENCRYPTED_MEDIA -DENABLE_MATHML -DENABLE_MEDIA_CONTROLS_SCRIPT -DENABLE_MEDIA_SOURCE -DENABLE_MEDIA_STREAM -DENABLE_METER_ELEMENT -DENABLE_MOUSE_CURSOR_SCALE -DENABLE_NOTIFICATIONS -DENABLE_PAYMENT_REQUEST -DENABLE_PDFKIT_PLUGIN -DENABLE_POINTER_EVENTS -DENABLE_POINTER_LOCK -DENABLE_PUBLIC_SUFFIX_LIST -DENABLE_REMOTE_INSPECTOR -DENABLE_RESIZE_OBSERVER -DENABLE_RESOURCE_LOAD_STATISTICS -DENABLE_RESOURCE_USAGE -DENABLE_RUBBER_BANDING -DENABLE_SERVICE_CONTROLS -DENABLE_SERVICE_WORKER -DENABLE_SPEECH_SYNTHESIS -DENABLE_STREAMS_API -DENABLE_WEB_CRYPTO -DENABLE_SVG_FONTS -DENABLE_TELEPHONE_NUMBER_DETECTION -DENABLE_TEXT_AUTOSIZING -DENABLE_USER_MESSAGE_HANDLERS -DENABLE_USERSELECT_ALL -DENABLE_VARIATION_FONTS -DENABLE_VIDEO -DENABLE_VIDEO_PRESENTATION_MODE -DENABLE_VIDEO_TRACK -DENABLE_VIDEO_USES_ELEMENT_FULLSCREEN -DENABLE_WEB_AUDIO -DENABLE_WEB_AUTHN -DENABLE_WEB_RTC -DENABLE_WEBGL -DENABLE_WEBGL2 -DENABLE_WEBGPU -DENABLE_WIRELESS_PLAYBACK_TARGET -DENABLE_XSLT -DU_DISABLE_RENAMING=1 -DU_SHOW_CPLUSPLUS_API=0 -DENABLE_DASHBOARD_SUPPORT -DOBJC_OLD_DISPATCH_PROTOTYPES=0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -fasm-blocks -fstrict-aliasing -Wprotocol -Wno-deprecated-declarations -Winvalid-offsetof -mmacosx-version-min=10.13 -g -fvisibility=hidden -Wno-sign-conversion -Winfinite-recursion -Wmove -Wcomma -Wblock-capture-autoreleasing -Wstrict-prototypes -Wrange-loop-analysis -Wno-semicolon-before-method-body -I/Volumes/Data/EWS/WebKit/WebKitBuild/TestWebKitAPI.build/Release/TestWebKitAPILibrary.build/TestWebKitAPI.hmap -I/Volumes/Data/EWS/WebKit/WebKitBuild/Release/include -I/Volumes/Data/EWS/WebKit/WebKitBuild/Release/usr/local/include -I/Volumes/Data/EWS/WebKit/WebKitBuild/Release/WebCore.framework/PrivateHeaders/ForwardingHeaders -I/Volumes/Data/EWS/WebKit/WebKitBuild/Release/WebCoreTestSupport -I/Volumes/Data/EWS/WebKit/WebKitBuild/TestWebKitAPI.build/Release/TestWebKitAPILibrary.build/DerivedSources/x86_64 -I/Volumes/Data/EWS/WebKit/WebKitBuild/TestWebKitAPI.build/Release/TestWebKitAPILibrary.build/DerivedSources -Wall -W -Wno-unused-parameter -F/Volumes/Data/EWS/WebKit/WebKitBuild/Release --system-header-prefix=WebKit/ -iframework /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/PrivateFrameworks -ftemplate-depth=256 -MMD -MT dependencies -MF /Volumes/Data/EWS/WebKit/WebKitBuild/TestWebKitAPI.build/Release/TestWebKitAPILibrary.build/Objects-normal/x86_64/CustomProtocolsTest.d --serialize-diagnostics /Volumes/Data/EWS/WebKit/WebKitBuild/TestWebKitAPI.build/Release/TestWebKitAPILibrary.build/Objects-normal/x86_64/CustomProtocolsTest.dia -c /Volumes/Data/EWS/WebKit/Tools/TestWebKitAPI/Tests/WebKitObjC/CustomProtocolsTest.mm -o /Volumes/Data/EWS/WebKit/WebKitBuild/TestWebKitAPI.build/Release/TestWebKitAPILibrary.build/Objects-normal/x86_64/CustomProtocolsTest.o

** BUILD FAILED **


The following build commands failed:
	CompileC /Volumes/Data/EWS/WebKit/WebKitBuild/TestWebKitAPI.build/Release/TestWebKitAPILibrary.build/Objects-normal/x86_64/ContentExtensions.o Tests/WebCore/ContentExtensions.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)

Full output: https://webkit-queues.webkit.org/results/12002581</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530678</commentid>
    <comment_count>9</comment_count>
      <attachid>368319</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-26 08:53:54 -0700</bug_when>
    <thetext>Created attachment 368319
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530679</commentid>
    <comment_count>10</comment_count>
      <attachid>368319</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-26 08:55:57 -0700</bug_when>
    <thetext>Comment on attachment 368319
Patch

Rejecting attachment 368319 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 368319, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Tools/ChangeLog contains OOPS!.

Full output: https://webkit-queues.webkit.org/results/12005681</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530721</commentid>
    <comment_count>11</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-04-26 10:03:32 -0700</bug_when>
    <thetext>http://trac.webkit.org/r244695</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1530723</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-26 10:04:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/50246456&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367948</attachid>
            <date>2019-04-22 10:38:42 -0700</date>
            <delta_ts>2019-04-22 10:43:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197165-20190422103841.patch</filename>
            <type>text/plain</type>
            <size>18713</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NDUwMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE5LTA0LTIyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIEVOQUJM
RShDT05URU5UX0VYVEVOU0lPTlMpIGFuZCBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgdG8g
UmVzb3VyY2VMb2FkSW5mby5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTcxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuICBUaGlzIHdpbGwganVzdCBtYWtlIGl0
IGhhcmRlciBmb3IgcGVvcGxlIHdvcmtpbmcgb24gdGhlIGxvYWRlciB0byBtaXN0YWtlCisgICAg
ICAgIHRoZXNlIENvbnRlbnRFeHRlbnNpb24gc3BlY2lmaWMgc3RydWN0dXJlcyBmb3Igb3RoZXIg
c3RydWN0dXJlcyBnZW5lcmFsIHRvIGxvYWRpbmcuCisgICAgICAgIE9uZSBzdWNoIG1pc3Rha2Ug
d2FzIG1hZGUgaW4gcjI0NDI0OC4KKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmNv
bm5lY3QpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFj
a2VuZC5oOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVTaGVldENvbnRlbnRzOjpzdWJyZXNvdXJjZXNBbGxvd1JldXNlIGNvbnN0
KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6
TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCk6
CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpsb2FkSW1hZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6UGluZ0xvYWRlcjo6c2VuZFBpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGluZ0xvYWRl
cjo6c2VuZFZpb2xhdGlvblJlcG9ydCk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZElu
Zm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9SZXNvdXJjZVR5cGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6cmVhZFJlc291cmNlVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpyZWFkTG9hZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkSW5mbzo6aXNUaGlyZFBhcnR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZEluZm86OmdldFJlc291cmNlRmxhZ3MgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmg6CisgICAgICAgICogbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjp3aWxsU2Vu
ZFJlcXVlc3RJbnRlcm5hbCk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6Cisg
ICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN1YnJlc291cmNlTG9hZGVyOjpTdWJyZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgorICAgICAgICAqIHBhZ2UvRE9NV2lu
ZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3Blbik6CisgICAgICAgICog
cGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJDb250
ZW50UHJvdmlkZXI6OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCk6CisgICAgICAgIChX
ZWJDb3JlOjpVc2VyQ29udGVudFByb3ZpZGVyOjphY3Rpb25zRm9yUmVzb3VyY2VMb2FkKToKKyAg
ICAgICAgKiBwYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuaDoKKwogMjAxOS0wNC0yMiAgQ29tbWl0
IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjI0NDQ5NS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAJKHJldmlzaW9uIDI0NDQ5OSkK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODksNyArODksNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6
OmNvbm5lY3QoY29uc3QgVVJMCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBp
ZiAoYXV0byogcGFnZSA9IG1fZG9jdW1lbnQtPnBhZ2UoKSkgewogICAgICAgICBpZiAoYXV0byog
ZG9jdW1lbnRMb2FkZXIgPSBtX2RvY3VtZW50LT5sb2FkZXIoKSkgewotICAgICAgICAgICAgYXV0
byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVs
ZUxpc3RzRm9yTG9hZCh1cmwsIFJlc291cmNlVHlwZTo6UmF3LCAqZG9jdW1lbnRMb2FkZXIpOwor
ICAgICAgICAgICAgYXV0byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnBy
b2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCh1cmwsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNv
dXJjZVR5cGU6OlJhdywgKmRvY3VtZW50TG9hZGVyKTsKICAgICAgICAgICAgIGlmIChyZXN1bHRz
LnN1bW1hcnkuYmxvY2tlZExvYWQpIHsKICAgICAgICAgICAgICAgICBSZWY8V2ViU29ja2V0Q2hh
bm5lbD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAgICAgICAgICAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldIHsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRF
eHRlbnNpb25zQmFja2VuZC5oCShyZXZpc2lvbiAyNDQ0OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzgsMTEgKzM4LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERvY3VtZW50
TG9hZGVyOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogCi1zdHJ1Y3QgUmVzb3VyY2VMb2FkSW5m
bzsKLQogbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNpb25zIHsKIAogY2xhc3MgQ29tcGlsZWRDb250
ZW50RXh0ZW5zaW9uOworc3RydWN0IFJlc291cmNlTG9hZEluZm87CiAKIC8vIFRoZSBDb250ZW50
RXh0ZW5zaW9uc0JhY2tlbmQgaXMgdGhlIGludGVybmFsIG1vZGVsIG9mIGFsbCB0aGUgY29udGVu
dCBleHRlbnNpb25zLgogLy8KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29u
dGVudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29u
dGVudHMuY3BwCShyZXZpc2lvbiAyNDQ0OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVT
aGVldENvbnRlbnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEyLDcgKzUxMiw3IEBAIGJvb2wg
U3R5bGVTaGVldENvbnRlbnRzOjpzdWJyZXNvdXJjZXNBbGwKICAgICAgICAgYXV0byogZG9jdW1l
bnRMb2FkZXIgPSBsb2FkZXIuZG9jdW1lbnRMb2FkZXIoKTsKICAgICAgICAgaWYgKHBhZ2UgJiYg
ZG9jdW1lbnRMb2FkZXIpIHsKICAgICAgICAgICAgIGNvbnN0IGF1dG8mIHJlcXVlc3QgPSByZXNv
dXJjZS5yZXNvdXJjZVJlcXVlc3QoKTsKLSAgICAgICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2Ut
PnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQocmVx
dWVzdC51cmwoKSwgdG9SZXNvdXJjZVR5cGUocmVzb3VyY2UudHlwZSgpKSwgKmRvY3VtZW50TG9h
ZGVyKTsKKyAgICAgICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVzZXJDb250ZW50UHJvdmlk
ZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQocmVxdWVzdC51cmwoKSwgQ29udGVu
dEV4dGVuc2lvbnM6OnRvUmVzb3VyY2VUeXBlKHJlc291cmNlLnR5cGUoKSksICpkb2N1bWVudExv
YWRlcik7CiAgICAgICAgICAgICBpZiAocmVzdWx0cy5zdW1tYXJ5LmJsb2NrZWRMb2FkIHx8IHJl
c3VsdHMuc3VtbWFyeS5tYWRlSFRUUFMpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAko
cmV2aXNpb24gMjQ0NDk5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUyMSw3ICsxNTIxLDcgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojpsb2FkUmVzb3VyY2UoY29ucwogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9O
UykKICAgICBpZiAoYXV0byBkb2N1bWVudExvYWRlciA9IG1ha2VSZWZQdHIoZnJhbWUtPmxvYWRl
cigpLmRvY3VtZW50TG9hZGVyKCkpKSB7Ci0gICAgICAgIGlmIChwYWdlLT51c2VyQ29udGVudFBy
b3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKHVybCwgUmVzb3VyY2VUeXBl
OjpNZWRpYSwgKmRvY3VtZW50TG9hZGVyKS5zdW1tYXJ5LmJsb2NrZWRMb2FkKSB7CisgICAgICAg
IGlmIChwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNG
b3JMb2FkKHVybCwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6TWVkaWEsICpkb2N1
bWVudExvYWRlcikuc3VtbWFyeS5ibG9ja2VkTG9hZCkgewogICAgICAgICAgICAgbWVkaWFMb2Fk
aW5nRmFpbGVkKE1lZGlhUGxheWVyOjpGb3JtYXRFcnJvcik7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkocmV2
aXNpb24gMjQ0NDk5KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzA2OCw3ICszMDY4LDcgQEAgdW5zaWduZWQgbG9uZyBGcmFtZUxv
YWRlcjo6bG9hZFJlc291cmNlUwogICAgIGlmIChlcnJvci5pc051bGwoKSkgewogICAgICAgICBp
ZiAoYXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpKSB7CiAgICAgICAgICAgICBpZiAobV9kb2N1
bWVudExvYWRlcikgewotICAgICAgICAgICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVzZXJD
b250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQobmV3UmVxdWVz
dC51cmwoKSwgUmVzb3VyY2VUeXBlOjpSYXcsICptX2RvY3VtZW50TG9hZGVyKTsKKyAgICAgICAg
ICAgICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vz
c0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKG5ld1JlcXVlc3QudXJsKCksIENvbnRlbnRFeHRlbnNp
b25zOjpSZXNvdXJjZVR5cGU6OlJhdywgKm1fZG9jdW1lbnRMb2FkZXIpOwogICAgICAgICAgICAg
ICAgIGJvb2wgYmxvY2tlZExvYWQgPSByZXN1bHRzLnN1bW1hcnkuYmxvY2tlZExvYWQ7CiAgICAg
ICAgICAgICAgICAgQ29udGVudEV4dGVuc2lvbnM6OmFwcGx5UmVzdWx0c1RvUmVxdWVzdChXVEZN
b3ZlKHJlc3VsdHMpLCBwYWdlLCBuZXdSZXF1ZXN0KTsKICAgICAgICAgICAgICAgICBpZiAoYmxv
Y2tlZExvYWQpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0
cmVhbUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNj
YXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcAkocmV2aXNpb24gMjQ0NDk5KQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjAsNyArNjAsNyBAQCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6TmV0c2NhcGVQ
bHVnCiAgICAgLCBtX2NsaWVudCgmY2xpZW50KQogewogI2lmIEVOQUJMRShDT05URU5UX0VYVEVO
U0lPTlMpCi0gICAgbV9yZXNvdXJjZVR5cGUgPSBSZXNvdXJjZVR5cGU6OlBsdWdJblN0cmVhbTsK
KyAgICBtX3Jlc291cmNlVHlwZSA9IENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OlBs
dWdJblN0cmVhbTsKICNlbmRpZgogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGlu
Z0xvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2Fk
ZXIuY3BwCShyZXZpc2lvbiAyNDQ0OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xv
YWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogI2lmICFFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogCiAvLyBSZXR1cm5zIHRydWUg
aWYgd2Ugc2hvdWxkIGJsb2NrIHRoZSBsb2FkLgotc3RhdGljIGlubGluZSBib29sIHByb2Nlc3ND
b250ZW50UnVsZUxpc3RzRm9yTG9hZChjb25zdCBGcmFtZSYsIFJlc291cmNlUmVxdWVzdCYsIFJl
c291cmNlVHlwZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0Zv
ckxvYWQoY29uc3QgRnJhbWUmLCBSZXNvdXJjZVJlcXVlc3QmLCBDb250ZW50RXh0ZW5zaW9uczo6
UmVzb3VyY2VUeXBlKQogewogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTY4LDcgKzY4LDcgQEAg
c3RhdGljIGlubGluZSBib29sIHByb2Nlc3NDb250ZW50UnVsZUxpcwogI2Vsc2UKIAogLy8gUmV0
dXJucyB0cnVlIGlmIHdlIHNob3VsZCBibG9jayB0aGUgbG9hZC4KLXN0YXRpYyBib29sIHByb2Nl
c3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChjb25zdCBGcmFtZSYgZnJhbWUsIFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZSkKK3N0YXRpYyBib29sIHBy
b2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChjb25zdCBGcmFtZSYgZnJhbWUsIFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZSByZXNvdXJj
ZVR5cGUpCiB7CiAgICAgYXV0byogZG9jdW1lbnRMb2FkZXIgPSBmcmFtZS5sb2FkZXIoKS5kb2N1
bWVudExvYWRlcigpOwogICAgIGlmICghZG9jdW1lbnRMb2FkZXIpCkBAIC05NSw3ICs5NSw3IEBA
IHZvaWQgUGluZ0xvYWRlcjo6bG9hZEltYWdlKEZyYW1lJiBmcmFtZSwKICAgICB9CiAKICAgICBS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwotICAgIGlmIChwcm9jZXNzQ29udGVudFJ1bGVM
aXN0c0ZvckxvYWQoZnJhbWUsIHJlcXVlc3QsIFJlc291cmNlVHlwZTo6SW1hZ2UpKQorICAgIGlm
IChwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoZnJhbWUsIHJlcXVlc3QsIENvbnRlbnRF
eHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OkltYWdlKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
ZG9jdW1lbnQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPnVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJ
Zk5lZWRlZChyZXF1ZXN0LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5
cGU6OkxvYWQpOwpAQCAtMTIxLDcgKzEyMSw3IEBAIHZvaWQgUGluZ0xvYWRlcjo6c2VuZFBpbmco
RnJhbWUmIGZyYW1lLCAKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QocGluZ1VSTCk7Ci0gICAgaWYgKHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChm
cmFtZSwgcmVxdWVzdCwgUmVzb3VyY2VUeXBlOjpSYXcpKQorICAgIGlmIChwcm9jZXNzQ29udGVu
dFJ1bGVMaXN0c0ZvckxvYWQoZnJhbWUsIHJlcXVlc3QsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNv
dXJjZVR5cGU6OlJhdykpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8mIGRvY3VtZW50ID0g
KmZyYW1lLmRvY3VtZW50KCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBQaW5nTG9hZGVyOjpz
ZW5kVmlvbGF0aW9uUmVwb3J0KEZyYQogICAgIEFTU0VSVChmcmFtZS5kb2N1bWVudCgpKTsKIAog
ICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHJlcG9ydFVSTCk7Ci0gICAgaWYgKHByb2Nlc3ND
b250ZW50UnVsZUxpc3RzRm9yTG9hZChmcmFtZSwgcmVxdWVzdCwgUmVzb3VyY2VUeXBlOjpSYXcp
KQorICAgIGlmIChwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoZnJhbWUsIHJlcXVlc3Qs
IENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OlJhdykpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGF1dG8mIGRvY3VtZW50ID0gKmZyYW1lLmRvY3VtZW50KCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZEluZm8uY3BwCShyZXZpc2lvbiAyNDQ0OTkpCisr
KyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgewogCiBSZXNvdXJj
ZVR5cGUgdG9SZXNvdXJjZVR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSkKIHsKQEAgLTEy
Nyw0ICsxMjgsNSBAQCBSZXNvdXJjZUZsYWdzIFJlc291cmNlTG9hZEluZm86OmdldFJlc291CiAg
ICAgcmV0dXJuIGZsYWdzOwogfQogCit9IC8vIG5hbWVzcGFjZSBDb250ZW50RXh0ZW5zaW9ucwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkSW5mby5oCShyZXZpc2lvbiAyNDQ0OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxMCArMjUsMTMgQEAKIAog
I3ByYWdtYSBvbmNlCiAKKyNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQorCiAjaW5jbHVk
ZSAiQ2FjaGVkUmVzb3VyY2UuaCIKICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKK25hbWVzcGFjZSBDb250ZW50RXh0ZW5zaW9ucyB7CiAKIGVudW0gY2xhc3MgUmVz
b3VyY2VUeXBlIDogdWludDE2X3QgewogICAgIEludmFsaWQgPSAweDAwMDAsCkBAIC03Nyw0ICs4
MCw3IEBAIHN0cnVjdCBSZXNvdXJjZUxvYWRJbmZvIHsKICAgICBSZXNvdXJjZUZsYWdzIGdldFJl
c291cmNlRmxhZ3MoKSBjb25zdDsKIH07CiAKK30gLy8gbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNp
b25zCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgpJbmRleDogU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAyNDQ0OTkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNDIs
NyArMzQyLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0SW50ZQogCiAg
ICAgQVNTRVJUKCFtX3JlYWNoZWRUZXJtaW5hbFN0YXRlKTsKICNpZiBFTkFCTEUoQ09OVEVOVF9F
WFRFTlNJT05TKQotICAgIEFTU0VSVChtX3Jlc291cmNlVHlwZSAhPSBSZXNvdXJjZVR5cGU6Oklu
dmFsaWQpOworICAgIEFTU0VSVChtX3Jlc291cmNlVHlwZSAhPSBDb250ZW50RXh0ZW5zaW9uczo6
UmVzb3VyY2VUeXBlOjpJbnZhbGlkKTsKICNlbmRpZgogCiAgICAgLy8gV2UgbmVlZCBhIHJlc291
cmNlIGlkZW50aWZpZXIgZm9yIGFsbCByZXF1ZXN0cywgZXZlbiBpZiBGcmFtZUxvYWRlciBpcyBu
ZXZlciBnb2luZyB0byBzZWUgaXQgKHN1Y2ggYXMgd2l0aCBDT1JTIHByZWZsaWdodCByZXF1ZXN0
cykuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkocmV2aXNpb24g
MjQ0NDk5KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI0NCw3ICsyNDQsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKENPTlRF
TlRfRVhURU5TSU9OUykKIHByb3RlY3RlZDoKLSAgICBSZXNvdXJjZVR5cGUgbV9yZXNvdXJjZVR5
cGUgeyBSZXNvdXJjZVR5cGU6OkludmFsaWQgfTsKKyAgICBDb250ZW50RXh0ZW5zaW9uczo6UmVz
b3VyY2VUeXBlIG1fcmVzb3VyY2VUeXBlIHsgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlw
ZTo6SW52YWxpZCB9OwogI2VuZGlmCiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
U3VicmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9TdWJyZXNvdXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDI0NDQ5OSkKKysrIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk4LDcg
Kzk4LDcgQEAgU3VicmVzb3VyY2VMb2FkZXI6OlN1YnJlc291cmNlTG9hZGVyKEZyYQogICAgIHN1
YnJlc291cmNlTG9hZGVyQ291bnRlci5pbmNyZW1lbnQoKTsKICNlbmRpZgogI2lmIEVOQUJMRShD
T05URU5UX0VYVEVOU0lPTlMpCi0gICAgbV9yZXNvdXJjZVR5cGUgPSB0b1Jlc291cmNlVHlwZShy
ZXNvdXJjZS50eXBlKCkpOworICAgIG1fcmVzb3VyY2VUeXBlID0gQ29udGVudEV4dGVuc2lvbnM6
OnRvUmVzb3VyY2VUeXBlKHJlc291cmNlLnR5cGUoKSk7CiAjZW5kaWYKICAgICBtX2NhbkNyb3Nz
T3JpZ2luUmVxdWVzdHNBc2tVc2VyRm9yQ3JlZGVudGlhbHMgPSByZXNvdXJjZS50eXBlKCkgPT0g
Q2FjaGVkUmVzb3VyY2U6OlR5cGU6Ok1haW5SZXNvdXJjZSB8fCBmcmFtZS5zZXR0aW5ncygpLmFs
bG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzKCk7CiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxv
YWRlci5jcHAJKHJldmlzaW9uIDI0NDQ5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwOSw3ICs4MDks
NyBAQCBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjCiAgICAgaWYgKGZy
YW1lKCkgJiYgZnJhbWUoKS0+cGFnZSgpICYmIG1fZG9jdW1lbnRMb2FkZXIpIHsKICAgICAgICAg
Y29uc3QgYXV0byYgcmVzb3VyY2VSZXF1ZXN0ID0gcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKTsK
ICAgICAgICAgYXV0byogcGFnZSA9IGZyYW1lKCktPnBhZ2UoKTsKLSAgICAgICAgYXV0byByZXN1
bHRzID0gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3Rz
Rm9yTG9hZChyZXNvdXJjZVJlcXVlc3QudXJsKCksIHRvUmVzb3VyY2VUeXBlKHR5cGUpLCAqbV9k
b2N1bWVudExvYWRlcik7CisgICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVzZXJDb250ZW50
UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQocmVzb3VyY2VSZXF1ZXN0
LnVybCgpLCBDb250ZW50RXh0ZW5zaW9uczo6dG9SZXNvdXJjZVR5cGUodHlwZSksICptX2RvY3Vt
ZW50TG9hZGVyKTsKICAgICAgICAgYm9vbCBibG9ja2VkTG9hZCA9IHJlc3VsdHMuc3VtbWFyeS5i
bG9ja2VkTG9hZDsKICAgICAgICAgYm9vbCBtYWRlSFRUUFMgPSByZXN1bHRzLnN1bW1hcnkubWFk
ZUhUVFBTOwogICAgICAgICByZXF1ZXN0LmFwcGx5UmVzdWx0cyhXVEZNb3ZlKHJlc3VsdHMpLCBw
YWdlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDI0NDQ5OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjM1Nyw3ICsyMzU3LDcgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPFdpbmRvd1Byb3h5Pj4gRE9NV2lu
ZAogICAgICAgICAmJiBmaXJzdEZyYW1lLT5wYWdlKCkKICAgICAgICAgJiYgZmlyc3RGcmFtZS0+
bWFpbkZyYW1lKCkuZG9jdW1lbnQoKQogICAgICAgICAmJiBmaXJzdEZyYW1lLT5tYWluRnJhbWUo
KS5kb2N1bWVudCgpLT5sb2FkZXIoKSkgewotICAgICAgICBhdXRvIHJlc3VsdHMgPSBmaXJzdEZy
YW1lLT5wYWdlKCktPnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0
c0ZvckxvYWQoZmlyc3RGcmFtZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsU3RyaW5nKSwg
UmVzb3VyY2VUeXBlOjpQb3B1cCwgKmZpcnN0RnJhbWUtPm1haW5GcmFtZSgpLmRvY3VtZW50KCkt
PmxvYWRlcigpKTsKKyAgICAgICAgYXV0byByZXN1bHRzID0gZmlyc3RGcmFtZS0+cGFnZSgpLT51
c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKGZpcnN0
RnJhbWUtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybFN0cmluZyksIENvbnRlbnRFeHRlbnNp
b25zOjpSZXNvdXJjZVR5cGU6OlBvcHVwLCAqZmlyc3RGcmFtZS0+bWFpbkZyYW1lKCkuZG9jdW1l
bnQoKS0+bG9hZGVyKCkpOwogICAgICAgICBpZiAocmVzdWx0cy5zdW1tYXJ5LmJsb2NrZWRMb2Fk
KQogICAgICAgICAgICAgcmV0dXJuIFJlZlB0cjxXaW5kb3dQcm94eT4geyBudWxscHRyIH07CiAg
ICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuY3Bw
CShyZXZpc2lvbiAyNDQ0OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50UHJv
dmlkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIGJvb2wg
Y29udGVudEV4dGVuc2lvbnNFbmFibGVkKGNvbgogICAgIHJldHVybiB0cnVlOwogfQogICAgIAot
Q29udGVudFJ1bGVMaXN0UmVzdWx0cyBVc2VyQ29udGVudFByb3ZpZGVyOjpwcm9jZXNzQ29udGVu
dFJ1bGVMaXN0c0ZvckxvYWQoY29uc3QgVVJMJiB1cmwsIFJlc291cmNlVHlwZSByZXNvdXJjZVR5
cGUsIERvY3VtZW50TG9hZGVyJiBpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIpCitDb250ZW50UnVs
ZUxpc3RSZXN1bHRzIFVzZXJDb250ZW50UHJvdmlkZXI6OnByb2Nlc3NDb250ZW50UnVsZUxpc3Rz
Rm9yTG9hZChjb25zdCBVUkwmIHVybCwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZSBy
ZXNvdXJjZVR5cGUsIERvY3VtZW50TG9hZGVyJiBpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIpCiB7
CiAgICAgaWYgKCFjb250ZW50RXh0ZW5zaW9uc0VuYWJsZWQoaW5pdGlhdGluZ0RvY3VtZW50TG9h
ZGVyKSkKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTExMCw3ICsxMTAsNyBAQCBDb250ZW50UnVs
ZUxpc3RSZXN1bHRzIFVzZXJDb250ZW50UHJvdmlkCiAgICAgcmV0dXJuIHVzZXJDb250ZW50RXh0
ZW5zaW9uQmFja2VuZCgpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCh1cmwsIHJlc291
cmNlVHlwZSwgaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKTsKIH0KIAotVmVjdG9yPENvbnRlbnRF
eHRlbnNpb25zOjpBY3Rpb25zRnJvbUNvbnRlbnRSdWxlTGlzdD4gVXNlckNvbnRlbnRQcm92aWRl
cjo6YWN0aW9uc0ZvclJlc291cmNlTG9hZChjb25zdCBSZXNvdXJjZUxvYWRJbmZvJiByZXNvdXJj
ZUxvYWRJbmZvLCBEb2N1bWVudExvYWRlciYgaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKQorVmVj
dG9yPENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25zRnJvbUNvbnRlbnRSdWxlTGlzdD4gVXNlckNv
bnRlbnRQcm92aWRlcjo6YWN0aW9uc0ZvclJlc291cmNlTG9hZChjb25zdCBDb250ZW50RXh0ZW5z
aW9uczo6UmVzb3VyY2VMb2FkSW5mbyYgcmVzb3VyY2VMb2FkSW5mbywgRG9jdW1lbnRMb2FkZXIm
IGluaXRpYXRpbmdEb2N1bWVudExvYWRlcikKIHsKICAgICBpZiAoIWNvbnRlbnRFeHRlbnNpb25z
RW5hYmxlZChpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIpKQogICAgICAgICByZXR1cm4geyB9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmgJKHJldmlzaW9u
IDI0NDQ5OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5oCSh3
b3JraW5nIGNvcHkpCkBAIC00NiwxNCArNDYsMTMgQEAgY2xhc3MgVXNlck1lc3NhZ2VIYW5kbGVy
RGVzY3JpcHRvcjsKIGNsYXNzIFVzZXJTY3JpcHQ7CiBjbGFzcyBVc2VyU3R5bGVTaGVldDsKIAot
ZW51bSBjbGFzcyBSZXNvdXJjZVR5cGUgOiB1aW50MTZfdDsKLQotc3RydWN0IFJlc291cmNlTG9h
ZEluZm87Ci0KKyNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogbmFtZXNwYWNlIENvbnRl
bnRFeHRlbnNpb25zIHsKIGNsYXNzIENvbnRlbnRFeHRlbnNpb25zQmFja2VuZDsKLXN0cnVjdCBB
Y3Rpb247CitlbnVtIGNsYXNzIFJlc291cmNlVHlwZSA6IHVpbnQxNl90Oworc3RydWN0IFJlc291
cmNlTG9hZEluZm87CiB9CisjZW5kaWYKIAogY2xhc3MgVXNlckNvbnRlbnRQcm92aWRlcjsKIApA
QCAtODksOCArODgsOCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykK
ICAgICAvLyBGSVhNRTogVGhlc2UgZG9uJ3QgcmVhbGx5IGJlbG9uZyBoZXJlLiBUaGV5IHNob3Vs
ZCBwcm9iYWJseSBidW5kbGVkIHVwIGluIHRoZSBDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQKICAg
ICAvLyB3aGljaCBzaG91bGQgYWx3YXlzIGV4aXN0LgotICAgIENvbnRlbnRSdWxlTGlzdFJlc3Vs
dHMgcHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKGNvbnN0IFVSTCYsIFJlc291cmNlVHlw
ZSwgRG9jdW1lbnRMb2FkZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcik7Ci0gICAgVmVjdG9y
PENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25zRnJvbUNvbnRlbnRSdWxlTGlzdD4gYWN0aW9uc0Zv
clJlc291cmNlTG9hZChjb25zdCBSZXNvdXJjZUxvYWRJbmZvJiwgRG9jdW1lbnRMb2FkZXImIGlu
aXRpYXRpbmdEb2N1bWVudExvYWRlcik7CisgICAgQ29udGVudFJ1bGVMaXN0UmVzdWx0cyBwcm9j
ZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoY29uc3QgVVJMJiwgQ29udGVudEV4dGVuc2lvbnM6
OlJlc291cmNlVHlwZSwgRG9jdW1lbnRMb2FkZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcik7
CisgICAgVmVjdG9yPENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25zRnJvbUNvbnRlbnRSdWxlTGlz
dD4gYWN0aW9uc0ZvclJlc291cmNlTG9hZChjb25zdCBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3Vy
Y2VMb2FkSW5mbyYsIERvY3VtZW50TG9hZGVyJiBpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZm9yRWFjaENvbnRlbnRFeHRlbnNpb24oY29uc3QgRnVu
Y3Rpb248dm9pZChjb25zdCBTdHJpbmcmLCBDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVu
c2lvbiYpPiYsIERvY3VtZW50TG9hZGVyJiBpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIpOwogI2Vu
ZGlmCiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDI0NDUwMSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEyIEBACisyMDE5LTA0LTIyICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMp
IGFuZCBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgdG8gUmVzb3VyY2VMb2FkSW5mby5oCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTcxNjUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHA6CisKIDIwMTktMDQtMjIg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJF
R1JFU1NJT04ocjI0MTI4OSk6IFtHVEtdIGFjY2Vzc2liaWxpdHkvcmVtb3ZlZC1jb250aW51YXRp
b24tZWxlbWVudC1jYXVzZXMtY3Jhc2guaHRtbCBhbmQgYWNjZXNzaWJpbGl0eS9yZW1vdmVkLWFu
b255bW91cy1ibG9jay1jaGlsZC1jYXVzZXMtY3Jhc2guaHRtbCBjcmFzaGVzCkluZGV4OiBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5z
aW9ucy5jcHAJKHJldmlzaW9uIDI0NDQ5OSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3LDkgKzY3
LDkgQEAgaW5saW5lIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdAogfQogfQogCi11
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTo6Q29udGVudEV4
dGVuc2lvbnM7CiAKIGNsYXNzIENvbnRlbnRFeHRlbnNpb25UZXN0IDogcHVibGljIHRlc3Rpbmc6
OlRlc3QgewogcHVibGljOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367950</attachid>
            <date>2019-04-22 10:43:10 -0700</date>
            <delta_ts>2019-04-22 13:06:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197165-20190422104309.patch</filename>
            <type>text/plain</type>
            <size>18826</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NDUwMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE5LTA0LTIyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIEVOQUJM
RShDT05URU5UX0VYVEVOU0lPTlMpIGFuZCBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgdG8g
UmVzb3VyY2VMb2FkSW5mby5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTcxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuICBUaGlzIHdpbGwganVzdCBtYWtlIGl0
IGhhcmRlciBmb3IgcGVvcGxlIHdvcmtpbmcgb24gdGhlIGxvYWRlciB0byBtaXN0YWtlCisgICAg
ICAgIHRoZXNlIENvbnRlbnRFeHRlbnNpb24gc3BlY2lmaWMgc3RydWN0dXJlcyBmb3Igb3RoZXIg
c3RydWN0dXJlcyBnZW5lcmFsIHRvIGxvYWRpbmcuCisgICAgICAgIE9uZSBzdWNoIG1pc3Rha2Ug
d2FzIG1hZGUgaW4gcjI0NDI0OC4KKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmNv
bm5lY3QpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFj
a2VuZC5oOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVTaGVldENvbnRlbnRzOjpzdWJyZXNvdXJjZXNBbGxvd1JldXNlIGNvbnN0
KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6
TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCk6
CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpsb2FkSW1hZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6UGluZ0xvYWRlcjo6c2VuZFBpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGluZ0xvYWRl
cjo6c2VuZFZpb2xhdGlvblJlcG9ydCk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZElu
Zm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9SZXNvdXJjZVR5cGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6cmVhZFJlc291cmNlVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpyZWFkTG9hZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkSW5mbzo6aXNUaGlyZFBhcnR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZEluZm86OmdldFJlc291cmNlRmxhZ3MgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmg6CisgICAgICAgICogbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjp3aWxsU2Vu
ZFJlcXVlc3RJbnRlcm5hbCk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6Cisg
ICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN1YnJlc291cmNlTG9hZGVyOjpTdWJyZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgorICAgICAgICAqIHBhZ2UvRE9NV2lu
ZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3Blbik6CisgICAgICAgICog
cGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJDb250
ZW50UHJvdmlkZXI6OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCk6CisgICAgICAgIChX
ZWJDb3JlOjpVc2VyQ29udGVudFByb3ZpZGVyOjphY3Rpb25zRm9yUmVzb3VyY2VMb2FkKToKKyAg
ICAgICAgKiBwYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuaDoKKwogMjAxOS0wNC0yMiAgQ29tbWl0
IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjI0NDQ5NS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAJKHJldmlzaW9uIDI0NDQ5OSkK
KysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtODksNyArODksNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6
OmNvbm5lY3QoY29uc3QgVVJMCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBp
ZiAoYXV0byogcGFnZSA9IG1fZG9jdW1lbnQtPnBhZ2UoKSkgewogICAgICAgICBpZiAoYXV0byog
ZG9jdW1lbnRMb2FkZXIgPSBtX2RvY3VtZW50LT5sb2FkZXIoKSkgewotICAgICAgICAgICAgYXV0
byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVs
ZUxpc3RzRm9yTG9hZCh1cmwsIFJlc291cmNlVHlwZTo6UmF3LCAqZG9jdW1lbnRMb2FkZXIpOwor
ICAgICAgICAgICAgYXV0byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnBy
b2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCh1cmwsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNv
dXJjZVR5cGU6OlJhdywgKmRvY3VtZW50TG9hZGVyKTsKICAgICAgICAgICAgIGlmIChyZXN1bHRz
LnN1bW1hcnkuYmxvY2tlZExvYWQpIHsKICAgICAgICAgICAgICAgICBSZWY8V2ViU29ja2V0Q2hh
bm5lbD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAgICAgICAgICAgICAgICAgY2FsbE9uTWFpblRo
cmVhZChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldIHsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRF
eHRlbnNpb25zQmFja2VuZC5oCShyZXZpc2lvbiAyNDQ0OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzgsMTEgKzM4LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERvY3VtZW50
TG9hZGVyOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogCi1zdHJ1Y3QgUmVzb3VyY2VMb2FkSW5m
bzsKLQogbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNpb25zIHsKIAogY2xhc3MgQ29tcGlsZWRDb250
ZW50RXh0ZW5zaW9uOworc3RydWN0IFJlc291cmNlTG9hZEluZm87CiAKIC8vIFRoZSBDb250ZW50
RXh0ZW5zaW9uc0JhY2tlbmQgaXMgdGhlIGludGVybmFsIG1vZGVsIG9mIGFsbCB0aGUgY29udGVu
dCBleHRlbnNpb25zLgogLy8KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29u
dGVudHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29u
dGVudHMuY3BwCShyZXZpc2lvbiAyNDQ0OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVT
aGVldENvbnRlbnRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEyLDcgKzUxMiw3IEBAIGJvb2wg
U3R5bGVTaGVldENvbnRlbnRzOjpzdWJyZXNvdXJjZXNBbGwKICAgICAgICAgYXV0byogZG9jdW1l
bnRMb2FkZXIgPSBsb2FkZXIuZG9jdW1lbnRMb2FkZXIoKTsKICAgICAgICAgaWYgKHBhZ2UgJiYg
ZG9jdW1lbnRMb2FkZXIpIHsKICAgICAgICAgICAgIGNvbnN0IGF1dG8mIHJlcXVlc3QgPSByZXNv
dXJjZS5yZXNvdXJjZVJlcXVlc3QoKTsKLSAgICAgICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2Ut
PnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQocmVx
dWVzdC51cmwoKSwgdG9SZXNvdXJjZVR5cGUocmVzb3VyY2UudHlwZSgpKSwgKmRvY3VtZW50TG9h
ZGVyKTsKKyAgICAgICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVzZXJDb250ZW50UHJvdmlk
ZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQocmVxdWVzdC51cmwoKSwgQ29udGVu
dEV4dGVuc2lvbnM6OnRvUmVzb3VyY2VUeXBlKHJlc291cmNlLnR5cGUoKSksICpkb2N1bWVudExv
YWRlcik7CiAgICAgICAgICAgICBpZiAocmVzdWx0cy5zdW1tYXJ5LmJsb2NrZWRMb2FkIHx8IHJl
c3VsdHMuc3VtbWFyeS5tYWRlSFRUUFMpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAko
cmV2aXNpb24gMjQ0NDk5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUyMSw3ICsxNTIxLDcgQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50Ojpsb2FkUmVzb3VyY2UoY29ucwogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9O
UykKICAgICBpZiAoYXV0byBkb2N1bWVudExvYWRlciA9IG1ha2VSZWZQdHIoZnJhbWUtPmxvYWRl
cigpLmRvY3VtZW50TG9hZGVyKCkpKSB7Ci0gICAgICAgIGlmIChwYWdlLT51c2VyQ29udGVudFBy
b3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKHVybCwgUmVzb3VyY2VUeXBl
OjpNZWRpYSwgKmRvY3VtZW50TG9hZGVyKS5zdW1tYXJ5LmJsb2NrZWRMb2FkKSB7CisgICAgICAg
IGlmIChwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNG
b3JMb2FkKHVybCwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6TWVkaWEsICpkb2N1
bWVudExvYWRlcikuc3VtbWFyeS5ibG9ja2VkTG9hZCkgewogICAgICAgICAgICAgbWVkaWFMb2Fk
aW5nRmFpbGVkKE1lZGlhUGxheWVyOjpGb3JtYXRFcnJvcik7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkocmV2
aXNpb24gMjQ0NDk5KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzA2OCw3ICszMDY4LDcgQEAgdW5zaWduZWQgbG9uZyBGcmFtZUxv
YWRlcjo6bG9hZFJlc291cmNlUwogICAgIGlmIChlcnJvci5pc051bGwoKSkgewogICAgICAgICBp
ZiAoYXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpKSB7CiAgICAgICAgICAgICBpZiAobV9kb2N1
bWVudExvYWRlcikgewotICAgICAgICAgICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVzZXJD
b250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQobmV3UmVxdWVz
dC51cmwoKSwgUmVzb3VyY2VUeXBlOjpSYXcsICptX2RvY3VtZW50TG9hZGVyKTsKKyAgICAgICAg
ICAgICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vz
c0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKG5ld1JlcXVlc3QudXJsKCksIENvbnRlbnRFeHRlbnNp
b25zOjpSZXNvdXJjZVR5cGU6OlJhdywgKm1fZG9jdW1lbnRMb2FkZXIpOwogICAgICAgICAgICAg
ICAgIGJvb2wgYmxvY2tlZExvYWQgPSByZXN1bHRzLnN1bW1hcnkuYmxvY2tlZExvYWQ7CiAgICAg
ICAgICAgICAgICAgQ29udGVudEV4dGVuc2lvbnM6OmFwcGx5UmVzdWx0c1RvUmVxdWVzdChXVEZN
b3ZlKHJlc3VsdHMpLCBwYWdlLCBuZXdSZXF1ZXN0KTsKICAgICAgICAgICAgICAgICBpZiAoYmxv
Y2tlZExvYWQpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0
cmVhbUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNj
YXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcAkocmV2aXNpb24gMjQ0NDk5KQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjAsNyArNjAsNyBAQCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6TmV0c2NhcGVQ
bHVnCiAgICAgLCBtX2NsaWVudCgmY2xpZW50KQogewogI2lmIEVOQUJMRShDT05URU5UX0VYVEVO
U0lPTlMpCi0gICAgbV9yZXNvdXJjZVR5cGUgPSBSZXNvdXJjZVR5cGU6OlBsdWdJblN0cmVhbTsK
KyAgICBtX3Jlc291cmNlVHlwZSA9IENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OlBs
dWdJblN0cmVhbTsKICNlbmRpZgogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGlu
Z0xvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2Fk
ZXIuY3BwCShyZXZpc2lvbiAyNDQ0OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xv
YWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogI2lmICFFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogCiAvLyBSZXR1cm5zIHRydWUg
aWYgd2Ugc2hvdWxkIGJsb2NrIHRoZSBsb2FkLgotc3RhdGljIGlubGluZSBib29sIHByb2Nlc3ND
b250ZW50UnVsZUxpc3RzRm9yTG9hZChjb25zdCBGcmFtZSYsIFJlc291cmNlUmVxdWVzdCYsIFJl
c291cmNlVHlwZSkKK3N0YXRpYyBpbmxpbmUgYm9vbCBwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0Zv
ckxvYWQoY29uc3QgRnJhbWUmLCBSZXNvdXJjZVJlcXVlc3QmLCBDb250ZW50RXh0ZW5zaW9uczo6
UmVzb3VyY2VUeXBlKQogewogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTY4LDcgKzY4LDcgQEAg
c3RhdGljIGlubGluZSBib29sIHByb2Nlc3NDb250ZW50UnVsZUxpcwogI2Vsc2UKIAogLy8gUmV0
dXJucyB0cnVlIGlmIHdlIHNob3VsZCBibG9jayB0aGUgbG9hZC4KLXN0YXRpYyBib29sIHByb2Nl
c3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChjb25zdCBGcmFtZSYgZnJhbWUsIFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZSkKK3N0YXRpYyBib29sIHBy
b2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChjb25zdCBGcmFtZSYgZnJhbWUsIFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZSByZXNvdXJj
ZVR5cGUpCiB7CiAgICAgYXV0byogZG9jdW1lbnRMb2FkZXIgPSBmcmFtZS5sb2FkZXIoKS5kb2N1
bWVudExvYWRlcigpOwogICAgIGlmICghZG9jdW1lbnRMb2FkZXIpCkBAIC05NSw3ICs5NSw3IEBA
IHZvaWQgUGluZ0xvYWRlcjo6bG9hZEltYWdlKEZyYW1lJiBmcmFtZSwKICAgICB9CiAKICAgICBS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwotICAgIGlmIChwcm9jZXNzQ29udGVudFJ1bGVM
aXN0c0ZvckxvYWQoZnJhbWUsIHJlcXVlc3QsIFJlc291cmNlVHlwZTo6SW1hZ2UpKQorICAgIGlm
IChwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoZnJhbWUsIHJlcXVlc3QsIENvbnRlbnRF
eHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OkltYWdlKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
ZG9jdW1lbnQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPnVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJ
Zk5lZWRlZChyZXF1ZXN0LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5
cGU6OkxvYWQpOwpAQCAtMTIxLDcgKzEyMSw3IEBAIHZvaWQgUGluZ0xvYWRlcjo6c2VuZFBpbmco
RnJhbWUmIGZyYW1lLCAKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QocGluZ1VSTCk7Ci0gICAgaWYgKHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChm
cmFtZSwgcmVxdWVzdCwgUmVzb3VyY2VUeXBlOjpSYXcpKQorICAgIGlmIChwcm9jZXNzQ29udGVu
dFJ1bGVMaXN0c0ZvckxvYWQoZnJhbWUsIHJlcXVlc3QsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNv
dXJjZVR5cGU6OlJhdykpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8mIGRvY3VtZW50ID0g
KmZyYW1lLmRvY3VtZW50KCk7CkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBQaW5nTG9hZGVyOjpz
ZW5kVmlvbGF0aW9uUmVwb3J0KEZyYQogICAgIEFTU0VSVChmcmFtZS5kb2N1bWVudCgpKTsKIAog
ICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHJlcG9ydFVSTCk7Ci0gICAgaWYgKHByb2Nlc3ND
b250ZW50UnVsZUxpc3RzRm9yTG9hZChmcmFtZSwgcmVxdWVzdCwgUmVzb3VyY2VUeXBlOjpSYXcp
KQorICAgIGlmIChwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoZnJhbWUsIHJlcXVlc3Qs
IENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OlJhdykpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGF1dG8mIGRvY3VtZW50ID0gKmZyYW1lLmRvY3VtZW50KCk7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZEluZm8uY3BwCShyZXZpc2lvbiAyNDQ0OTkpCisr
KyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDcgKzI5LDEwIEBACiAjaW5jbHVkZSAiQ29udGVudEV4dGVuc2lvbkFjdGlvbnMu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCisjaWYgRU5BQkxFKENPTlRFTlRfRVhU
RU5TSU9OUykKKwogbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNp
b25zIHsKIAogUmVzb3VyY2VUeXBlIHRvUmVzb3VyY2VUeXBlKENhY2hlZFJlc291cmNlOjpUeXBl
IHR5cGUpCiB7CkBAIC0xMjcsNCArMTMwLDcgQEAgUmVzb3VyY2VGbGFncyBSZXNvdXJjZUxvYWRJ
bmZvOjpnZXRSZXNvdQogICAgIHJldHVybiBmbGFnczsKIH0KIAorfSAvLyBuYW1lc3BhY2UgQ29u
dGVudEV4dGVuc2lvbnMKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShDT05URU5UX0VYVEVOU0lPTlMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRJbmZvLmgJKHJldmlzaW9uIDI0NDQ5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDEwICsyNSwxMyBAQAogCiAj
cHJhZ21hIG9uY2UKIAorI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCisKICNpbmNsdWRl
ICJDYWNoZWRSZXNvdXJjZS5oIgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgeworbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNpb25zIHsKIAogZW51bSBjbGFzcyBSZXNv
dXJjZVR5cGUgOiB1aW50MTZfdCB7CiAgICAgSW52YWxpZCA9IDB4MDAwMCwKQEAgLTc3LDQgKzgw
LDcgQEAgc3RydWN0IFJlc291cmNlTG9hZEluZm8gewogICAgIFJlc291cmNlRmxhZ3MgZ2V0UmVz
b3VyY2VGbGFncygpIGNvbnN0OwogfTsKIAorfSAvLyBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lv
bnMKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAJKHJldmlzaW9uIDI0NDQ5OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0Miw3
ICszNDIsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3RJbnRlCiAKICAg
ICBBU1NFUlQoIW1fcmVhY2hlZFRlcm1pbmFsU3RhdGUpOwogI2lmIEVOQUJMRShDT05URU5UX0VY
VEVOU0lPTlMpCi0gICAgQVNTRVJUKG1fcmVzb3VyY2VUeXBlICE9IFJlc291cmNlVHlwZTo6SW52
YWxpZCk7CisgICAgQVNTRVJUKG1fcmVzb3VyY2VUeXBlICE9IENvbnRlbnRFeHRlbnNpb25zOjpS
ZXNvdXJjZVR5cGU6OkludmFsaWQpOwogI2VuZGlmCiAKICAgICAvLyBXZSBuZWVkIGEgcmVzb3Vy
Y2UgaWRlbnRpZmllciBmb3IgYWxsIHJlcXVlc3RzLCBldmVuIGlmIEZyYW1lTG9hZGVyIGlzIG5l
dmVyIGdvaW5nIHRvIHNlZSBpdCAoc3VjaCBhcyB3aXRoIENPUlMgcHJlZmxpZ2h0IHJlcXVlc3Rz
KS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiAy
NDQ0OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQ0LDcgKzI0NCw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoQ09OVEVO
VF9FWFRFTlNJT05TKQogcHJvdGVjdGVkOgotICAgIFJlc291cmNlVHlwZSBtX3Jlc291cmNlVHlw
ZSB7IFJlc291cmNlVHlwZTo6SW52YWxpZCB9OworICAgIENvbnRlbnRFeHRlbnNpb25zOjpSZXNv
dXJjZVR5cGUgbV9yZXNvdXJjZVR5cGUgeyBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBl
OjpJbnZhbGlkIH07CiAjZW5kaWYKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9T
dWJyZXNvdXJjZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVy
L1N1YnJlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gMjQ0NDk5KQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsNyAr
OTgsNyBAQCBTdWJyZXNvdXJjZUxvYWRlcjo6U3VicmVzb3VyY2VMb2FkZXIoRnJhCiAgICAgc3Vi
cmVzb3VyY2VMb2FkZXJDb3VudGVyLmluY3JlbWVudCgpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENP
TlRFTlRfRVhURU5TSU9OUykKLSAgICBtX3Jlc291cmNlVHlwZSA9IHRvUmVzb3VyY2VUeXBlKHJl
c291cmNlLnR5cGUoKSk7CisgICAgbV9yZXNvdXJjZVR5cGUgPSBDb250ZW50RXh0ZW5zaW9uczo6
dG9SZXNvdXJjZVR5cGUocmVzb3VyY2UudHlwZSgpKTsKICNlbmRpZgogICAgIG1fY2FuQ3Jvc3NP
cmlnaW5SZXF1ZXN0c0Fza1VzZXJGb3JDcmVkZW50aWFscyA9IHJlc291cmNlLnR5cGUoKSA9PSBD
YWNoZWRSZXNvdXJjZTo6VHlwZTo6TWFpblJlc291cmNlIHx8IGZyYW1lLnNldHRpbmdzKCkuYWxs
b3dDcm9zc09yaWdpblN1YnJlc291cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMoKTsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcAkocmV2aXNpb24gMjQ0NDk5KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODA5LDcgKzgwOSw3
IEBAIFJlc291cmNlRXJyb3JPcjxDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWMKICAgICBpZiAoZnJh
bWUoKSAmJiBmcmFtZSgpLT5wYWdlKCkgJiYgbV9kb2N1bWVudExvYWRlcikgewogICAgICAgICBj
b25zdCBhdXRvJiByZXNvdXJjZVJlcXVlc3QgPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpOwog
ICAgICAgICBhdXRvKiBwYWdlID0gZnJhbWUoKS0+cGFnZSgpOwotICAgICAgICBhdXRvIHJlc3Vs
dHMgPSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNG
b3JMb2FkKHJlc291cmNlUmVxdWVzdC51cmwoKSwgdG9SZXNvdXJjZVR5cGUodHlwZSksICptX2Rv
Y3VtZW50TG9hZGVyKTsKKyAgICAgICAgYXV0byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRlbnRQ
cm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChyZXNvdXJjZVJlcXVlc3Qu
dXJsKCksIENvbnRlbnRFeHRlbnNpb25zOjp0b1Jlc291cmNlVHlwZSh0eXBlKSwgKm1fZG9jdW1l
bnRMb2FkZXIpOwogICAgICAgICBib29sIGJsb2NrZWRMb2FkID0gcmVzdWx0cy5zdW1tYXJ5LmJs
b2NrZWRMb2FkOwogICAgICAgICBib29sIG1hZGVIVFRQUyA9IHJlc3VsdHMuc3VtbWFyeS5tYWRl
SFRUUFM7CiAgICAgICAgIHJlcXVlc3QuYXBwbHlSZXN1bHRzKFdURk1vdmUocmVzdWx0cyksIHBh
Z2UpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkocmV2aXNpb24gMjQ0NDk5KQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MzU3LDcgKzIzNTcsNyBAQCBFeGNlcHRpb25PcjxSZWZQdHI8V2luZG93UHJveHk+PiBET01XaW5k
CiAgICAgICAgICYmIGZpcnN0RnJhbWUtPnBhZ2UoKQogICAgICAgICAmJiBmaXJzdEZyYW1lLT5t
YWluRnJhbWUoKS5kb2N1bWVudCgpCiAgICAgICAgICYmIGZpcnN0RnJhbWUtPm1haW5GcmFtZSgp
LmRvY3VtZW50KCktPmxvYWRlcigpKSB7Ci0gICAgICAgIGF1dG8gcmVzdWx0cyA9IGZpcnN0RnJh
bWUtPnBhZ2UoKS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3Rz
Rm9yTG9hZChmaXJzdEZyYW1lLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmxTdHJpbmcpLCBS
ZXNvdXJjZVR5cGU6OlBvcHVwLCAqZmlyc3RGcmFtZS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+
bG9hZGVyKCkpOworICAgICAgICBhdXRvIHJlc3VsdHMgPSBmaXJzdEZyYW1lLT5wYWdlKCktPnVz
ZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoZmlyc3RG
cmFtZS0+ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwodXJsU3RyaW5nKSwgQ29udGVudEV4dGVuc2lv
bnM6OlJlc291cmNlVHlwZTo6UG9wdXAsICpmaXJzdEZyYW1lLT5tYWluRnJhbWUoKS5kb2N1bWVu
dCgpLT5sb2FkZXIoKSk7CiAgICAgICAgIGlmIChyZXN1bHRzLnN1bW1hcnkuYmxvY2tlZExvYWQp
CiAgICAgICAgICAgICByZXR1cm4gUmVmUHRyPFdpbmRvd1Byb3h5PiB7IG51bGxwdHIgfTsKICAg
ICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5jcHAJ
KHJldmlzaW9uIDI0NDQ5OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRQcm92
aWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMiw3ICsxMDIsNyBAQCBzdGF0aWMgYm9vbCBj
b250ZW50RXh0ZW5zaW9uc0VuYWJsZWQoY29uCiAgICAgcmV0dXJuIHRydWU7CiB9CiAgICAgCi1D
b250ZW50UnVsZUxpc3RSZXN1bHRzIFVzZXJDb250ZW50UHJvdmlkZXI6OnByb2Nlc3NDb250ZW50
UnVsZUxpc3RzRm9yTG9hZChjb25zdCBVUkwmIHVybCwgUmVzb3VyY2VUeXBlIHJlc291cmNlVHlw
ZSwgRG9jdW1lbnRMb2FkZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcikKK0NvbnRlbnRSdWxl
TGlzdFJlc3VsdHMgVXNlckNvbnRlbnRQcm92aWRlcjo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNG
b3JMb2FkKGNvbnN0IFVSTCYgdXJsLCBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlIHJl
c291cmNlVHlwZSwgRG9jdW1lbnRMb2FkZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcikKIHsK
ICAgICBpZiAoIWNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZChpbml0aWF0aW5nRG9jdW1lbnRMb2Fk
ZXIpKQogICAgICAgICByZXR1cm4geyB9OwpAQCAtMTEwLDcgKzExMCw3IEBAIENvbnRlbnRSdWxl
TGlzdFJlc3VsdHMgVXNlckNvbnRlbnRQcm92aWQKICAgICByZXR1cm4gdXNlckNvbnRlbnRFeHRl
bnNpb25CYWNrZW5kKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKHVybCwgcmVzb3Vy
Y2VUeXBlLCBpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIpOwogfQogCi1WZWN0b3I8Q29udGVudEV4
dGVuc2lvbnM6OkFjdGlvbnNGcm9tQ29udGVudFJ1bGVMaXN0PiBVc2VyQ29udGVudFByb3ZpZGVy
OjphY3Rpb25zRm9yUmVzb3VyY2VMb2FkKGNvbnN0IFJlc291cmNlTG9hZEluZm8mIHJlc291cmNl
TG9hZEluZm8sIERvY3VtZW50TG9hZGVyJiBpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIpCitWZWN0
b3I8Q29udGVudEV4dGVuc2lvbnM6OkFjdGlvbnNGcm9tQ29udGVudFJ1bGVMaXN0PiBVc2VyQ29u
dGVudFByb3ZpZGVyOjphY3Rpb25zRm9yUmVzb3VyY2VMb2FkKGNvbnN0IENvbnRlbnRFeHRlbnNp
b25zOjpSZXNvdXJjZUxvYWRJbmZvJiByZXNvdXJjZUxvYWRJbmZvLCBEb2N1bWVudExvYWRlciYg
aW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKQogewogICAgIGlmICghY29udGVudEV4dGVuc2lvbnNF
bmFibGVkKGluaXRpYXRpbmdEb2N1bWVudExvYWRlcikpCiAgICAgICAgIHJldHVybiB7IH07Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuaAkocmV2aXNpb24g
MjQ0NDk5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ2LDE0ICs0NiwxMyBAQCBjbGFzcyBVc2VyTWVzc2FnZUhhbmRsZXJE
ZXNjcmlwdG9yOwogY2xhc3MgVXNlclNjcmlwdDsKIGNsYXNzIFVzZXJTdHlsZVNoZWV0OwogCi1l
bnVtIGNsYXNzIFJlc291cmNlVHlwZSA6IHVpbnQxNl90OwotCi1zdHJ1Y3QgUmVzb3VyY2VMb2Fk
SW5mbzsKLQorI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiBuYW1lc3BhY2UgQ29udGVu
dEV4dGVuc2lvbnMgewogY2xhc3MgQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kOwotc3RydWN0IEFj
dGlvbjsKK2VudW0gY2xhc3MgUmVzb3VyY2VUeXBlIDogdWludDE2X3Q7CitzdHJ1Y3QgUmVzb3Vy
Y2VMb2FkSW5mbzsKIH0KKyNlbmRpZgogCiBjbGFzcyBVc2VyQ29udGVudFByb3ZpZGVyOwogCkBA
IC04OSw4ICs4OCw4IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQog
ICAgIC8vIEZJWE1FOiBUaGVzZSBkb24ndCByZWFsbHkgYmVsb25nIGhlcmUuIFRoZXkgc2hvdWxk
IHByb2JhYmx5IGJ1bmRsZWQgdXAgaW4gdGhlIENvbnRlbnRFeHRlbnNpb25zQmFja2VuZAogICAg
IC8vIHdoaWNoIHNob3VsZCBhbHdheXMgZXhpc3QuCi0gICAgQ29udGVudFJ1bGVMaXN0UmVzdWx0
cyBwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoY29uc3QgVVJMJiwgUmVzb3VyY2VUeXBl
LCBEb2N1bWVudExvYWRlciYgaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKTsKLSAgICBWZWN0b3I8
Q29udGVudEV4dGVuc2lvbnM6OkFjdGlvbnNGcm9tQ29udGVudFJ1bGVMaXN0PiBhY3Rpb25zRm9y
UmVzb3VyY2VMb2FkKGNvbnN0IFJlc291cmNlTG9hZEluZm8mLCBEb2N1bWVudExvYWRlciYgaW5p
dGlhdGluZ0RvY3VtZW50TG9hZGVyKTsKKyAgICBDb250ZW50UnVsZUxpc3RSZXN1bHRzIHByb2Nl
c3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChjb25zdCBVUkwmLCBDb250ZW50RXh0ZW5zaW9uczo6
UmVzb3VyY2VUeXBlLCBEb2N1bWVudExvYWRlciYgaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKTsK
KyAgICBWZWN0b3I8Q29udGVudEV4dGVuc2lvbnM6OkFjdGlvbnNGcm9tQ29udGVudFJ1bGVMaXN0
PiBhY3Rpb25zRm9yUmVzb3VyY2VMb2FkKGNvbnN0IENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJj
ZUxvYWRJbmZvJiwgRG9jdW1lbnRMb2FkZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcik7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmb3JFYWNoQ29udGVudEV4dGVuc2lvbihjb25zdCBGdW5j
dGlvbjx2b2lkKGNvbnN0IFN0cmluZyYsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5z
aW9uJik+JiwgRG9jdW1lbnRMb2FkZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcik7CiAjZW5k
aWYKIApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjQ0NTAxKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMTktMDQtMjIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykg
YW5kIG5hbWVzcGFjZSBDb250ZW50RXh0ZW5zaW9ucyB0byBSZXNvdXJjZUxvYWRJbmZvLmgKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NzE2NQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcDoKKwogMjAxOS0wNC0yMiAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVH
UkVTU0lPTihyMjQxMjg5KTogW0dUS10gYWNjZXNzaWJpbGl0eS9yZW1vdmVkLWNvbnRpbnVhdGlv
bi1lbGVtZW50LWNhdXNlcy1jcmFzaC5odG1sIGFuZCBhY2Nlc3NpYmlsaXR5L3JlbW92ZWQtYW5v
bnltb3VzLWJsb2NrLWNoaWxkLWNhdXNlcy1jcmFzaC5odG1sIGNyYXNoZXMKSW5kZXg6IFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNp
b25zLmNwcAkocmV2aXNpb24gMjQ0NDk5KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjcsOSArNjcs
OSBAQCBpbmxpbmUgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0CiB9CiB9CiAKLXVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Cit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOjpDb250ZW50RXh0
ZW5zaW9uczsKIAogY2xhc3MgQ29udGVudEV4dGVuc2lvblRlc3QgOiBwdWJsaWMgdGVzdGluZzo6
VGVzdCB7CiBwdWJsaWM6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367963</attachid>
            <date>2019-04-22 13:06:49 -0700</date>
            <delta_ts>2019-04-22 16:25:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197165-20190422130648.patch</filename>
            <type>text/plain</type>
            <size>19195</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NDUwNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE5LTA0LTIyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIEVOQUJM
RShDT05URU5UX0VYVEVOU0lPTlMpIGFuZCBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgdG8g
UmVzb3VyY2VMb2FkSW5mby5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTcxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuICBUaGlzIHdpbGwganVzdCBtYWtlIGl0
IGhhcmRlciBmb3IgcGVvcGxlIHdvcmtpbmcgb24gdGhlIGxvYWRlciB0byBtaXN0YWtlCisgICAg
ICAgIHRoZXNlIENvbnRlbnRFeHRlbnNpb24gc3BlY2lmaWMgc3RydWN0dXJlcyBmb3Igb3RoZXIg
c3RydWN0dXJlcyBnZW5lcmFsIHRvIGxvYWRpbmcuCisgICAgICAgIE9uZSBzdWNoIG1pc3Rha2Ug
d2FzIG1hZGUgaW4gcjI0NDI0OC4KKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmNv
bm5lY3QpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFj
a2VuZC5oOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVTaGVldENvbnRlbnRzOjpzdWJyZXNvdXJjZXNBbGxvd1JldXNlIGNvbnN0
KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6
TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCk6
CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpsb2FkSW1hZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6UGluZ0xvYWRlcjo6c2VuZFBpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGluZ0xvYWRl
cjo6c2VuZFZpb2xhdGlvblJlcG9ydCk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZElu
Zm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9SZXNvdXJjZVR5cGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6cmVhZFJlc291cmNlVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpyZWFkTG9hZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkSW5mbzo6aXNUaGlyZFBhcnR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZEluZm86OmdldFJlc291cmNlRmxhZ3MgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmg6CisgICAgICAgICogbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjp3aWxsU2Vu
ZFJlcXVlc3RJbnRlcm5hbCk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6Cisg
ICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN1YnJlc291cmNlTG9hZGVyOjpTdWJyZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgorICAgICAgICAqIHBhZ2UvRE9NV2lu
ZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3Blbik6CisgICAgICAgICog
cGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJDb250
ZW50UHJvdmlkZXI6OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCk6CisgICAgICAgIChX
ZWJDb3JlOjpVc2VyQ29udGVudFByb3ZpZGVyOjphY3Rpb25zRm9yUmVzb3VyY2VMb2FkKToKKyAg
ICAgICAgKiBwYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuaDoKKwogMjAxOS0wNC0yMiAgSnVzdGlu
IEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHUFVdIE1vdmUgc3dh
cCBjaGFpbiBtZXRob2RzIGZyb20gR1BVRGV2aWNlIHRvIEdQVUNhbnZhc0NvbnRleHQKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbC5jcHAJKHJldmlzaW9uIDI0NDUwNykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODksNyAr
ODksNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmNvbm5lY3QoY29uc3QgVVJMCiAjaWYgRU5B
QkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBpZiAoYXV0byogcGFnZSA9IG1fZG9jdW1lbnQt
PnBhZ2UoKSkgewogICAgICAgICBpZiAoYXV0byogZG9jdW1lbnRMb2FkZXIgPSBtX2RvY3VtZW50
LT5sb2FkZXIoKSkgewotICAgICAgICAgICAgYXV0byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRl
bnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCh1cmwsIFJlc291cmNl
VHlwZTo6UmF3LCAqZG9jdW1lbnRMb2FkZXIpOworICAgICAgICAgICAgYXV0byByZXN1bHRzID0g
cGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9h
ZCh1cmwsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OlJhdywgKmRvY3VtZW50TG9h
ZGVyKTsKICAgICAgICAgICAgIGlmIChyZXN1bHRzLnN1bW1hcnkuYmxvY2tlZExvYWQpIHsKICAg
ICAgICAgICAgICAgICBSZWY8V2ViU29ja2V0Q2hhbm5lbD4gcHJvdGVjdGVkVGhpcygqdGhpcyk7
CiAgICAgICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbcHJvdGVjdGVkVGhpcyA9IFdURk1v
dmUocHJvdGVjdGVkVGhpcyldIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5oCShyZXZpc2lv
biAyNDQ1MDcpCisrKyBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0
ZW5zaW9uc0JhY2tlbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsMTEgKzM4LDEwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIERvY3VtZW50TG9hZGVyOwogY2xhc3MgUmVzb3VyY2VSZXF1
ZXN0OwogCi1zdHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbzsKLQogbmFtZXNwYWNlIENvbnRlbnRFeHRl
bnNpb25zIHsKIAogY2xhc3MgQ29tcGlsZWRDb250ZW50RXh0ZW5zaW9uOworc3RydWN0IFJlc291
cmNlTG9hZEluZm87CiAKIC8vIFRoZSBDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQgaXMgdGhlIGlu
dGVybmFsIG1vZGVsIG9mIGFsbCB0aGUgY29udGVudCBleHRlbnNpb25zLgogLy8KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCShyZXZpc2lvbiAyNDQ1MDcp
CisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTEyLDcgKzUxMiw3IEBAIGJvb2wgU3R5bGVTaGVldENvbnRlbnRzOjpzdWJyZXNv
dXJjZXNBbGwKICAgICAgICAgYXV0byogZG9jdW1lbnRMb2FkZXIgPSBsb2FkZXIuZG9jdW1lbnRM
b2FkZXIoKTsKICAgICAgICAgaWYgKHBhZ2UgJiYgZG9jdW1lbnRMb2FkZXIpIHsKICAgICAgICAg
ICAgIGNvbnN0IGF1dG8mIHJlcXVlc3QgPSByZXNvdXJjZS5yZXNvdXJjZVJlcXVlc3QoKTsKLSAg
ICAgICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9j
ZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQocmVxdWVzdC51cmwoKSwgdG9SZXNvdXJjZVR5cGUo
cmVzb3VyY2UudHlwZSgpKSwgKmRvY3VtZW50TG9hZGVyKTsKKyAgICAgICAgICAgIGF1dG8gcmVz
dWx0cyA9IHBhZ2UtPnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0
c0ZvckxvYWQocmVxdWVzdC51cmwoKSwgQ29udGVudEV4dGVuc2lvbnM6OnRvUmVzb3VyY2VUeXBl
KHJlc291cmNlLnR5cGUoKSksICpkb2N1bWVudExvYWRlcik7CiAgICAgICAgICAgICBpZiAocmVz
dWx0cy5zdW1tYXJ5LmJsb2NrZWRMb2FkIHx8IHJlc3VsdHMuc3VtbWFyeS5tYWRlSFRUUFMpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL0V4dGVuc2lvblN0eWxlU2hlZXRzLmNwcAkocmV2aXNpb24gMjQ0NTA3KQorKysg
U291cmNlL1dlYkNvcmUvZG9tL0V4dGVuc2lvblN0eWxlU2hlZXRzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDcsNyArNDcsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBFTkFCTEUo
Q09OVEVOVF9FWFRFTlNJT05TKQogdXNpbmcgbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNpb25zOwor
I2VuZGlmCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBFeHRlbnNpb25TdHlsZVNoZWV0
czo6RXh0ZW5zaW9uU3R5bGVTaGVldHMoRG9jdW1lbnQmIGRvY3VtZW50KQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAyNDQ1MDcpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNTIxLDcgKzE1MjEsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRSZXNvdXJjZShj
b25zCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIGlmIChhdXRvIGRvY3Vt
ZW50TG9hZGVyID0gbWFrZVJlZlB0cihmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSkp
IHsKLSAgICAgICAgaWYgKHBhZ2UtPnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVu
dFJ1bGVMaXN0c0ZvckxvYWQodXJsLCBSZXNvdXJjZVR5cGU6Ok1lZGlhLCAqZG9jdW1lbnRMb2Fk
ZXIpLnN1bW1hcnkuYmxvY2tlZExvYWQpIHsKKyAgICAgICAgaWYgKHBhZ2UtPnVzZXJDb250ZW50
UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQodXJsLCBDb250ZW50RXh0
ZW5zaW9uczo6UmVzb3VyY2VUeXBlOjpNZWRpYSwgKmRvY3VtZW50TG9hZGVyKS5zdW1tYXJ5LmJs
b2NrZWRMb2FkKSB7CiAgICAgICAgICAgICBtZWRpYUxvYWRpbmdGYWlsZWQoTWVkaWFQbGF5ZXI6
OkZvcm1hdEVycm9yKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShyZXZpc2lvbiAyNDQ1MDcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDY4
LDcgKzMwNjgsNyBAQCB1bnNpZ25lZCBsb25nIEZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTCiAg
ICAgaWYgKGVycm9yLmlzTnVsbCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBwYWdlID0gbV9mcmFt
ZS5wYWdlKCkpIHsKICAgICAgICAgICAgIGlmIChtX2RvY3VtZW50TG9hZGVyKSB7Ci0gICAgICAg
ICAgICAgICAgYXV0byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nl
c3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChuZXdSZXF1ZXN0LnVybCgpLCBSZXNvdXJjZVR5cGU6
OlJhdywgKm1fZG9jdW1lbnRMb2FkZXIpOworICAgICAgICAgICAgICAgIGF1dG8gcmVzdWx0cyA9
IHBhZ2UtPnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0Zvckxv
YWQobmV3UmVxdWVzdC51cmwoKSwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6UmF3
LCAqbV9kb2N1bWVudExvYWRlcik7CiAgICAgICAgICAgICAgICAgYm9vbCBibG9ja2VkTG9hZCA9
IHJlc3VsdHMuc3VtbWFyeS5ibG9ja2VkTG9hZDsKICAgICAgICAgICAgICAgICBDb250ZW50RXh0
ZW5zaW9uczo6YXBwbHlSZXN1bHRzVG9SZXF1ZXN0KFdURk1vdmUocmVzdWx0cyksIHBhZ2UsIG5l
d1JlcXVlc3QpOwogICAgICAgICAgICAgICAgIGlmIChibG9ja2VkTG9hZCkgewpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIu
Y3BwCShyZXZpc2lvbiAyNDQ1MDcpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQ
bHVnSW5TdHJlYW1Mb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCw3ICs2MCw3IEBAIE5l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyOjpOZXRzY2FwZVBsdWcKICAgICAsIG1fY2xpZW50KCZj
bGllbnQpCiB7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAgICBtX3Jlc291cmNl
VHlwZSA9IFJlc291cmNlVHlwZTo6UGx1Z0luU3RyZWFtOworICAgIG1fcmVzb3VyY2VUeXBlID0g
Q29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6UGx1Z0luU3RyZWFtOwogI2VuZGlmCiB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAJKHJldmlzaW9uIDI0NDUw
NykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjAsNyArNjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgIUVOQUJMRShDT05U
RU5UX0VYVEVOU0lPTlMpCiAKIC8vIFJldHVybnMgdHJ1ZSBpZiB3ZSBzaG91bGQgYmxvY2sgdGhl
IGxvYWQuCi1zdGF0aWMgaW5saW5lIGJvb2wgcHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2Fk
KGNvbnN0IEZyYW1lJiwgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VUeXBlKQorc3RhdGljIGlu
bGluZSBib29sIHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChjb25zdCBGcmFtZSYsIFJl
c291cmNlUmVxdWVzdCYsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGUpCiB7CiAgICAg
cmV0dXJuIGZhbHNlOwogfQpAQCAtNjgsNyArNjgsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgcHJv
Y2Vzc0NvbnRlbnRSdWxlTGlzCiAjZWxzZQogCiAvLyBSZXR1cm5zIHRydWUgaWYgd2Ugc2hvdWxk
IGJsb2NrIHRoZSBsb2FkLgotc3RhdGljIGJvb2wgcHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JM
b2FkKGNvbnN0IEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJj
ZVR5cGUgcmVzb3VyY2VUeXBlKQorc3RhdGljIGJvb2wgcHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNG
b3JMb2FkKGNvbnN0IEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBDb250
ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZSkKIHsKICAgICBhdXRvKiBk
b2N1bWVudExvYWRlciA9IGZyYW1lLmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCk7CiAgICAgaWYg
KCFkb2N1bWVudExvYWRlcikKQEAgLTk1LDcgKzk1LDcgQEAgdm9pZCBQaW5nTG9hZGVyOjpsb2Fk
SW1hZ2UoRnJhbWUmIGZyYW1lLAogICAgIH0KIAogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0
KHVybCk7Ci0gICAgaWYgKHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChmcmFtZSwgcmVx
dWVzdCwgUmVzb3VyY2VUeXBlOjpJbWFnZSkpCisgICAgaWYgKHByb2Nlc3NDb250ZW50UnVsZUxp
c3RzRm9yTG9hZChmcmFtZSwgcmVxdWVzdCwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlw
ZTo6SW1hZ2UpKQogICAgICAgICByZXR1cm47CiAKICAgICBkb2N1bWVudC5jb250ZW50U2VjdXJp
dHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKHJlcXVlc3QsIENvbnRl
bnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CkBAIC0xMjEsNyAr
MTIxLDcgQEAgdm9pZCBQaW5nTG9hZGVyOjpzZW5kUGluZyhGcmFtZSYgZnJhbWUsIAogICAgICAg
ICByZXR1cm47CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChwaW5nVVJMKTsKLSAgICBp
ZiAocHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKGZyYW1lLCByZXF1ZXN0LCBSZXNvdXJj
ZVR5cGU6OlJhdykpCisgICAgaWYgKHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChmcmFt
ZSwgcmVxdWVzdCwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6UmF3KSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUuZG9jdW1lbnQoKTsKQEAg
LTE1Niw3ICsxNTYsNyBAQCB2b2lkIFBpbmdMb2FkZXI6OnNlbmRWaW9sYXRpb25SZXBvcnQoRnJh
CiAgICAgQVNTRVJUKGZyYW1lLmRvY3VtZW50KCkpOwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QocmVwb3J0VVJMKTsKLSAgICBpZiAocHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2Fk
KGZyYW1lLCByZXF1ZXN0LCBSZXNvdXJjZVR5cGU6OlJhdykpCisgICAgaWYgKHByb2Nlc3NDb250
ZW50UnVsZUxpc3RzRm9yTG9hZChmcmFtZSwgcmVxdWVzdCwgQ29udGVudEV4dGVuc2lvbnM6OlJl
c291cmNlVHlwZTo6UmF3KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byYgZG9jdW1lbnQg
PSAqZnJhbWUuZG9jdW1lbnQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRJbmZvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkSW5mby5jcHAJKHJldmlzaW9uIDI0NDUwNykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWRJbmZvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksMTAgQEAK
ICNpbmNsdWRlICJDb250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oIgogI2luY2x1ZGUgIlNlY3VyaXR5
T3JpZ2luLmgiCiAKKyNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQorCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CituYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgewogCiBSZXNvdXJjZVR5cGUg
dG9SZXNvdXJjZVR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSkKIHsKQEAgLTEyNyw0ICsx
MzAsNyBAQCBSZXNvdXJjZUZsYWdzIFJlc291cmNlTG9hZEluZm86OmdldFJlc291CiAgICAgcmV0
dXJuIGZsYWdzOwogfQogCit9IC8vIG5hbWVzcGFjZSBDb250ZW50RXh0ZW5zaW9ucwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZEluZm8uaAkocmV2aXNpb24g
MjQ0NTA3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZEluZm8uaAkod29y
a2luZyBjb3B5KQpAQCAtMjUsMTAgKzI1LDEzIEBACiAKICNwcmFnbWEgb25jZQogCisjaWYgRU5B
QkxFKENPTlRFTlRfRVhURU5TSU9OUykKKwogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAj
aW5jbHVkZSA8d3RmL1VSTC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgQ29u
dGVudEV4dGVuc2lvbnMgewogCiBlbnVtIGNsYXNzIFJlc291cmNlVHlwZSA6IHVpbnQxNl90IHsK
ICAgICBJbnZhbGlkID0gMHgwMDAwLApAQCAtNzcsNCArODAsNyBAQCBzdHJ1Y3QgUmVzb3VyY2VM
b2FkSW5mbyB7CiAgICAgUmVzb3VyY2VGbGFncyBnZXRSZXNvdXJjZUZsYWdzKCkgY29uc3Q7CiB9
OwogCit9IC8vIG5hbWVzcGFjZSBDb250ZW50RXh0ZW5zaW9ucwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVy
LmNwcAkocmV2aXNpb24gMjQ0NTA3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQyLDcgKzM0Miw3IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdEludGUKIAogICAgIEFTU0VSVCghbV9yZWFjaGVkVGVy
bWluYWxTdGF0ZSk7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAgICBBU1NFUlQo
bV9yZXNvdXJjZVR5cGUgIT0gUmVzb3VyY2VUeXBlOjpJbnZhbGlkKTsKKyAgICBBU1NFUlQobV9y
ZXNvdXJjZVR5cGUgIT0gQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6SW52YWxpZCk7
CiAjZW5kaWYKIAogICAgIC8vIFdlIG5lZWQgYSByZXNvdXJjZSBpZGVudGlmaWVyIGZvciBhbGwg
cmVxdWVzdHMsIGV2ZW4gaWYgRnJhbWVMb2FkZXIgaXMgbmV2ZXIgZ29pbmcgdG8gc2VlIGl0IChz
dWNoIGFzIHdpdGggQ09SUyBwcmVmbGlnaHQgcmVxdWVzdHMpLgpJbmRleDogU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZGVyLmgJKHJldmlzaW9uIDI0NDUwNykKKysrIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNDQsNyArMjQ0
LDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiBwcm90ZWN0
ZWQ6Ci0gICAgUmVzb3VyY2VUeXBlIG1fcmVzb3VyY2VUeXBlIHsgUmVzb3VyY2VUeXBlOjpJbnZh
bGlkIH07CisgICAgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZSBtX3Jlc291cmNlVHlw
ZSB7IENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OkludmFsaWQgfTsKICNlbmRpZgog
fTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3Bw
CShyZXZpc2lvbiAyNDQ1MDcpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VM
b2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCw3ICs5OCw3IEBAIFN1YnJlc291cmNlTG9h
ZGVyOjpTdWJyZXNvdXJjZUxvYWRlcihGcmEKICAgICBzdWJyZXNvdXJjZUxvYWRlckNvdW50ZXIu
aW5jcmVtZW50KCk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotICAg
IG1fcmVzb3VyY2VUeXBlID0gdG9SZXNvdXJjZVR5cGUocmVzb3VyY2UudHlwZSgpKTsKKyAgICBt
X3Jlc291cmNlVHlwZSA9IENvbnRlbnRFeHRlbnNpb25zOjp0b1Jlc291cmNlVHlwZShyZXNvdXJj
ZS50eXBlKCkpOwogI2VuZGlmCiAgICAgbV9jYW5Dcm9zc09yaWdpblJlcXVlc3RzQXNrVXNlckZv
ckNyZWRlbnRpYWxzID0gcmVzb3VyY2UudHlwZSgpID09IENhY2hlZFJlc291cmNlOjpUeXBlOjpN
YWluUmVzb3VyY2UgfHwgZnJhbWUuc2V0dGluZ3MoKS5hbGxvd0Nyb3NzT3JpZ2luU3VicmVzb3Vy
Y2VzVG9Bc2tGb3JDcmVkZW50aWFscygpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAyNDQ1
MDcpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MDksNyArODA5LDcgQEAgUmVzb3VyY2VFcnJvck9yPENh
Y2hlZFJlc291cmNlSGFuZGxlPENhYwogICAgIGlmIChmcmFtZSgpICYmIGZyYW1lKCktPnBhZ2Uo
KSAmJiBtX2RvY3VtZW50TG9hZGVyKSB7CiAgICAgICAgIGNvbnN0IGF1dG8mIHJlc291cmNlUmVx
dWVzdCA9IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCk7CiAgICAgICAgIGF1dG8qIHBhZ2UgPSBm
cmFtZSgpLT5wYWdlKCk7Ci0gICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVzZXJDb250ZW50
UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQocmVzb3VyY2VSZXF1ZXN0
LnVybCgpLCB0b1Jlc291cmNlVHlwZSh0eXBlKSwgKm1fZG9jdW1lbnRMb2FkZXIpOworICAgICAg
ICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRl
bnRSdWxlTGlzdHNGb3JMb2FkKHJlc291cmNlUmVxdWVzdC51cmwoKSwgQ29udGVudEV4dGVuc2lv
bnM6OnRvUmVzb3VyY2VUeXBlKHR5cGUpLCAqbV9kb2N1bWVudExvYWRlcik7CiAgICAgICAgIGJv
b2wgYmxvY2tlZExvYWQgPSByZXN1bHRzLnN1bW1hcnkuYmxvY2tlZExvYWQ7CiAgICAgICAgIGJv
b2wgbWFkZUhUVFBTID0gcmVzdWx0cy5zdW1tYXJ5Lm1hZGVIVFRQUzsKICAgICAgICAgcmVxdWVz
dC5hcHBseVJlc3VsdHMoV1RGTW92ZShyZXN1bHRzKSwgcGFnZSk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCShyZXZpc2lvbiAyNDQ1MDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNTcsNyArMjM1Nyw3IEBAIEV4Y2Vw
dGlvbk9yPFJlZlB0cjxXaW5kb3dQcm94eT4+IERPTVdpbmQKICAgICAgICAgJiYgZmlyc3RGcmFt
ZS0+cGFnZSgpCiAgICAgICAgICYmIGZpcnN0RnJhbWUtPm1haW5GcmFtZSgpLmRvY3VtZW50KCkK
ICAgICAgICAgJiYgZmlyc3RGcmFtZS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+bG9hZGVyKCkp
IHsKLSAgICAgICAgYXV0byByZXN1bHRzID0gZmlyc3RGcmFtZS0+cGFnZSgpLT51c2VyQ29udGVu
dFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKGZpcnN0RnJhbWUtPmRv
Y3VtZW50KCktPmNvbXBsZXRlVVJMKHVybFN0cmluZyksIFJlc291cmNlVHlwZTo6UG9wdXAsICpm
aXJzdEZyYW1lLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpLT5sb2FkZXIoKSk7CisgICAgICAgIGF1
dG8gcmVzdWx0cyA9IGZpcnN0RnJhbWUtPnBhZ2UoKS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnBy
b2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChmaXJzdEZyYW1lLT5kb2N1bWVudCgpLT5jb21w
bGV0ZVVSTCh1cmxTdHJpbmcpLCBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlOjpQb3B1
cCwgKmZpcnN0RnJhbWUtPm1haW5GcmFtZSgpLmRvY3VtZW50KCktPmxvYWRlcigpKTsKICAgICAg
ICAgaWYgKHJlc3VsdHMuc3VtbWFyeS5ibG9ja2VkTG9hZCkKICAgICAgICAgICAgIHJldHVybiBS
ZWZQdHI8V2luZG93UHJveHk+IHsgbnVsbHB0ciB9OwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmNwcAkocmV2aXNpb24gMjQ0NTA3KQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTAyLDcgKzEwMiw3IEBAIHN0YXRpYyBib29sIGNvbnRlbnRFeHRlbnNpb25zRW5hYmxl
ZChjb24KICAgICByZXR1cm4gdHJ1ZTsKIH0KICAgICAKLUNvbnRlbnRSdWxlTGlzdFJlc3VsdHMg
VXNlckNvbnRlbnRQcm92aWRlcjo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKGNvbnN0
IFVSTCYgdXJsLCBSZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlLCBEb2N1bWVudExvYWRlciYgaW5p
dGlhdGluZ0RvY3VtZW50TG9hZGVyKQorQ29udGVudFJ1bGVMaXN0UmVzdWx0cyBVc2VyQ29udGVu
dFByb3ZpZGVyOjpwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoY29uc3QgVVJMJiB1cmws
IENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlLCBEb2N1bWVudExv
YWRlciYgaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKQogewogICAgIGlmICghY29udGVudEV4dGVu
c2lvbnNFbmFibGVkKGluaXRpYXRpbmdEb2N1bWVudExvYWRlcikpCiAgICAgICAgIHJldHVybiB7
IH07CkBAIC0xMTAsNyArMTEwLDcgQEAgQ29udGVudFJ1bGVMaXN0UmVzdWx0cyBVc2VyQ29udGVu
dFByb3ZpZAogICAgIHJldHVybiB1c2VyQ29udGVudEV4dGVuc2lvbkJhY2tlbmQoKS5wcm9jZXNz
Q29udGVudFJ1bGVMaXN0c0ZvckxvYWQodXJsLCByZXNvdXJjZVR5cGUsIGluaXRpYXRpbmdEb2N1
bWVudExvYWRlcik7CiB9CiAKLVZlY3RvcjxDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uc0Zyb21D
b250ZW50UnVsZUxpc3Q+IFVzZXJDb250ZW50UHJvdmlkZXI6OmFjdGlvbnNGb3JSZXNvdXJjZUxv
YWQoY29uc3QgUmVzb3VyY2VMb2FkSW5mbyYgcmVzb3VyY2VMb2FkSW5mbywgRG9jdW1lbnRMb2Fk
ZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcikKK1ZlY3RvcjxDb250ZW50RXh0ZW5zaW9uczo6
QWN0aW9uc0Zyb21Db250ZW50UnVsZUxpc3Q+IFVzZXJDb250ZW50UHJvdmlkZXI6OmFjdGlvbnNG
b3JSZXNvdXJjZUxvYWQoY29uc3QgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlTG9hZEluZm8m
IHJlc291cmNlTG9hZEluZm8sIERvY3VtZW50TG9hZGVyJiBpbml0aWF0aW5nRG9jdW1lbnRMb2Fk
ZXIpCiB7CiAgICAgaWYgKCFjb250ZW50RXh0ZW5zaW9uc0VuYWJsZWQoaW5pdGlhdGluZ0RvY3Vt
ZW50TG9hZGVyKSkKICAgICAgICAgcmV0dXJuIHsgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvVXNlckNvbnRlbnRQcm92aWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvVXNlckNvbnRlbnRQcm92aWRlci5oCShyZXZpc2lvbiAyNDQ1MDcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsMTQg
KzQ2LDEzIEBAIGNsYXNzIFVzZXJNZXNzYWdlSGFuZGxlckRlc2NyaXB0b3I7CiBjbGFzcyBVc2Vy
U2NyaXB0OwogY2xhc3MgVXNlclN0eWxlU2hlZXQ7CiAKLWVudW0gY2xhc3MgUmVzb3VyY2VUeXBl
IDogdWludDE2X3Q7Ci0KLXN0cnVjdCBSZXNvdXJjZUxvYWRJbmZvOwotCisjaWYgRU5BQkxFKENP
TlRFTlRfRVhURU5TSU9OUykKIG5hbWVzcGFjZSBDb250ZW50RXh0ZW5zaW9ucyB7CiBjbGFzcyBD
b250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ7Ci1zdHJ1Y3QgQWN0aW9uOworZW51bSBjbGFzcyBSZXNv
dXJjZVR5cGUgOiB1aW50MTZfdDsKK3N0cnVjdCBSZXNvdXJjZUxvYWRJbmZvOwogfQorI2VuZGlm
CiAKIGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CiAKQEAgLTg5LDggKzg4LDggQEAgcHVibGlj
OgogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiAgICAgLy8gRklYTUU6IFRoZXNlIGRv
bid0IHJlYWxseSBiZWxvbmcgaGVyZS4gVGhleSBzaG91bGQgcHJvYmFibHkgYnVuZGxlZCB1cCBp
biB0aGUgQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kCiAgICAgLy8gd2hpY2ggc2hvdWxkIGFsd2F5
cyBleGlzdC4KLSAgICBDb250ZW50UnVsZUxpc3RSZXN1bHRzIHByb2Nlc3NDb250ZW50UnVsZUxp
c3RzRm9yTG9hZChjb25zdCBVUkwmLCBSZXNvdXJjZVR5cGUsIERvY3VtZW50TG9hZGVyJiBpbml0
aWF0aW5nRG9jdW1lbnRMb2FkZXIpOwotICAgIFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uczo6QWN0
aW9uc0Zyb21Db250ZW50UnVsZUxpc3Q+IGFjdGlvbnNGb3JSZXNvdXJjZUxvYWQoY29uc3QgUmVz
b3VyY2VMb2FkSW5mbyYsIERvY3VtZW50TG9hZGVyJiBpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIp
OworICAgIENvbnRlbnRSdWxlTGlzdFJlc3VsdHMgcHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JM
b2FkKGNvbnN0IFVSTCYsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGUsIERvY3VtZW50
TG9hZGVyJiBpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIpOworICAgIFZlY3RvcjxDb250ZW50RXh0
ZW5zaW9uczo6QWN0aW9uc0Zyb21Db250ZW50UnVsZUxpc3Q+IGFjdGlvbnNGb3JSZXNvdXJjZUxv
YWQoY29uc3QgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlTG9hZEluZm8mLCBEb2N1bWVudExv
YWRlciYgaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGZvckVhY2hDb250ZW50RXh0ZW5zaW9uKGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5n
JiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb24mKT4mLCBEb2N1bWVudExvYWRl
ciYgaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKTsKICNlbmRpZgogCkluZGV4OiBUb29scy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDM5MjYpCisr
KyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0w
NC0yMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAg
ICAgIEFkZCBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKSBhbmQgbmFtZXNwYWNlIENvbnRlbnRF
eHRlbnNpb25zIHRvIFJlc291cmNlTG9hZEluZm8uaAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3MTY1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29u
dGVudEV4dGVuc2lvbnMuY3BwOgorCiAyMDE5LTA0LTA0ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8
YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBhIGNvcnJlY3QgTENfUlBBVEggd2hlbiBidWls
ZGluZyB3aXRoIEFTYW4KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9D
b250ZW50RXh0ZW5zaW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAkocmV2aXNpb24gMjQ0NTA3KQorKysg
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjcsOSArNjcsOSBAQCBpbmxpbmUgc3RkOjpvc3RyZWFtJiBvcGVy
YXRvcjw8KHN0ZDo6b3N0CiB9CiB9CiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCiBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSSB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczsKIAogY2xhc3MgQ29udGVudEV4dGVu
c2lvblRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367992</attachid>
            <date>2019-04-22 16:25:25 -0700</date>
            <delta_ts>2019-04-25 22:20:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197165-20190422162524.patch</filename>
            <type>text/plain</type>
            <size>19527</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NDUyMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE5LTA0LTIyICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIEVOQUJM
RShDT05URU5UX0VYVEVOU0lPTlMpIGFuZCBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgdG8g
UmVzb3VyY2VMb2FkSW5mby5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTcxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IuICBUaGlzIHdpbGwganVzdCBtYWtlIGl0
IGhhcmRlciBmb3IgcGVvcGxlIHdvcmtpbmcgb24gdGhlIGxvYWRlciB0byBtaXN0YWtlCisgICAg
ICAgIHRoZXNlIENvbnRlbnRFeHRlbnNpb24gc3BlY2lmaWMgc3RydWN0dXJlcyBmb3Igb3RoZXIg
c3RydWN0dXJlcyBnZW5lcmFsIHRvIGxvYWRpbmcuCisgICAgICAgIE9uZSBzdWNoIG1pc3Rha2Ug
d2FzIG1hZGUgaW4gcjI0NDI0OC4KKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmNv
bm5lY3QpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFj
a2VuZC5oOgorICAgICAgICAqIGNzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVTaGVldENvbnRlbnRzOjpzdWJyZXNvdXJjZXNBbGxvd1JldXNlIGNvbnN0
KToKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIGxvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6
TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCk6
CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpsb2FkSW1hZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6UGluZ0xvYWRlcjo6c2VuZFBpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UGluZ0xvYWRl
cjo6c2VuZFZpb2xhdGlvblJlcG9ydCk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZElu
Zm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9SZXNvdXJjZVR5cGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6cmVhZFJlc291cmNlVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpyZWFkTG9hZFR5cGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VM
b2FkSW5mbzo6aXNUaGlyZFBhcnR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZEluZm86OmdldFJlc291cmNlRmxhZ3MgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmg6CisgICAgICAgICogbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjp3aWxsU2Vu
ZFJlcXVlc3RJbnRlcm5hbCk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6Cisg
ICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN1YnJlc291cmNlTG9hZGVyOjpTdWJyZXNvdXJjZUxvYWRlcik6CisgICAgICAgICogbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0UmVzb3VyY2UpOgorICAgICAgICAqIHBhZ2UvRE9NV2lu
ZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6b3Blbik6CisgICAgICAgICog
cGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJDb250
ZW50UHJvdmlkZXI6OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCk6CisgICAgICAgIChX
ZWJDb3JlOjpVc2VyQ29udGVudFByb3ZpZGVyOjphY3Rpb25zRm9yUmVzb3VyY2VMb2FkKToKKyAg
ICAgICAgKiBwYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuaDoKKwogMjAxOS0wNC0yMiAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGxpYndlYnJ0YyBs
b2dnaW5nIHdoZW4gV2ViQ29yZSBXZWJSVEMgbG9nZ2luZyBpcyB1cGRhdGVkCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5u
ZWwuY3BwCShyZXZpc2lvbiAyNDQ1MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDcg
QEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpjb25uZWN0KGNvbnN0IFVSTAogI2lmIEVOQUJMRShD
T05URU5UX0VYVEVOU0lPTlMpCiAgICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2RvY3VtZW50LT5wYWdl
KCkpIHsKICAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0gbV9kb2N1bWVudC0+bG9h
ZGVyKCkpIHsKLSAgICAgICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVzZXJDb250ZW50UHJv
dmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQodXJsLCBSZXNvdXJjZVR5cGU6
OlJhdywgKmRvY3VtZW50TG9hZGVyKTsKKyAgICAgICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2Ut
PnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQodXJs
LCBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlOjpSYXcsICpkb2N1bWVudExvYWRlcik7
CiAgICAgICAgICAgICBpZiAocmVzdWx0cy5zdW1tYXJ5LmJsb2NrZWRMb2FkKSB7CiAgICAgICAg
ICAgICAgICAgUmVmPFdlYlNvY2tldENoYW5uZWw+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogICAg
ICAgICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHBy
b3RlY3RlZFRoaXMpXSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9D
b250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuaAkocmV2aXNpb24gMjQ0
NTIxKQorKysgU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lv
bnNCYWNrZW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDExICszOCwxMCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBEb2N1bWVudExvYWRlcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsK
IAotc3RydWN0IFJlc291cmNlTG9hZEluZm87Ci0KIG5hbWVzcGFjZSBDb250ZW50RXh0ZW5zaW9u
cyB7CiAKIGNsYXNzIENvbXBpbGVkQ29udGVudEV4dGVuc2lvbjsKK3N0cnVjdCBSZXNvdXJjZUxv
YWRJbmZvOwogCiAvLyBUaGUgQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kIGlzIHRoZSBpbnRlcm5h
bCBtb2RlbCBvZiBhbGwgdGhlIGNvbnRlbnQgZXh0ZW5zaW9ucy4KIC8vCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcAkocmV2aXNpb24gMjQ0NTIxKQorKysg
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUxMiw3ICs1MTIsNyBAQCBib29sIFN0eWxlU2hlZXRDb250ZW50czo6c3VicmVzb3VyY2Vz
QWxsCiAgICAgICAgIGF1dG8qIGRvY3VtZW50TG9hZGVyID0gbG9hZGVyLmRvY3VtZW50TG9hZGVy
KCk7CiAgICAgICAgIGlmIChwYWdlICYmIGRvY3VtZW50TG9hZGVyKSB7CiAgICAgICAgICAgICBj
b25zdCBhdXRvJiByZXF1ZXN0ID0gcmVzb3VyY2UucmVzb3VyY2VSZXF1ZXN0KCk7Ci0gICAgICAg
ICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0Nv
bnRlbnRSdWxlTGlzdHNGb3JMb2FkKHJlcXVlc3QudXJsKCksIHRvUmVzb3VyY2VUeXBlKHJlc291
cmNlLnR5cGUoKSksICpkb2N1bWVudExvYWRlcik7CisgICAgICAgICAgICBhdXRvIHJlc3VsdHMg
PSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JM
b2FkKHJlcXVlc3QudXJsKCksIENvbnRlbnRFeHRlbnNpb25zOjp0b1Jlc291cmNlVHlwZShyZXNv
dXJjZS50eXBlKCkpLCAqZG9jdW1lbnRMb2FkZXIpOwogICAgICAgICAgICAgaWYgKHJlc3VsdHMu
c3VtbWFyeS5ibG9ja2VkTG9hZCB8fCByZXN1bHRzLnN1bW1hcnkubWFkZUhUVFBTKQogICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9k
b20vRXh0ZW5zaW9uU3R5bGVTaGVldHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5jcHAJKHJldmlzaW9uIDI0NDUyMSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9FeHRlbnNpb25TdHlsZVNoZWV0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ3LDcgKzQ3LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgRU5BQkxFKENPTlRF
TlRfRVhURU5TSU9OUykKIHVzaW5nIG5hbWVzcGFjZSBDb250ZW50RXh0ZW5zaW9uczsKKyNlbmRp
ZgogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogRXh0ZW5zaW9uU3R5bGVTaGVldHM6OkV4
dGVuc2lvblN0eWxlU2hlZXRzKERvY3VtZW50JiBkb2N1bWVudCkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkocmV2aXNpb24gMjQ0NTIxKQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUy
MSw3ICsxNTIxLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UoY29ucwog
CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKICAgICBpZiAoYXV0byBkb2N1bWVudExv
YWRlciA9IG1ha2VSZWZQdHIoZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpKSB7Ci0g
ICAgICAgIGlmIChwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxl
TGlzdHNGb3JMb2FkKHVybCwgUmVzb3VyY2VUeXBlOjpNZWRpYSwgKmRvY3VtZW50TG9hZGVyKS5z
dW1tYXJ5LmJsb2NrZWRMb2FkKSB7CisgICAgICAgIGlmIChwYWdlLT51c2VyQ29udGVudFByb3Zp
ZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKHVybCwgQ29udGVudEV4dGVuc2lv
bnM6OlJlc291cmNlVHlwZTo6TWVkaWEsICpkb2N1bWVudExvYWRlcikuc3VtbWFyeS5ibG9ja2Vk
TG9hZCkgewogICAgICAgICAgICAgbWVkaWFMb2FkaW5nRmFpbGVkKE1lZGlhUGxheWVyOjpGb3Jt
YXRFcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkocmV2aXNpb24gMjQ0NTIxKQorKysgU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzA2OCw3ICsz
MDY4LDcgQEAgdW5zaWduZWQgbG9uZyBGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNlUwogICAgIGlm
IChlcnJvci5pc051bGwoKSkgewogICAgICAgICBpZiAoYXV0byogcGFnZSA9IG1fZnJhbWUucGFn
ZSgpKSB7CiAgICAgICAgICAgICBpZiAobV9kb2N1bWVudExvYWRlcikgewotICAgICAgICAgICAg
ICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29u
dGVudFJ1bGVMaXN0c0ZvckxvYWQobmV3UmVxdWVzdC51cmwoKSwgUmVzb3VyY2VUeXBlOjpSYXcs
ICptX2RvY3VtZW50TG9hZGVyKTsKKyAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdHMgPSBwYWdl
LT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKG5l
d1JlcXVlc3QudXJsKCksIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OlJhdywgKm1f
ZG9jdW1lbnRMb2FkZXIpOwogICAgICAgICAgICAgICAgIGJvb2wgYmxvY2tlZExvYWQgPSByZXN1
bHRzLnN1bW1hcnkuYmxvY2tlZExvYWQ7CiAgICAgICAgICAgICAgICAgQ29udGVudEV4dGVuc2lv
bnM6OmFwcGx5UmVzdWx0c1RvUmVxdWVzdChXVEZNb3ZlKHJlc3VsdHMpLCBwYWdlLCBuZXdSZXF1
ZXN0KTsKICAgICAgICAgICAgICAgICBpZiAoYmxvY2tlZExvYWQpIHsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcAko
cmV2aXNpb24gMjQ0NTIxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0lu
U3RyZWFtTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQCBOZXRzY2Fw
ZVBsdWdJblN0cmVhbUxvYWRlcjo6TmV0c2NhcGVQbHVnCiAgICAgLCBtX2NsaWVudCgmY2xpZW50
KQogewogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgbV9yZXNvdXJjZVR5cGUg
PSBSZXNvdXJjZVR5cGU6OlBsdWdJblN0cmVhbTsKKyAgICBtX3Jlc291cmNlVHlwZSA9IENvbnRl
bnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OlBsdWdJblN0cmVhbTsKICNlbmRpZgogfQogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCShyZXZpc2lvbiAyNDQ1MjEpCisr
KyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTU3LDE4ICs1NywxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiAhRU5BQkxFKENP
TlRFTlRfRVhURU5TSU9OUykKKyNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogCiAvLyBS
ZXR1cm5zIHRydWUgaWYgd2Ugc2hvdWxkIGJsb2NrIHRoZSBsb2FkLgotc3RhdGljIGlubGluZSBi
b29sIHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChjb25zdCBGcmFtZSYsIFJlc291cmNl
UmVxdWVzdCYsIFJlc291cmNlVHlwZSkKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLSNlbHNl
Ci0KLS8vIFJldHVybnMgdHJ1ZSBpZiB3ZSBzaG91bGQgYmxvY2sgdGhlIGxvYWQuCi1zdGF0aWMg
Ym9vbCBwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoY29uc3QgRnJhbWUmIGZyYW1lLCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlVHlwZSByZXNvdXJjZVR5cGUpCitzdGF0
aWMgYm9vbCBwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoY29uc3QgRnJhbWUmIGZyYW1l
LCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5
cGUgcmVzb3VyY2VUeXBlKQogewogICAgIGF1dG8qIGRvY3VtZW50TG9hZGVyID0gZnJhbWUubG9h
ZGVyKCkuZG9jdW1lbnRMb2FkZXIoKTsKICAgICBpZiAoIWRvY3VtZW50TG9hZGVyKQpAQCAtOTUs
OCArODcsMTAgQEAgdm9pZCBQaW5nTG9hZGVyOjpsb2FkSW1hZ2UoRnJhbWUmIGZyYW1lLAogICAg
IH0KIAogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHVybCk7Ci0gICAgaWYgKHByb2Nlc3ND
b250ZW50UnVsZUxpc3RzRm9yTG9hZChmcmFtZSwgcmVxdWVzdCwgUmVzb3VyY2VUeXBlOjpJbWFn
ZSkpCisjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKKyAgICBpZiAocHJvY2Vzc0NvbnRl
bnRSdWxlTGlzdHNGb3JMb2FkKGZyYW1lLCByZXF1ZXN0LCBDb250ZW50RXh0ZW5zaW9uczo6UmVz
b3VyY2VUeXBlOjpJbWFnZSkpCiAgICAgICAgIHJldHVybjsKKyNlbmRpZgogCiAgICAgZG9jdW1l
bnQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPnVwZ3JhZGVJbnNlY3VyZVJlcXVlc3RJZk5lZWRl
ZChyZXF1ZXN0LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okluc2VjdXJlUmVxdWVzdFR5cGU6Okxv
YWQpOwogCkBAIC0xMjEsOCArMTE1LDEwIEBAIHZvaWQgUGluZ0xvYWRlcjo6c2VuZFBpbmcoRnJh
bWUmIGZyYW1lLCAKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QocGluZ1VSTCk7Ci0gICAgaWYgKHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChmcmFt
ZSwgcmVxdWVzdCwgUmVzb3VyY2VUeXBlOjpSYXcpKQorI2lmIEVOQUJMRShDT05URU5UX0VYVEVO
U0lPTlMpCisgICAgaWYgKHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChmcmFtZSwgcmVx
dWVzdCwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6UmF3KSkKICAgICAgICAgcmV0
dXJuOworI2VuZGlmCiAKICAgICBhdXRvJiBkb2N1bWVudCA9ICpmcmFtZS5kb2N1bWVudCgpOwog
ICAgIGRvY3VtZW50LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1
ZXN0SWZOZWVkZWQocmVxdWVzdCwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVl
c3RUeXBlOjpMb2FkKTsKQEAgLTE1Niw4ICsxNTIsMTAgQEAgdm9pZCBQaW5nTG9hZGVyOjpzZW5k
VmlvbGF0aW9uUmVwb3J0KEZyYQogICAgIEFTU0VSVChmcmFtZS5kb2N1bWVudCgpKTsKIAogICAg
IFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHJlcG9ydFVSTCk7Ci0gICAgaWYgKHByb2Nlc3NDb250
ZW50UnVsZUxpc3RzRm9yTG9hZChmcmFtZSwgcmVxdWVzdCwgUmVzb3VyY2VUeXBlOjpSYXcpKQor
I2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCisgICAgaWYgKHByb2Nlc3NDb250ZW50UnVs
ZUxpc3RzRm9yTG9hZChmcmFtZSwgcmVxdWVzdCwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNl
VHlwZTo6UmF3KSkKICAgICAgICAgcmV0dXJuOworI2VuZGlmCiAKICAgICBhdXRvJiBkb2N1bWVu
dCA9ICpmcmFtZS5kb2N1bWVudCgpOwogICAgIGRvY3VtZW50LmNvbnRlbnRTZWN1cml0eVBvbGlj
eSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdCwgQ29udGVudFNlY3Vy
aXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5jcHAJKHJldmlzaW9uIDI0NDUyMSkKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjksNyArMjksMTAgQEAKICNpbmNsdWRlICJDb250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oIgog
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAKKyNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJ
T05TKQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMg
ewogCiBSZXNvdXJjZVR5cGUgdG9SZXNvdXJjZVR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlw
ZSkKIHsKQEAgLTEyNyw0ICsxMzAsNyBAQCBSZXNvdXJjZUZsYWdzIFJlc291cmNlTG9hZEluZm86
OmdldFJlc291CiAgICAgcmV0dXJuIGZsYWdzOwogfQogCit9IC8vIG5hbWVzcGFjZSBDb250ZW50
RXh0ZW5zaW9ucwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENP
TlRFTlRfRVhURU5TSU9OUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZEluZm8uaAkocmV2aXNpb24gMjQ0NTIxKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTAgKzI1LDEzIEBACiAKICNwcmFn
bWEgb25jZQogCisjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKKwogI2luY2x1ZGUgIkNh
Y2hlZFJlc291cmNlLmgiCiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CituYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgewogCiBlbnVtIGNsYXNzIFJlc291cmNl
VHlwZSA6IHVpbnQxNl90IHsKICAgICBJbnZhbGlkID0gMHgwMDAwLApAQCAtNzcsNCArODAsNyBA
QCBzdHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbyB7CiAgICAgUmVzb3VyY2VGbGFncyBnZXRSZXNvdXJj
ZUZsYWdzKCkgY29uc3Q7CiB9OwogCit9IC8vIG5hbWVzcGFjZSBDb250ZW50RXh0ZW5zaW9ucwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gMjQ0NTIxKQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQyLDcgKzM0
Miw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdEludGUKIAogICAgIEFT
U0VSVCghbV9yZWFjaGVkVGVybWluYWxTdGF0ZSk7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5T
SU9OUykKLSAgICBBU1NFUlQobV9yZXNvdXJjZVR5cGUgIT0gUmVzb3VyY2VUeXBlOjpJbnZhbGlk
KTsKKyAgICBBU1NFUlQobV9yZXNvdXJjZVR5cGUgIT0gQ29udGVudEV4dGVuc2lvbnM6OlJlc291
cmNlVHlwZTo6SW52YWxpZCk7CiAjZW5kaWYKIAogICAgIC8vIFdlIG5lZWQgYSByZXNvdXJjZSBp
ZGVudGlmaWVyIGZvciBhbGwgcmVxdWVzdHMsIGV2ZW4gaWYgRnJhbWVMb2FkZXIgaXMgbmV2ZXIg
Z29pbmcgdG8gc2VlIGl0IChzdWNoIGFzIHdpdGggQ09SUyBwcmVmbGlnaHQgcmVxdWVzdHMpLgpJ
bmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgJKHJldmlzaW9uIDI0NDUy
MSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNDQsNyArMjQ0LDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShDT05URU5UX0VY
VEVOU0lPTlMpCiBwcm90ZWN0ZWQ6Ci0gICAgUmVzb3VyY2VUeXBlIG1fcmVzb3VyY2VUeXBlIHsg
UmVzb3VyY2VUeXBlOjpJbnZhbGlkIH07CisgICAgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNl
VHlwZSBtX3Jlc291cmNlVHlwZSB7IENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6Oklu
dmFsaWQgfTsKICNlbmRpZgogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJl
c291cmNlTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vi
cmVzb3VyY2VMb2FkZXIuY3BwCShyZXZpc2lvbiAyNDQ1MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCw3ICs5OCw3
IEBAIFN1YnJlc291cmNlTG9hZGVyOjpTdWJyZXNvdXJjZUxvYWRlcihGcmEKICAgICBzdWJyZXNv
dXJjZUxvYWRlckNvdW50ZXIuaW5jcmVtZW50KCk7CiAjZW5kaWYKICNpZiBFTkFCTEUoQ09OVEVO
VF9FWFRFTlNJT05TKQotICAgIG1fcmVzb3VyY2VUeXBlID0gdG9SZXNvdXJjZVR5cGUocmVzb3Vy
Y2UudHlwZSgpKTsKKyAgICBtX3Jlc291cmNlVHlwZSA9IENvbnRlbnRFeHRlbnNpb25zOjp0b1Jl
c291cmNlVHlwZShyZXNvdXJjZS50eXBlKCkpOwogI2VuZGlmCiAgICAgbV9jYW5Dcm9zc09yaWdp
blJlcXVlc3RzQXNrVXNlckZvckNyZWRlbnRpYWxzID0gcmVzb3VyY2UudHlwZSgpID09IENhY2hl
ZFJlc291cmNlOjpUeXBlOjpNYWluUmVzb3VyY2UgfHwgZnJhbWUuc2V0dGluZ3MoKS5hbGxvd0Ny
b3NzT3JpZ2luU3VicmVzb3VyY2VzVG9Bc2tGb3JDcmVkZW50aWFscygpOwogfQpJbmRleDogU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIu
Y3BwCShyZXZpc2lvbiAyNDQ1MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MDksNyArODA5LDcgQEAg
UmVzb3VyY2VFcnJvck9yPENhY2hlZFJlc291cmNlSGFuZGxlPENhYwogICAgIGlmIChmcmFtZSgp
ICYmIGZyYW1lKCktPnBhZ2UoKSAmJiBtX2RvY3VtZW50TG9hZGVyKSB7CiAgICAgICAgIGNvbnN0
IGF1dG8mIHJlc291cmNlUmVxdWVzdCA9IHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCk7CiAgICAg
ICAgIGF1dG8qIHBhZ2UgPSBmcmFtZSgpLT5wYWdlKCk7Ci0gICAgICAgIGF1dG8gcmVzdWx0cyA9
IHBhZ2UtPnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0Zvckxv
YWQocmVzb3VyY2VSZXF1ZXN0LnVybCgpLCB0b1Jlc291cmNlVHlwZSh0eXBlKSwgKm1fZG9jdW1l
bnRMb2FkZXIpOworICAgICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVudFByb3Zp
ZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKHJlc291cmNlUmVxdWVzdC51cmwo
KSwgQ29udGVudEV4dGVuc2lvbnM6OnRvUmVzb3VyY2VUeXBlKHR5cGUpLCAqbV9kb2N1bWVudExv
YWRlcik7CiAgICAgICAgIGJvb2wgYmxvY2tlZExvYWQgPSByZXN1bHRzLnN1bW1hcnkuYmxvY2tl
ZExvYWQ7CiAgICAgICAgIGJvb2wgbWFkZUhUVFBTID0gcmVzdWx0cy5zdW1tYXJ5Lm1hZGVIVFRQ
UzsKICAgICAgICAgcmVxdWVzdC5hcHBseVJlc3VsdHMoV1RGTW92ZShyZXN1bHRzKSwgcGFnZSk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCShyZXZpc2lvbiAyNDQ1MjEpCisrKyBT
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNTcs
NyArMjM1Nyw3IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxXaW5kb3dQcm94eT4+IERPTVdpbmQKICAg
ICAgICAgJiYgZmlyc3RGcmFtZS0+cGFnZSgpCiAgICAgICAgICYmIGZpcnN0RnJhbWUtPm1haW5G
cmFtZSgpLmRvY3VtZW50KCkKICAgICAgICAgJiYgZmlyc3RGcmFtZS0+bWFpbkZyYW1lKCkuZG9j
dW1lbnQoKS0+bG9hZGVyKCkpIHsKLSAgICAgICAgYXV0byByZXN1bHRzID0gZmlyc3RGcmFtZS0+
cGFnZSgpLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JM
b2FkKGZpcnN0RnJhbWUtPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKHVybFN0cmluZyksIFJlc291
cmNlVHlwZTo6UG9wdXAsICpmaXJzdEZyYW1lLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpLT5sb2Fk
ZXIoKSk7CisgICAgICAgIGF1dG8gcmVzdWx0cyA9IGZpcnN0RnJhbWUtPnBhZ2UoKS0+dXNlckNv
bnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChmaXJzdEZyYW1l
LT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmxTdHJpbmcpLCBDb250ZW50RXh0ZW5zaW9uczo6
UmVzb3VyY2VUeXBlOjpQb3B1cCwgKmZpcnN0RnJhbWUtPm1haW5GcmFtZSgpLmRvY3VtZW50KCkt
PmxvYWRlcigpKTsKICAgICAgICAgaWYgKHJlc3VsdHMuc3VtbWFyeS5ibG9ja2VkTG9hZCkKICAg
ICAgICAgICAgIHJldHVybiBSZWZQdHI8V2luZG93UHJveHk+IHsgbnVsbHB0ciB9OwogICAgIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmNwcAkocmV2
aXNpb24gMjQ0NTIxKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAyLDcgKzEwMiw3IEBAIHN0YXRpYyBib29sIGNvbnRl
bnRFeHRlbnNpb25zRW5hYmxlZChjb24KICAgICByZXR1cm4gdHJ1ZTsKIH0KICAgICAKLUNvbnRl
bnRSdWxlTGlzdFJlc3VsdHMgVXNlckNvbnRlbnRQcm92aWRlcjo6cHJvY2Vzc0NvbnRlbnRSdWxl
TGlzdHNGb3JMb2FkKGNvbnN0IFVSTCYgdXJsLCBSZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlLCBE
b2N1bWVudExvYWRlciYgaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKQorQ29udGVudFJ1bGVMaXN0
UmVzdWx0cyBVc2VyQ29udGVudFByb3ZpZGVyOjpwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0Zvckxv
YWQoY29uc3QgVVJMJiB1cmwsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGUgcmVzb3Vy
Y2VUeXBlLCBEb2N1bWVudExvYWRlciYgaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKQogewogICAg
IGlmICghY29udGVudEV4dGVuc2lvbnNFbmFibGVkKGluaXRpYXRpbmdEb2N1bWVudExvYWRlcikp
CiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMTAsNyArMTEwLDcgQEAgQ29udGVudFJ1bGVMaXN0
UmVzdWx0cyBVc2VyQ29udGVudFByb3ZpZAogICAgIHJldHVybiB1c2VyQ29udGVudEV4dGVuc2lv
bkJhY2tlbmQoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQodXJsLCByZXNvdXJjZVR5
cGUsIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcik7CiB9CiAKLVZlY3RvcjxDb250ZW50RXh0ZW5z
aW9uczo6QWN0aW9uc0Zyb21Db250ZW50UnVsZUxpc3Q+IFVzZXJDb250ZW50UHJvdmlkZXI6OmFj
dGlvbnNGb3JSZXNvdXJjZUxvYWQoY29uc3QgUmVzb3VyY2VMb2FkSW5mbyYgcmVzb3VyY2VMb2Fk
SW5mbywgRG9jdW1lbnRMb2FkZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcikKK1ZlY3RvcjxD
b250ZW50RXh0ZW5zaW9uczo6QWN0aW9uc0Zyb21Db250ZW50UnVsZUxpc3Q+IFVzZXJDb250ZW50
UHJvdmlkZXI6OmFjdGlvbnNGb3JSZXNvdXJjZUxvYWQoY29uc3QgQ29udGVudEV4dGVuc2lvbnM6
OlJlc291cmNlTG9hZEluZm8mIHJlc291cmNlTG9hZEluZm8sIERvY3VtZW50TG9hZGVyJiBpbml0
aWF0aW5nRG9jdW1lbnRMb2FkZXIpCiB7CiAgICAgaWYgKCFjb250ZW50RXh0ZW5zaW9uc0VuYWJs
ZWQoaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKSkKICAgICAgICAgcmV0dXJuIHsgfTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5oCShyZXZpc2lvbiAyNDQ1
MjEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDYsMTQgKzQ2LDEzIEBAIGNsYXNzIFVzZXJNZXNzYWdlSGFuZGxlckRlc2Ny
aXB0b3I7CiBjbGFzcyBVc2VyU2NyaXB0OwogY2xhc3MgVXNlclN0eWxlU2hlZXQ7CiAKLWVudW0g
Y2xhc3MgUmVzb3VyY2VUeXBlIDogdWludDE2X3Q7Ci0KLXN0cnVjdCBSZXNvdXJjZUxvYWRJbmZv
OwotCisjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKIG5hbWVzcGFjZSBDb250ZW50RXh0
ZW5zaW9ucyB7CiBjbGFzcyBDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ7Ci1zdHJ1Y3QgQWN0aW9u
OworZW51bSBjbGFzcyBSZXNvdXJjZVR5cGUgOiB1aW50MTZfdDsKK3N0cnVjdCBSZXNvdXJjZUxv
YWRJbmZvOwogfQorI2VuZGlmCiAKIGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXI7CiAKQEAgLTg5
LDggKzg4LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiAgICAg
Ly8gRklYTUU6IFRoZXNlIGRvbid0IHJlYWxseSBiZWxvbmcgaGVyZS4gVGhleSBzaG91bGQgcHJv
YmFibHkgYnVuZGxlZCB1cCBpbiB0aGUgQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kCiAgICAgLy8g
d2hpY2ggc2hvdWxkIGFsd2F5cyBleGlzdC4KLSAgICBDb250ZW50UnVsZUxpc3RSZXN1bHRzIHBy
b2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChjb25zdCBVUkwmLCBSZXNvdXJjZVR5cGUsIERv
Y3VtZW50TG9hZGVyJiBpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIpOwotICAgIFZlY3RvcjxDb250
ZW50RXh0ZW5zaW9uczo6QWN0aW9uc0Zyb21Db250ZW50UnVsZUxpc3Q+IGFjdGlvbnNGb3JSZXNv
dXJjZUxvYWQoY29uc3QgUmVzb3VyY2VMb2FkSW5mbyYsIERvY3VtZW50TG9hZGVyJiBpbml0aWF0
aW5nRG9jdW1lbnRMb2FkZXIpOworICAgIENvbnRlbnRSdWxlTGlzdFJlc3VsdHMgcHJvY2Vzc0Nv
bnRlbnRSdWxlTGlzdHNGb3JMb2FkKGNvbnN0IFVSTCYsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNv
dXJjZVR5cGUsIERvY3VtZW50TG9hZGVyJiBpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIpOworICAg
IFZlY3RvcjxDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uc0Zyb21Db250ZW50UnVsZUxpc3Q+IGFj
dGlvbnNGb3JSZXNvdXJjZUxvYWQoY29uc3QgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlTG9h
ZEluZm8mLCBEb2N1bWVudExvYWRlciYgaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGZvckVhY2hDb250ZW50RXh0ZW5zaW9uKGNvbnN0IEZ1bmN0aW9u
PHZvaWQoY29uc3QgU3RyaW5nJiwgQ29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb24m
KT4mLCBEb2N1bWVudExvYWRlciYgaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKTsKICNlbmRpZgog
CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNDQ1MjEpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxMiBAQAorMjAxOS0wNC0yMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKSBhbmQg
bmFtZXNwYWNlIENvbnRlbnRFeHRlbnNpb25zIHRvIFJlc291cmNlTG9hZEluZm8uaAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3MTY1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwOgorCiAyMDE5LTA0LTIyICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVT
U0lPTihyMjMwNjgxKSBEbyBub3QgdXNlIHN0b3JlZCBjcmVkZW50aWFscyBpZiBXS0J1bmRsZVBh
Z2VSZXNvdXJjZUxvYWRDbGllbnQuc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgcmV0dXJucyBm
YWxzZQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRl
bnNpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCShyZXZpc2lvbiAyNDQ1MjEpCisrKyBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02Nyw5ICs2Nyw5IEBAIGlubGluZSBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3Rk
Ojpvc3QKIH0KIH0KIAotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJIHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOwogCiBjbGFzcyBDb250ZW50RXh0ZW5zaW9uVGVzdCA6
IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1YmxpYzoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368300</attachid>
            <date>2019-04-25 22:20:10 -0700</date>
            <delta_ts>2019-04-26 08:53:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197165-20190425222009.patch</filename>
            <type>text/plain</type>
            <size>18633</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NDY2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE5LTA0LTI1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIEVOQUJM
RShDT05URU5UX0VYVEVOU0lPTlMpIGFuZCBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgdG8g
UmVzb3VyY2VMb2FkSW5mby5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTcxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0Lgor
CisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4gIFRoaXMgd2lsbCBqdXN0IG1ha2UgaXQg
aGFyZGVyIGZvciBwZW9wbGUgd29ya2luZyBvbiB0aGUgbG9hZGVyIHRvIG1pc3Rha2UKKyAgICAg
ICAgdGhlc2UgQ29udGVudEV4dGVuc2lvbiBzcGVjaWZpYyBzdHJ1Y3R1cmVzIGZvciBvdGhlciBz
dHJ1Y3R1cmVzIGdlbmVyYWwgdG8gbG9hZGluZy4KKyAgICAgICAgT25lIHN1Y2ggbWlzdGFrZSB3
YXMgbWFkZSBpbiByMjQ0MjQ4LgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6Y29u
bmVjdCk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNr
ZW5kLmg6CisgICAgICAgICogY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVNoZWV0Q29udGVudHM6OnN1YnJlc291cmNlc0FsbG93UmV1c2UgY29uc3Qp
OgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UpOgorICAgICAgICAqIGxvYWRlci9GcmFt
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseSk6CisgICAgICAgICogbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyOjpO
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcik6CisgICAgICAgICogbG9hZGVyL1BpbmdMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKToK
KyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OmxvYWRJbWFnZSk6CisgICAgICAgIChXZWJD
b3JlOjpQaW5nTG9hZGVyOjpzZW5kUGluZyk6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVy
OjpzZW5kVmlvbGF0aW9uUmVwb3J0KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkSW5m
by5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Jlc291cmNlVHlwZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpyZWFkUmVzb3VyY2VUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OnJlYWRMb2FkVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxv
YWRJbmZvOjppc1RoaXJkUGFydHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkSW5mbzo6Z2V0UmVzb3VyY2VGbGFncyBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogbG9hZGVyL1Jlc291cmNlTG9hZEluZm8uaDoKKyAgICAgICAgKiBsb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OndpbGxTZW5k
UmVxdWVzdEludGVybmFsKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAg
ICAgICAgKiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3VicmVzb3VyY2VMb2FkZXI6OlN1YnJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgICogcGFnZS9ET01XaW5k
b3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpvcGVuKToKKyAgICAgICAgKiBw
YWdlL1VzZXJDb250ZW50UHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlckNvbnRl
bnRQcm92aWRlcjo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKToKKyAgICAgICAgKFdl
YkNvcmU6OlVzZXJDb250ZW50UHJvdmlkZXI6OmFjdGlvbnNGb3JSZXNvdXJjZUxvYWQpOgorICAg
ICAgICAqIHBhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5oOgorCiAyMDE5LTA0LTI1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IG1vcmUg
V2luZG93cyBidWlsZHMgYWZ0ZXIgcjI0NDY1MwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAkocmV2aXNpb24g
MjQ0NjYyKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENo
YW5uZWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgV2ViU29ja2V0
Q2hhbm5lbDo6Y29ubmVjdChjb25zdCBVUkwKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05T
KQogICAgIGlmIChhdXRvKiBwYWdlID0gbV9kb2N1bWVudC0+cGFnZSgpKSB7CiAgICAgICAgIGlm
IChhdXRvKiBkb2N1bWVudExvYWRlciA9IG1fZG9jdW1lbnQtPmxvYWRlcigpKSB7Ci0gICAgICAg
ICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0Nv
bnRlbnRSdWxlTGlzdHNGb3JMb2FkKHVybCwgUmVzb3VyY2VUeXBlOjpSYXcsICpkb2N1bWVudExv
YWRlcik7CisgICAgICAgICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVudFByb3Zp
ZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKHVybCwgQ29udGVudEV4dGVuc2lv
bnM6OlJlc291cmNlVHlwZTo6UmF3LCAqZG9jdW1lbnRMb2FkZXIpOwogICAgICAgICAgICAgaWYg
KHJlc3VsdHMuc3VtbWFyeS5ibG9ja2VkTG9hZCkgewogICAgICAgICAgICAgICAgIFJlZjxXZWJT
b2NrZXRDaGFubmVsPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKICAgICAgICAgICAgICAgICBjYWxs
T25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0gewpJ
bmRleDogU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNC
YWNrZW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmgJKHJldmlzaW9uIDI0NDY2MikKKysrIFNvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOCwxMSArMzgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
RG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiAKLXN0cnVjdCBSZXNvdXJj
ZUxvYWRJbmZvOwotCiBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgewogCiBjbGFzcyBDb21w
aWxlZENvbnRlbnRFeHRlbnNpb247CitzdHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbzsKIAogLy8gVGhl
IENvbnRlbnRFeHRlbnNpb25zQmFja2VuZCBpcyB0aGUgaW50ZXJuYWwgbW9kZWwgb2YgYWxsIHRo
ZSBjb250ZW50IGV4dGVuc2lvbnMuCiAvLwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
U2hlZXRDb250ZW50cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
U2hlZXRDb250ZW50cy5jcHAJKHJldmlzaW9uIDI0NDY2MikKKysrIFNvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MTIsNyArNTEyLDcg
QEAgYm9vbCBTdHlsZVNoZWV0Q29udGVudHM6OnN1YnJlc291cmNlc0FsbAogICAgICAgICBhdXRv
KiBkb2N1bWVudExvYWRlciA9IGxvYWRlci5kb2N1bWVudExvYWRlcigpOwogICAgICAgICBpZiAo
cGFnZSAmJiBkb2N1bWVudExvYWRlcikgewogICAgICAgICAgICAgY29uc3QgYXV0byYgcmVxdWVz
dCA9IHJlc291cmNlLnJlc291cmNlUmVxdWVzdCgpOwotICAgICAgICAgICAgYXV0byByZXN1bHRz
ID0gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9y
TG9hZChyZXF1ZXN0LnVybCgpLCB0b1Jlc291cmNlVHlwZShyZXNvdXJjZS50eXBlKCkpLCAqZG9j
dW1lbnRMb2FkZXIpOworICAgICAgICAgICAgYXV0byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRl
bnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChyZXF1ZXN0LnVybCgp
LCBDb250ZW50RXh0ZW5zaW9uczo6dG9SZXNvdXJjZVR5cGUocmVzb3VyY2UudHlwZSgpKSwgKmRv
Y3VtZW50TG9hZGVyKTsKICAgICAgICAgICAgIGlmIChyZXN1bHRzLnN1bW1hcnkuYmxvY2tlZExv
YWQgfHwgcmVzdWx0cy5zdW1tYXJ5Lm1hZGVIVFRQUykKICAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V4dGVuc2lvblN0eWxl
U2hlZXRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXh0ZW5zaW9uU3R5
bGVTaGVldHMuY3BwCShyZXZpc2lvbiAyNDQ2NjIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXh0
ZW5zaW9uU3R5bGVTaGVldHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw5IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiB1
c2luZyBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnM7CisjZW5kaWYKIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiAKIEV4dGVuc2lvblN0eWxlU2hlZXRzOjpFeHRlbnNpb25TdHlsZVNoZWV0
cyhEb2N1bWVudCYgZG9jdW1lbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAJKHJldmlzaW9uIDI0NDY2MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MjEsNyArMTUyMSw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnMKIAogI2lmIEVOQUJMRShDT05U
RU5UX0VYVEVOU0lPTlMpCiAgICAgaWYgKGF1dG8gZG9jdW1lbnRMb2FkZXIgPSBtYWtlUmVmUHRy
KGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpKSkgewotICAgICAgICBpZiAocGFnZS0+
dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCh1cmws
IFJlc291cmNlVHlwZTo6TWVkaWEsICpkb2N1bWVudExvYWRlcikuc3VtbWFyeS5ibG9ja2VkTG9h
ZCkgeworICAgICAgICBpZiAocGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250
ZW50UnVsZUxpc3RzRm9yTG9hZCh1cmwsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6
Ok1lZGlhLCAqZG9jdW1lbnRMb2FkZXIpLnN1bW1hcnkuYmxvY2tlZExvYWQpIHsKICAgICAgICAg
ICAgIG1lZGlhTG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6Rm9ybWF0RXJyb3IpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAJKHJldmlzaW9uIDI0NDY2MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwNjksNyArMzA2OSw3IEBAIHVuc2lnbmVk
IGxvbmcgRnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVMKICAgICBpZiAoZXJyb3IuaXNOdWxsKCkp
IHsKICAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkgewogICAgICAgICAg
ICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdHMg
PSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JM
b2FkKG5ld1JlcXVlc3QudXJsKCksIFJlc291cmNlVHlwZTo6UmF3LCAqbV9kb2N1bWVudExvYWRl
cik7CisgICAgICAgICAgICAgICAgYXV0byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRlbnRQcm92
aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChuZXdSZXF1ZXN0LnVybCgpLCBD
b250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlOjpSYXcsICptX2RvY3VtZW50TG9hZGVyKTsK
ICAgICAgICAgICAgICAgICBib29sIGJsb2NrZWRMb2FkID0gcmVzdWx0cy5zdW1tYXJ5LmJsb2Nr
ZWRMb2FkOwogICAgICAgICAgICAgICAgIENvbnRlbnRFeHRlbnNpb25zOjphcHBseVJlc3VsdHNU
b1JlcXVlc3QoV1RGTW92ZShyZXN1bHRzKSwgcGFnZSwgbmV3UmVxdWVzdCk7CiAgICAgICAgICAg
ICAgICAgaWYgKGJsb2NrZWRMb2FkKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0
c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAJKHJldmlzaW9uIDI0NDY2MikK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2Fk
ZXI6Ok5ldHNjYXBlUGx1ZwogICAgICwgbV9jbGllbnQoJmNsaWVudCkKIHsKICNpZiBFTkFCTEUo
Q09OVEVOVF9FWFRFTlNJT05TKQotICAgIG1fcmVzb3VyY2VUeXBlID0gUmVzb3VyY2VUeXBlOjpQ
bHVnSW5TdHJlYW07CisgICAgbV9yZXNvdXJjZVR5cGUgPSBDb250ZW50RXh0ZW5zaW9uczo6UmVz
b3VyY2VUeXBlOjpQbHVnSW5TdHJlYW07CiAjZW5kaWYKIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9QaW5nTG9hZGVyLmNwcAkocmV2aXNpb24gMjQ0NjYyKQorKysgU291cmNlL1dlYkNvcmUv
bG9hZGVyL1BpbmdMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NywxOCArNTcsMTAgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgIUVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMp
CisjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKIAogLy8gUmV0dXJucyB0cnVlIGlmIHdl
IHNob3VsZCBibG9jayB0aGUgbG9hZC4KLXN0YXRpYyBpbmxpbmUgYm9vbCBwcm9jZXNzQ29udGVu
dFJ1bGVMaXN0c0ZvckxvYWQoY29uc3QgRnJhbWUmLCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJj
ZVR5cGUpCi17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi0jZWxzZQotCi0vLyBSZXR1cm5zIHRy
dWUgaWYgd2Ugc2hvdWxkIGJsb2NrIHRoZSBsb2FkLgotc3RhdGljIGJvb2wgcHJvY2Vzc0NvbnRl
bnRSdWxlTGlzdHNGb3JMb2FkKGNvbnN0IEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBSZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlKQorc3RhdGljIGJvb2wgcHJvY2Vzc0Nv
bnRlbnRSdWxlTGlzdHNGb3JMb2FkKGNvbnN0IEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZSkK
IHsKICAgICBhdXRvKiBkb2N1bWVudExvYWRlciA9IGZyYW1lLmxvYWRlcigpLmRvY3VtZW50TG9h
ZGVyKCk7CiAgICAgaWYgKCFkb2N1bWVudExvYWRlcikKQEAgLTk1LDggKzg3LDEwIEBAIHZvaWQg
UGluZ0xvYWRlcjo6bG9hZEltYWdlKEZyYW1lJiBmcmFtZSwKICAgICB9CiAKICAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwotICAgIGlmIChwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0Zv
ckxvYWQoZnJhbWUsIHJlcXVlc3QsIFJlc291cmNlVHlwZTo6SW1hZ2UpKQorI2lmIEVOQUJMRShD
T05URU5UX0VYVEVOU0lPTlMpCisgICAgaWYgKHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9h
ZChmcmFtZSwgcmVxdWVzdCwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6SW1hZ2Up
KQogICAgICAgICByZXR1cm47CisjZW5kaWYKIAogICAgIGRvY3VtZW50LmNvbnRlbnRTZWN1cml0
eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdCwgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsKIApAQCAtMTIxLDgg
KzExNSwxMCBAQCB2b2lkIFBpbmdMb2FkZXI6OnNlbmRQaW5nKEZyYW1lJiBmcmFtZSwgCiAgICAg
ICAgIHJldHVybjsKIAogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHBpbmdVUkwpOwotICAg
IGlmIChwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoZnJhbWUsIHJlcXVlc3QsIFJlc291
cmNlVHlwZTo6UmF3KSkKKyNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQorICAgIGlmIChw
cm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoZnJhbWUsIHJlcXVlc3QsIENvbnRlbnRFeHRl
bnNpb25zOjpSZXNvdXJjZVR5cGU6OlJhdykpCiAgICAgICAgIHJldHVybjsKKyNlbmRpZgogCiAg
ICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUuZG9jdW1lbnQoKTsKICAgICBkb2N1bWVudC5jb250
ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKHJlcXVl
c3QsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CkBA
IC0xNTYsOCArMTUyLDEwIEBAIHZvaWQgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChG
cmEKICAgICBBU1NFUlQoZnJhbWUuZG9jdW1lbnQoKSk7CiAKICAgICBSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdChyZXBvcnRVUkwpOwotICAgIGlmIChwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0Zvckxv
YWQoZnJhbWUsIHJlcXVlc3QsIFJlc291cmNlVHlwZTo6UmF3KSkKKyNpZiBFTkFCTEUoQ09OVEVO
VF9FWFRFTlNJT05TKQorICAgIGlmIChwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoZnJh
bWUsIHJlcXVlc3QsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OlJhdykpCiAgICAg
ICAgIHJldHVybjsKKyNlbmRpZgogCiAgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUuZG9jdW1l
bnQoKTsKICAgICBkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2Vj
dXJlUmVxdWVzdElmTmVlZGVkKHJlcXVlc3QsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1
cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkSW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZEluZm8uY3BwCShyZXZpc2lvbiAyNDQ2NjIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkSW5mby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDEwIEBA
CiAjaW5jbHVkZSAiQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgogCisjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKKwogbmFtZXNwYWNl
IFdlYkNvcmUgeworbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNpb25zIHsKIAogUmVzb3VyY2VUeXBl
IHRvUmVzb3VyY2VUeXBlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUpCiB7CkBAIC0xMjcsNCAr
MTMwLDcgQEAgUmVzb3VyY2VGbGFncyBSZXNvdXJjZUxvYWRJbmZvOjpnZXRSZXNvdQogICAgIHJl
dHVybiBmbGFnczsKIH0KIAorfSAvLyBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmgJKHJldmlzaW9u
IDI0NDY2MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI1LDEwICsyNSwxMyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVO
QUJMRShDT05URU5UX0VYVEVOU0lPTlMpCisKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgog
I2luY2x1ZGUgPHd0Zi9VUkwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIENv
bnRlbnRFeHRlbnNpb25zIHsKIAogZW51bSBjbGFzcyBSZXNvdXJjZVR5cGUgOiB1aW50MTZfdCB7
CiAgICAgSW52YWxpZCA9IDB4MDAwMCwKQEAgLTc3LDQgKzgwLDcgQEAgc3RydWN0IFJlc291cmNl
TG9hZEluZm8gewogICAgIFJlc291cmNlRmxhZ3MgZ2V0UmVzb3VyY2VGbGFncygpIGNvbnN0Owog
fTsKIAorfSAvLyBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5jcHAJKHJldmlzaW9uIDI0NDY2MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0Miw3ICszNDIsNyBAQCB2b2lkIFJlc291
cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3RJbnRlCiAKICAgICBBU1NFUlQoIW1fcmVhY2hlZFRl
cm1pbmFsU3RhdGUpOwogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgQVNTRVJU
KG1fcmVzb3VyY2VUeXBlICE9IFJlc291cmNlVHlwZTo6SW52YWxpZCk7CisgICAgQVNTRVJUKG1f
cmVzb3VyY2VUeXBlICE9IENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OkludmFsaWQp
OwogI2VuZGlmCiAKICAgICAvLyBXZSBuZWVkIGEgcmVzb3VyY2UgaWRlbnRpZmllciBmb3IgYWxs
IHJlcXVlc3RzLCBldmVuIGlmIEZyYW1lTG9hZGVyIGlzIG5ldmVyIGdvaW5nIHRvIHNlZSBpdCAo
c3VjaCBhcyB3aXRoIENPUlMgcHJlZmxpZ2h0IHJlcXVlc3RzKS4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiAyNDQ2NjIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjQ0LDcgKzI0
NCw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogcHJvdGVj
dGVkOgotICAgIFJlc291cmNlVHlwZSBtX3Jlc291cmNlVHlwZSB7IFJlc291cmNlVHlwZTo6SW52
YWxpZCB9OworICAgIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGUgbV9yZXNvdXJjZVR5
cGUgeyBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlOjpJbnZhbGlkIH07CiAjZW5kaWYK
IH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNw
cAkocmV2aXNpb24gMjQ0NjYyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNl
TG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsNyArOTgsNyBAQCBTdWJyZXNvdXJjZUxv
YWRlcjo6U3VicmVzb3VyY2VMb2FkZXIoRnJhCiAgICAgc3VicmVzb3VyY2VMb2FkZXJDb3VudGVy
LmluY3JlbWVudCgpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAg
ICBtX3Jlc291cmNlVHlwZSA9IHRvUmVzb3VyY2VUeXBlKHJlc291cmNlLnR5cGUoKSk7CisgICAg
bV9yZXNvdXJjZVR5cGUgPSBDb250ZW50RXh0ZW5zaW9uczo6dG9SZXNvdXJjZVR5cGUocmVzb3Vy
Y2UudHlwZSgpKTsKICNlbmRpZgogICAgIG1fY2FuQ3Jvc3NPcmlnaW5SZXF1ZXN0c0Fza1VzZXJG
b3JDcmVkZW50aWFscyA9IHJlc291cmNlLnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6
TWFpblJlc291cmNlIHx8IGZyYW1lLnNldHRpbmdzKCkuYWxsb3dDcm9zc09yaWdpblN1YnJlc291
cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gMjQ0
NjYyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODA5LDcgKzgwOSw3IEBAIFJlc291cmNlRXJyb3JPcjxD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWMKICAgICBpZiAoZnJhbWUoKSAmJiBmcmFtZSgpLT5wYWdl
KCkgJiYgbV9kb2N1bWVudExvYWRlcikgewogICAgICAgICBjb25zdCBhdXRvJiByZXNvdXJjZVJl
cXVlc3QgPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpOwogICAgICAgICBhdXRvKiBwYWdlID0g
ZnJhbWUoKS0+cGFnZSgpOwotICAgICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVu
dFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKHJlc291cmNlUmVxdWVz
dC51cmwoKSwgdG9SZXNvdXJjZVR5cGUodHlwZSksICptX2RvY3VtZW50TG9hZGVyKTsKKyAgICAg
ICAgYXV0byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250
ZW50UnVsZUxpc3RzRm9yTG9hZChyZXNvdXJjZVJlcXVlc3QudXJsKCksIENvbnRlbnRFeHRlbnNp
b25zOjp0b1Jlc291cmNlVHlwZSh0eXBlKSwgKm1fZG9jdW1lbnRMb2FkZXIpOwogICAgICAgICBi
b29sIGJsb2NrZWRMb2FkID0gcmVzdWx0cy5zdW1tYXJ5LmJsb2NrZWRMb2FkOwogICAgICAgICBi
b29sIG1hZGVIVFRQUyA9IHJlc3VsdHMuc3VtbWFyeS5tYWRlSFRUUFM7CiAgICAgICAgIHJlcXVl
c3QuYXBwbHlSZXN1bHRzKFdURk1vdmUocmVzdWx0cyksIHBhZ2UpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAkocmV2aXNpb24gMjQ0NjYyKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzU3LDcgKzIzNTcsNyBAQCBFeGNl
cHRpb25PcjxSZWZQdHI8V2luZG93UHJveHk+PiBET01XaW5kCiAgICAgICAgICYmIGZpcnN0RnJh
bWUtPnBhZ2UoKQogICAgICAgICAmJiBmaXJzdEZyYW1lLT5tYWluRnJhbWUoKS5kb2N1bWVudCgp
CiAgICAgICAgICYmIGZpcnN0RnJhbWUtPm1haW5GcmFtZSgpLmRvY3VtZW50KCktPmxvYWRlcigp
KSB7Ci0gICAgICAgIGF1dG8gcmVzdWx0cyA9IGZpcnN0RnJhbWUtPnBhZ2UoKS0+dXNlckNvbnRl
bnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChmaXJzdEZyYW1lLT5k
b2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmxTdHJpbmcpLCBSZXNvdXJjZVR5cGU6OlBvcHVwLCAq
Zmlyc3RGcmFtZS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+bG9hZGVyKCkpOworICAgICAgICBh
dXRvIHJlc3VsdHMgPSBmaXJzdEZyYW1lLT5wYWdlKCktPnVzZXJDb250ZW50UHJvdmlkZXIoKS5w
cm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoZmlyc3RGcmFtZS0+ZG9jdW1lbnQoKS0+Y29t
cGxldGVVUkwodXJsU3RyaW5nKSwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6UG9w
dXAsICpmaXJzdEZyYW1lLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpLT5sb2FkZXIoKSk7CiAgICAg
ICAgIGlmIChyZXN1bHRzLnN1bW1hcnkuYmxvY2tlZExvYWQpCiAgICAgICAgICAgICByZXR1cm4g
UmVmUHRyPFdpbmRvd1Byb3h5PiB7IG51bGxwdHIgfTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5jcHAJKHJldmlzaW9uIDI0NDY2MikKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMiw3ICsxMDIsNyBAQCBzdGF0aWMgYm9vbCBjb250ZW50RXh0ZW5zaW9uc0VuYWJs
ZWQoY29uCiAgICAgcmV0dXJuIHRydWU7CiB9CiAgICAgCi1Db250ZW50UnVsZUxpc3RSZXN1bHRz
IFVzZXJDb250ZW50UHJvdmlkZXI6OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChjb25z
dCBVUkwmIHVybCwgUmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZSwgRG9jdW1lbnRMb2FkZXImIGlu
aXRpYXRpbmdEb2N1bWVudExvYWRlcikKK0NvbnRlbnRSdWxlTGlzdFJlc3VsdHMgVXNlckNvbnRl
bnRQcm92aWRlcjo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKGNvbnN0IFVSTCYgdXJs
LCBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZSwgRG9jdW1lbnRM
b2FkZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcikKIHsKICAgICBpZiAoIWNvbnRlbnRFeHRl
bnNpb25zRW5hYmxlZChpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIpKQogICAgICAgICByZXR1cm4g
eyB9OwpAQCAtMTEwLDcgKzExMCw3IEBAIENvbnRlbnRSdWxlTGlzdFJlc3VsdHMgVXNlckNvbnRl
bnRQcm92aWQKICAgICByZXR1cm4gdXNlckNvbnRlbnRFeHRlbnNpb25CYWNrZW5kKCkucHJvY2Vz
c0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKHVybCwgcmVzb3VyY2VUeXBlLCBpbml0aWF0aW5nRG9j
dW1lbnRMb2FkZXIpOwogfQogCi1WZWN0b3I8Q29udGVudEV4dGVuc2lvbnM6OkFjdGlvbnNGcm9t
Q29udGVudFJ1bGVMaXN0PiBVc2VyQ29udGVudFByb3ZpZGVyOjphY3Rpb25zRm9yUmVzb3VyY2VM
b2FkKGNvbnN0IFJlc291cmNlTG9hZEluZm8mIHJlc291cmNlTG9hZEluZm8sIERvY3VtZW50TG9h
ZGVyJiBpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIpCitWZWN0b3I8Q29udGVudEV4dGVuc2lvbnM6
OkFjdGlvbnNGcm9tQ29udGVudFJ1bGVMaXN0PiBVc2VyQ29udGVudFByb3ZpZGVyOjphY3Rpb25z
Rm9yUmVzb3VyY2VMb2FkKGNvbnN0IENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZUxvYWRJbmZv
JiByZXNvdXJjZUxvYWRJbmZvLCBEb2N1bWVudExvYWRlciYgaW5pdGlhdGluZ0RvY3VtZW50TG9h
ZGVyKQogewogICAgIGlmICghY29udGVudEV4dGVuc2lvbnNFbmFibGVkKGluaXRpYXRpbmdEb2N1
bWVudExvYWRlcikpCiAgICAgICAgIHJldHVybiB7IH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1VzZXJDb250ZW50UHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1VzZXJDb250ZW50UHJvdmlkZXIuaAkocmV2aXNpb24gMjQ0NjYyKQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDE0
ICs0NiwxMyBAQCBjbGFzcyBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yOwogY2xhc3MgVXNl
clNjcmlwdDsKIGNsYXNzIFVzZXJTdHlsZVNoZWV0OwogCi1lbnVtIGNsYXNzIFJlc291cmNlVHlw
ZSA6IHVpbnQxNl90OwotCi1zdHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbzsKLQorI2lmIEVOQUJMRShD
T05URU5UX0VYVEVOU0lPTlMpCiBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgewogY2xhc3Mg
Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kOwotc3RydWN0IEFjdGlvbjsKK2VudW0gY2xhc3MgUmVz
b3VyY2VUeXBlIDogdWludDE2X3Q7CitzdHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbzsKIH0KKyNlbmRp
ZgogCiBjbGFzcyBVc2VyQ29udGVudFByb3ZpZGVyOwogCkBAIC04OSw4ICs4OCw4IEBAIHB1Ymxp
YzoKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIC8vIEZJWE1FOiBUaGVzZSBk
b24ndCByZWFsbHkgYmVsb25nIGhlcmUuIFRoZXkgc2hvdWxkIHByb2JhYmx5IGJ1bmRsZWQgdXAg
aW4gdGhlIENvbnRlbnRFeHRlbnNpb25zQmFja2VuZAogICAgIC8vIHdoaWNoIHNob3VsZCBhbHdh
eXMgZXhpc3QuCi0gICAgQ29udGVudFJ1bGVMaXN0UmVzdWx0cyBwcm9jZXNzQ29udGVudFJ1bGVM
aXN0c0ZvckxvYWQoY29uc3QgVVJMJiwgUmVzb3VyY2VUeXBlLCBEb2N1bWVudExvYWRlciYgaW5p
dGlhdGluZ0RvY3VtZW50TG9hZGVyKTsKLSAgICBWZWN0b3I8Q29udGVudEV4dGVuc2lvbnM6OkFj
dGlvbnNGcm9tQ29udGVudFJ1bGVMaXN0PiBhY3Rpb25zRm9yUmVzb3VyY2VMb2FkKGNvbnN0IFJl
c291cmNlTG9hZEluZm8mLCBEb2N1bWVudExvYWRlciYgaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVy
KTsKKyAgICBDb250ZW50UnVsZUxpc3RSZXN1bHRzIHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9y
TG9hZChjb25zdCBVUkwmLCBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlLCBEb2N1bWVu
dExvYWRlciYgaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKTsKKyAgICBWZWN0b3I8Q29udGVudEV4
dGVuc2lvbnM6OkFjdGlvbnNGcm9tQ29udGVudFJ1bGVMaXN0PiBhY3Rpb25zRm9yUmVzb3VyY2VM
b2FkKGNvbnN0IENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZUxvYWRJbmZvJiwgRG9jdW1lbnRM
b2FkZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBmb3JFYWNoQ29udGVudEV4dGVuc2lvbihjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmlu
ZyYsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uJik+JiwgRG9jdW1lbnRMb2Fk
ZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcik7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVTY29wZS5jcHAJKHJldmlzaW9uIDI0NDY2MikKKysrIFNvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw2IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNpb25z
OwogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogbmFtZXNwYWNlIFN0eWxlIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>368319</attachid>
            <date>2019-04-26 08:53:54 -0700</date>
            <delta_ts>2019-04-26 08:55:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197165-20190426085352.patch</filename>
            <type>text/plain</type>
            <size>19769</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NDY2MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDE5LTA0LTI1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIEVOQUJM
RShDT05URU5UX0VYVEVOU0lPTlMpIGFuZCBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgdG8g
UmVzb3VyY2VMb2FkSW5mby5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTcxNjUKKworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0Lgor
CisgICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvci4gIFRoaXMgd2lsbCBqdXN0IG1ha2UgaXQg
aGFyZGVyIGZvciBwZW9wbGUgd29ya2luZyBvbiB0aGUgbG9hZGVyIHRvIG1pc3Rha2UKKyAgICAg
ICAgdGhlc2UgQ29udGVudEV4dGVuc2lvbiBzcGVjaWZpYyBzdHJ1Y3R1cmVzIGZvciBvdGhlciBz
dHJ1Y3R1cmVzIGdlbmVyYWwgdG8gbG9hZGluZy4KKyAgICAgICAgT25lIHN1Y2ggbWlzdGFrZSB3
YXMgbWFkZSBpbiByMjQ0MjQ4LgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6Y29u
bmVjdCk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNr
ZW5kLmg6CisgICAgICAgICogY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVNoZWV0Q29udGVudHM6OnN1YnJlc291cmNlc0FsbG93UmV1c2UgY29uc3Qp
OgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50Ojpsb2FkUmVzb3VyY2UpOgorICAgICAgICAqIGxvYWRlci9GcmFt
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseSk6CisgICAgICAgICogbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyOjpO
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcik6CisgICAgICAgICogbG9hZGVyL1BpbmdMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKToK
KyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OmxvYWRJbWFnZSk6CisgICAgICAgIChXZWJD
b3JlOjpQaW5nTG9hZGVyOjpzZW5kUGluZyk6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVy
OjpzZW5kVmlvbGF0aW9uUmVwb3J0KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkSW5m
by5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Jlc291cmNlVHlwZSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpyZWFkUmVzb3VyY2VUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OnJlYWRMb2FkVHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxv
YWRJbmZvOjppc1RoaXJkUGFydHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkSW5mbzo6Z2V0UmVzb3VyY2VGbGFncyBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogbG9hZGVyL1Jlc291cmNlTG9hZEluZm8uaDoKKyAgICAgICAgKiBsb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OndpbGxTZW5k
UmVxdWVzdEludGVybmFsKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAg
ICAgICAgKiBsb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3VicmVzb3VyY2VMb2FkZXI6OlN1YnJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVk
UmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgICogcGFnZS9ET01XaW5k
b3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpvcGVuKToKKyAgICAgICAgKiBw
YWdlL1VzZXJDb250ZW50UHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlckNvbnRl
bnRQcm92aWRlcjo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKToKKyAgICAgICAgKFdl
YkNvcmU6OlVzZXJDb250ZW50UHJvdmlkZXI6OmFjdGlvbnNGb3JSZXNvdXJjZUxvYWQpOgorICAg
ICAgICAqIHBhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5oOgorCiAyMDE5LTA0LTI1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IG1vcmUg
V2luZG93cyBidWlsZHMgYWZ0ZXIgcjI0NDY1MwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAkocmV2aXNpb24g
MjQ0NjYyKQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENo
YW5uZWwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQgV2ViU29ja2V0
Q2hhbm5lbDo6Y29ubmVjdChjb25zdCBVUkwKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05T
KQogICAgIGlmIChhdXRvKiBwYWdlID0gbV9kb2N1bWVudC0+cGFnZSgpKSB7CiAgICAgICAgIGlm
IChhdXRvKiBkb2N1bWVudExvYWRlciA9IG1fZG9jdW1lbnQtPmxvYWRlcigpKSB7Ci0gICAgICAg
ICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0Nv
bnRlbnRSdWxlTGlzdHNGb3JMb2FkKHVybCwgUmVzb3VyY2VUeXBlOjpSYXcsICpkb2N1bWVudExv
YWRlcik7CisgICAgICAgICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVudFByb3Zp
ZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKHVybCwgQ29udGVudEV4dGVuc2lv
bnM6OlJlc291cmNlVHlwZTo6UmF3LCAqZG9jdW1lbnRMb2FkZXIpOwogICAgICAgICAgICAgaWYg
KHJlc3VsdHMuc3VtbWFyeS5ibG9ja2VkTG9hZCkgewogICAgICAgICAgICAgICAgIFJlZjxXZWJT
b2NrZXRDaGFubmVsPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsKICAgICAgICAgICAgICAgICBjYWxs
T25NYWluVGhyZWFkKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKV0gewpJ
bmRleDogU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNC
YWNrZW5kLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmgJKHJldmlzaW9uIDI0NDY2MikKKysrIFNvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zOCwxMSArMzgsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
RG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiAKLXN0cnVjdCBSZXNvdXJj
ZUxvYWRJbmZvOwotCiBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgewogCiBjbGFzcyBDb21w
aWxlZENvbnRlbnRFeHRlbnNpb247CitzdHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbzsKIAogLy8gVGhl
IENvbnRlbnRFeHRlbnNpb25zQmFja2VuZCBpcyB0aGUgaW50ZXJuYWwgbW9kZWwgb2YgYWxsIHRo
ZSBjb250ZW50IGV4dGVuc2lvbnMuCiAvLwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
U2hlZXRDb250ZW50cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
U2hlZXRDb250ZW50cy5jcHAJKHJldmlzaW9uIDI0NDY2MikKKysrIFNvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MTIsNyArNTEyLDcg
QEAgYm9vbCBTdHlsZVNoZWV0Q29udGVudHM6OnN1YnJlc291cmNlc0FsbAogICAgICAgICBhdXRv
KiBkb2N1bWVudExvYWRlciA9IGxvYWRlci5kb2N1bWVudExvYWRlcigpOwogICAgICAgICBpZiAo
cGFnZSAmJiBkb2N1bWVudExvYWRlcikgewogICAgICAgICAgICAgY29uc3QgYXV0byYgcmVxdWVz
dCA9IHJlc291cmNlLnJlc291cmNlUmVxdWVzdCgpOwotICAgICAgICAgICAgYXV0byByZXN1bHRz
ID0gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9y
TG9hZChyZXF1ZXN0LnVybCgpLCB0b1Jlc291cmNlVHlwZShyZXNvdXJjZS50eXBlKCkpLCAqZG9j
dW1lbnRMb2FkZXIpOworICAgICAgICAgICAgYXV0byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRl
bnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChyZXF1ZXN0LnVybCgp
LCBDb250ZW50RXh0ZW5zaW9uczo6dG9SZXNvdXJjZVR5cGUocmVzb3VyY2UudHlwZSgpKSwgKmRv
Y3VtZW50TG9hZGVyKTsKICAgICAgICAgICAgIGlmIChyZXN1bHRzLnN1bW1hcnkuYmxvY2tlZExv
YWQgfHwgcmVzdWx0cy5zdW1tYXJ5Lm1hZGVIVFRQUykKICAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V4dGVuc2lvblN0eWxl
U2hlZXRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXh0ZW5zaW9uU3R5
bGVTaGVldHMuY3BwCShyZXZpc2lvbiAyNDQ2NjIpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXh0
ZW5zaW9uU3R5bGVTaGVldHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0Nyw5IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCiB1
c2luZyBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnM7CisjZW5kaWYKIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiAKIEV4dGVuc2lvblN0eWxlU2hlZXRzOjpFeHRlbnNpb25TdHlsZVNoZWV0
cyhEb2N1bWVudCYgZG9jdW1lbnQpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAJKHJldmlzaW9uIDI0NDY2MikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MjEsNyArMTUyMSw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZFJlc291cmNlKGNvbnMKIAogI2lmIEVOQUJMRShDT05U
RU5UX0VYVEVOU0lPTlMpCiAgICAgaWYgKGF1dG8gZG9jdW1lbnRMb2FkZXIgPSBtYWtlUmVmUHRy
KGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpKSkgewotICAgICAgICBpZiAocGFnZS0+
dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCh1cmws
IFJlc291cmNlVHlwZTo6TWVkaWEsICpkb2N1bWVudExvYWRlcikuc3VtbWFyeS5ibG9ja2VkTG9h
ZCkgeworICAgICAgICBpZiAocGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250
ZW50UnVsZUxpc3RzRm9yTG9hZCh1cmwsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6
Ok1lZGlhLCAqZG9jdW1lbnRMb2FkZXIpLnN1bW1hcnkuYmxvY2tlZExvYWQpIHsKICAgICAgICAg
ICAgIG1lZGlhTG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6Rm9ybWF0RXJyb3IpOwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAJKHJldmlzaW9uIDI0NDY2MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwNjksNyArMzA2OSw3IEBAIHVuc2lnbmVk
IGxvbmcgRnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVMKICAgICBpZiAoZXJyb3IuaXNOdWxsKCkp
IHsKICAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkgewogICAgICAgICAg
ICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpIHsKLSAgICAgICAgICAgICAgICBhdXRvIHJlc3VsdHMg
PSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JM
b2FkKG5ld1JlcXVlc3QudXJsKCksIFJlc291cmNlVHlwZTo6UmF3LCAqbV9kb2N1bWVudExvYWRl
cik7CisgICAgICAgICAgICAgICAgYXV0byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRlbnRQcm92
aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChuZXdSZXF1ZXN0LnVybCgpLCBD
b250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlOjpSYXcsICptX2RvY3VtZW50TG9hZGVyKTsK
ICAgICAgICAgICAgICAgICBib29sIGJsb2NrZWRMb2FkID0gcmVzdWx0cy5zdW1tYXJ5LmJsb2Nr
ZWRMb2FkOwogICAgICAgICAgICAgICAgIENvbnRlbnRFeHRlbnNpb25zOjphcHBseVJlc3VsdHNU
b1JlcXVlc3QoV1RGTW92ZShyZXN1bHRzKSwgcGFnZSwgbmV3UmVxdWVzdCk7CiAgICAgICAgICAg
ICAgICAgaWYgKGJsb2NrZWRMb2FkKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0
c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAJKHJldmlzaW9uIDI0NDY2MikK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2Fk
ZXI6Ok5ldHNjYXBlUGx1ZwogICAgICwgbV9jbGllbnQoJmNsaWVudCkKIHsKICNpZiBFTkFCTEUo
Q09OVEVOVF9FWFRFTlNJT05TKQotICAgIG1fcmVzb3VyY2VUeXBlID0gUmVzb3VyY2VUeXBlOjpQ
bHVnSW5TdHJlYW07CisgICAgbV9yZXNvdXJjZVR5cGUgPSBDb250ZW50RXh0ZW5zaW9uczo6UmVz
b3VyY2VUeXBlOjpQbHVnSW5TdHJlYW07CiAjZW5kaWYKIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9QaW5nTG9hZGVyLmNwcAkocmV2aXNpb24gMjQ0NjYyKQorKysgU291cmNlL1dlYkNvcmUv
bG9hZGVyL1BpbmdMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NywxOCArNTcsMTAgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgIUVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMp
CisjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKIAogLy8gUmV0dXJucyB0cnVlIGlmIHdl
IHNob3VsZCBibG9jayB0aGUgbG9hZC4KLXN0YXRpYyBpbmxpbmUgYm9vbCBwcm9jZXNzQ29udGVu
dFJ1bGVMaXN0c0ZvckxvYWQoY29uc3QgRnJhbWUmLCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJj
ZVR5cGUpCi17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi0jZWxzZQotCi0vLyBSZXR1cm5zIHRy
dWUgaWYgd2Ugc2hvdWxkIGJsb2NrIHRoZSBsb2FkLgotc3RhdGljIGJvb2wgcHJvY2Vzc0NvbnRl
bnRSdWxlTGlzdHNGb3JMb2FkKGNvbnN0IEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBSZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlKQorc3RhdGljIGJvb2wgcHJvY2Vzc0Nv
bnRlbnRSdWxlTGlzdHNGb3JMb2FkKGNvbnN0IEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZSkK
IHsKICAgICBhdXRvKiBkb2N1bWVudExvYWRlciA9IGZyYW1lLmxvYWRlcigpLmRvY3VtZW50TG9h
ZGVyKCk7CiAgICAgaWYgKCFkb2N1bWVudExvYWRlcikKQEAgLTk1LDggKzg3LDEwIEBAIHZvaWQg
UGluZ0xvYWRlcjo6bG9hZEltYWdlKEZyYW1lJiBmcmFtZSwKICAgICB9CiAKICAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCh1cmwpOwotICAgIGlmIChwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0Zv
ckxvYWQoZnJhbWUsIHJlcXVlc3QsIFJlc291cmNlVHlwZTo6SW1hZ2UpKQorI2lmIEVOQUJMRShD
T05URU5UX0VYVEVOU0lPTlMpCisgICAgaWYgKHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9h
ZChmcmFtZSwgcmVxdWVzdCwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6SW1hZ2Up
KQogICAgICAgICByZXR1cm47CisjZW5kaWYKIAogICAgIGRvY3VtZW50LmNvbnRlbnRTZWN1cml0
eVBvbGljeSgpLT51cGdyYWRlSW5zZWN1cmVSZXF1ZXN0SWZOZWVkZWQocmVxdWVzdCwgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpJbnNlY3VyZVJlcXVlc3RUeXBlOjpMb2FkKTsKIApAQCAtMTIxLDgg
KzExNSwxMCBAQCB2b2lkIFBpbmdMb2FkZXI6OnNlbmRQaW5nKEZyYW1lJiBmcmFtZSwgCiAgICAg
ICAgIHJldHVybjsKIAogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHBpbmdVUkwpOwotICAg
IGlmIChwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoZnJhbWUsIHJlcXVlc3QsIFJlc291
cmNlVHlwZTo6UmF3KSkKKyNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQorICAgIGlmIChw
cm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoZnJhbWUsIHJlcXVlc3QsIENvbnRlbnRFeHRl
bnNpb25zOjpSZXNvdXJjZVR5cGU6OlJhdykpCiAgICAgICAgIHJldHVybjsKKyNlbmRpZgogCiAg
ICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUuZG9jdW1lbnQoKTsKICAgICBkb2N1bWVudC5jb250
ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2VjdXJlUmVxdWVzdElmTmVlZGVkKHJlcXVl
c3QsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CkBA
IC0xNTYsOCArMTUyLDEwIEBAIHZvaWQgUGluZ0xvYWRlcjo6c2VuZFZpb2xhdGlvblJlcG9ydChG
cmEKICAgICBBU1NFUlQoZnJhbWUuZG9jdW1lbnQoKSk7CiAKICAgICBSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdChyZXBvcnRVUkwpOwotICAgIGlmIChwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0Zvckxv
YWQoZnJhbWUsIHJlcXVlc3QsIFJlc291cmNlVHlwZTo6UmF3KSkKKyNpZiBFTkFCTEUoQ09OVEVO
VF9FWFRFTlNJT05TKQorICAgIGlmIChwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoZnJh
bWUsIHJlcXVlc3QsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OlJhdykpCiAgICAg
ICAgIHJldHVybjsKKyNlbmRpZgogCiAgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUuZG9jdW1l
bnQoKTsKICAgICBkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+dXBncmFkZUluc2Vj
dXJlUmVxdWVzdElmTmVlZGVkKHJlcXVlc3QsIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SW5zZWN1
cmVSZXF1ZXN0VHlwZTo6TG9hZCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkSW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZEluZm8uY3BwCShyZXZpc2lvbiAyNDQ2NjIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkSW5mby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDEwIEBA
CiAjaW5jbHVkZSAiQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgogCisjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKKwogbmFtZXNwYWNl
IFdlYkNvcmUgeworbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNpb25zIHsKIAogUmVzb3VyY2VUeXBl
IHRvUmVzb3VyY2VUeXBlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUpCiB7CkBAIC0xMjcsNCAr
MTMwLDcgQEAgUmVzb3VyY2VGbGFncyBSZXNvdXJjZUxvYWRJbmZvOjpnZXRSZXNvdQogICAgIHJl
dHVybiBmbGFnczsKIH0KIAorfSAvLyBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmgJKHJldmlzaW9u
IDI0NDY2MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI1LDEwICsyNSwxMyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2lmIEVO
QUJMRShDT05URU5UX0VYVEVOU0lPTlMpCisKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgog
I2luY2x1ZGUgPHd0Zi9VUkwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIENv
bnRlbnRFeHRlbnNpb25zIHsKIAogZW51bSBjbGFzcyBSZXNvdXJjZVR5cGUgOiB1aW50MTZfdCB7
CiAgICAgSW52YWxpZCA9IDB4MDAwMCwKQEAgLTc3LDQgKzgwLDcgQEAgc3RydWN0IFJlc291cmNl
TG9hZEluZm8gewogICAgIFJlc291cmNlRmxhZ3MgZ2V0UmVzb3VyY2VGbGFncygpIGNvbnN0Owog
fTsKIAorfSAvLyBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5jcHAJKHJldmlzaW9uIDI0NDY2MikKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0Miw3ICszNDIsNyBAQCB2b2lkIFJlc291
cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3RJbnRlCiAKICAgICBBU1NFUlQoIW1fcmVhY2hlZFRl
cm1pbmFsU3RhdGUpOwogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgQVNTRVJU
KG1fcmVzb3VyY2VUeXBlICE9IFJlc291cmNlVHlwZTo6SW52YWxpZCk7CisgICAgQVNTRVJUKG1f
cmVzb3VyY2VUeXBlICE9IENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OkludmFsaWQp
OwogI2VuZGlmCiAKICAgICAvLyBXZSBuZWVkIGEgcmVzb3VyY2UgaWRlbnRpZmllciBmb3IgYWxs
IHJlcXVlc3RzLCBldmVuIGlmIEZyYW1lTG9hZGVyIGlzIG5ldmVyIGdvaW5nIHRvIHNlZSBpdCAo
c3VjaCBhcyB3aXRoIENPUlMgcHJlZmxpZ2h0IHJlcXVlc3RzKS4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCShyZXZpc2lvbiAyNDQ2NjIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjQ0LDcgKzI0
NCw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogcHJvdGVj
dGVkOgotICAgIFJlc291cmNlVHlwZSBtX3Jlc291cmNlVHlwZSB7IFJlc291cmNlVHlwZTo6SW52
YWxpZCB9OworICAgIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGUgbV9yZXNvdXJjZVR5
cGUgeyBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlOjpJbnZhbGlkIH07CiAjZW5kaWYK
IH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNw
cAkocmV2aXNpb24gMjQ0NjYyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNl
TG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsNyArOTgsNyBAQCBTdWJyZXNvdXJjZUxv
YWRlcjo6U3VicmVzb3VyY2VMb2FkZXIoRnJhCiAgICAgc3VicmVzb3VyY2VMb2FkZXJDb3VudGVy
LmluY3JlbWVudCgpOwogI2VuZGlmCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAg
ICBtX3Jlc291cmNlVHlwZSA9IHRvUmVzb3VyY2VUeXBlKHJlc291cmNlLnR5cGUoKSk7CisgICAg
bV9yZXNvdXJjZVR5cGUgPSBDb250ZW50RXh0ZW5zaW9uczo6dG9SZXNvdXJjZVR5cGUocmVzb3Vy
Y2UudHlwZSgpKTsKICNlbmRpZgogICAgIG1fY2FuQ3Jvc3NPcmlnaW5SZXF1ZXN0c0Fza1VzZXJG
b3JDcmVkZW50aWFscyA9IHJlc291cmNlLnR5cGUoKSA9PSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6
TWFpblJlc291cmNlIHx8IGZyYW1lLnNldHRpbmdzKCkuYWxsb3dDcm9zc09yaWdpblN1YnJlc291
cmNlc1RvQXNrRm9yQ3JlZGVudGlhbHMoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gMjQ0
NjYyKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODA5LDcgKzgwOSw3IEBAIFJlc291cmNlRXJyb3JPcjxD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWMKICAgICBpZiAoZnJhbWUoKSAmJiBmcmFtZSgpLT5wYWdl
KCkgJiYgbV9kb2N1bWVudExvYWRlcikgewogICAgICAgICBjb25zdCBhdXRvJiByZXNvdXJjZVJl
cXVlc3QgPSByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpOwogICAgICAgICBhdXRvKiBwYWdlID0g
ZnJhbWUoKS0+cGFnZSgpOwotICAgICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVu
dFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKHJlc291cmNlUmVxdWVz
dC51cmwoKSwgdG9SZXNvdXJjZVR5cGUodHlwZSksICptX2RvY3VtZW50TG9hZGVyKTsKKyAgICAg
ICAgYXV0byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250
ZW50UnVsZUxpc3RzRm9yTG9hZChyZXNvdXJjZVJlcXVlc3QudXJsKCksIENvbnRlbnRFeHRlbnNp
b25zOjp0b1Jlc291cmNlVHlwZSh0eXBlKSwgKm1fZG9jdW1lbnRMb2FkZXIpOwogICAgICAgICBi
b29sIGJsb2NrZWRMb2FkID0gcmVzdWx0cy5zdW1tYXJ5LmJsb2NrZWRMb2FkOwogICAgICAgICBi
b29sIG1hZGVIVFRQUyA9IHJlc3VsdHMuc3VtbWFyeS5tYWRlSFRUUFM7CiAgICAgICAgIHJlcXVl
c3QuYXBwbHlSZXN1bHRzKFdURk1vdmUocmVzdWx0cyksIHBhZ2UpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAkocmV2aXNpb24gMjQ0NjYyKQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzU3LDcgKzIzNTcsNyBAQCBFeGNl
cHRpb25PcjxSZWZQdHI8V2luZG93UHJveHk+PiBET01XaW5kCiAgICAgICAgICYmIGZpcnN0RnJh
bWUtPnBhZ2UoKQogICAgICAgICAmJiBmaXJzdEZyYW1lLT5tYWluRnJhbWUoKS5kb2N1bWVudCgp
CiAgICAgICAgICYmIGZpcnN0RnJhbWUtPm1haW5GcmFtZSgpLmRvY3VtZW50KCktPmxvYWRlcigp
KSB7Ci0gICAgICAgIGF1dG8gcmVzdWx0cyA9IGZpcnN0RnJhbWUtPnBhZ2UoKS0+dXNlckNvbnRl
bnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChmaXJzdEZyYW1lLT5k
b2N1bWVudCgpLT5jb21wbGV0ZVVSTCh1cmxTdHJpbmcpLCBSZXNvdXJjZVR5cGU6OlBvcHVwLCAq
Zmlyc3RGcmFtZS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+bG9hZGVyKCkpOworICAgICAgICBh
dXRvIHJlc3VsdHMgPSBmaXJzdEZyYW1lLT5wYWdlKCktPnVzZXJDb250ZW50UHJvdmlkZXIoKS5w
cm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoZmlyc3RGcmFtZS0+ZG9jdW1lbnQoKS0+Y29t
cGxldGVVUkwodXJsU3RyaW5nKSwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6UG9w
dXAsICpmaXJzdEZyYW1lLT5tYWluRnJhbWUoKS5kb2N1bWVudCgpLT5sb2FkZXIoKSk7CiAgICAg
ICAgIGlmIChyZXN1bHRzLnN1bW1hcnkuYmxvY2tlZExvYWQpCiAgICAgICAgICAgICByZXR1cm4g
UmVmUHRyPFdpbmRvd1Byb3h5PiB7IG51bGxwdHIgfTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5jcHAJKHJldmlzaW9uIDI0NDY2MikKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEwMiw3ICsxMDIsNyBAQCBzdGF0aWMgYm9vbCBjb250ZW50RXh0ZW5zaW9uc0VuYWJs
ZWQoY29uCiAgICAgcmV0dXJuIHRydWU7CiB9CiAgICAgCi1Db250ZW50UnVsZUxpc3RSZXN1bHRz
IFVzZXJDb250ZW50UHJvdmlkZXI6OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChjb25z
dCBVUkwmIHVybCwgUmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZSwgRG9jdW1lbnRMb2FkZXImIGlu
aXRpYXRpbmdEb2N1bWVudExvYWRlcikKK0NvbnRlbnRSdWxlTGlzdFJlc3VsdHMgVXNlckNvbnRl
bnRQcm92aWRlcjo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKGNvbnN0IFVSTCYgdXJs
LCBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZSwgRG9jdW1lbnRM
b2FkZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcikKIHsKICAgICBpZiAoIWNvbnRlbnRFeHRl
bnNpb25zRW5hYmxlZChpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIpKQogICAgICAgICByZXR1cm4g
eyB9OwpAQCAtMTEwLDcgKzExMCw3IEBAIENvbnRlbnRSdWxlTGlzdFJlc3VsdHMgVXNlckNvbnRl
bnRQcm92aWQKICAgICByZXR1cm4gdXNlckNvbnRlbnRFeHRlbnNpb25CYWNrZW5kKCkucHJvY2Vz
c0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKHVybCwgcmVzb3VyY2VUeXBlLCBpbml0aWF0aW5nRG9j
dW1lbnRMb2FkZXIpOwogfQogCi1WZWN0b3I8Q29udGVudEV4dGVuc2lvbnM6OkFjdGlvbnNGcm9t
Q29udGVudFJ1bGVMaXN0PiBVc2VyQ29udGVudFByb3ZpZGVyOjphY3Rpb25zRm9yUmVzb3VyY2VM
b2FkKGNvbnN0IFJlc291cmNlTG9hZEluZm8mIHJlc291cmNlTG9hZEluZm8sIERvY3VtZW50TG9h
ZGVyJiBpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIpCitWZWN0b3I8Q29udGVudEV4dGVuc2lvbnM6
OkFjdGlvbnNGcm9tQ29udGVudFJ1bGVMaXN0PiBVc2VyQ29udGVudFByb3ZpZGVyOjphY3Rpb25z
Rm9yUmVzb3VyY2VMb2FkKGNvbnN0IENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZUxvYWRJbmZv
JiByZXNvdXJjZUxvYWRJbmZvLCBEb2N1bWVudExvYWRlciYgaW5pdGlhdGluZ0RvY3VtZW50TG9h
ZGVyKQogewogICAgIGlmICghY29udGVudEV4dGVuc2lvbnNFbmFibGVkKGluaXRpYXRpbmdEb2N1
bWVudExvYWRlcikpCiAgICAgICAgIHJldHVybiB7IH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1VzZXJDb250ZW50UHJvdmlkZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1VzZXJDb250ZW50UHJvdmlkZXIuaAkocmV2aXNpb24gMjQ0NjYyKQorKysgU291cmNlL1dl
YkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDE0
ICs0NiwxMyBAQCBjbGFzcyBVc2VyTWVzc2FnZUhhbmRsZXJEZXNjcmlwdG9yOwogY2xhc3MgVXNl
clNjcmlwdDsKIGNsYXNzIFVzZXJTdHlsZVNoZWV0OwogCi1lbnVtIGNsYXNzIFJlc291cmNlVHlw
ZSA6IHVpbnQxNl90OwotCi1zdHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbzsKLQorI2lmIEVOQUJMRShD
T05URU5UX0VYVEVOU0lPTlMpCiBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgewogY2xhc3Mg
Q29udGVudEV4dGVuc2lvbnNCYWNrZW5kOwotc3RydWN0IEFjdGlvbjsKK2VudW0gY2xhc3MgUmVz
b3VyY2VUeXBlIDogdWludDE2X3Q7CitzdHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbzsKIH0KKyNlbmRp
ZgogCiBjbGFzcyBVc2VyQ29udGVudFByb3ZpZGVyOwogCkBAIC04OSw4ICs4OCw4IEBAIHB1Ymxp
YzoKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogICAgIC8vIEZJWE1FOiBUaGVzZSBk
b24ndCByZWFsbHkgYmVsb25nIGhlcmUuIFRoZXkgc2hvdWxkIHByb2JhYmx5IGJ1bmRsZWQgdXAg
aW4gdGhlIENvbnRlbnRFeHRlbnNpb25zQmFja2VuZAogICAgIC8vIHdoaWNoIHNob3VsZCBhbHdh
eXMgZXhpc3QuCi0gICAgQ29udGVudFJ1bGVMaXN0UmVzdWx0cyBwcm9jZXNzQ29udGVudFJ1bGVM
aXN0c0ZvckxvYWQoY29uc3QgVVJMJiwgUmVzb3VyY2VUeXBlLCBEb2N1bWVudExvYWRlciYgaW5p
dGlhdGluZ0RvY3VtZW50TG9hZGVyKTsKLSAgICBWZWN0b3I8Q29udGVudEV4dGVuc2lvbnM6OkFj
dGlvbnNGcm9tQ29udGVudFJ1bGVMaXN0PiBhY3Rpb25zRm9yUmVzb3VyY2VMb2FkKGNvbnN0IFJl
c291cmNlTG9hZEluZm8mLCBEb2N1bWVudExvYWRlciYgaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVy
KTsKKyAgICBDb250ZW50UnVsZUxpc3RSZXN1bHRzIHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9y
TG9hZChjb25zdCBVUkwmLCBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlLCBEb2N1bWVu
dExvYWRlciYgaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyKTsKKyAgICBWZWN0b3I8Q29udGVudEV4
dGVuc2lvbnM6OkFjdGlvbnNGcm9tQ29udGVudFJ1bGVMaXN0PiBhY3Rpb25zRm9yUmVzb3VyY2VM
b2FkKGNvbnN0IENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZUxvYWRJbmZvJiwgRG9jdW1lbnRM
b2FkZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBmb3JFYWNoQ29udGVudEV4dGVuc2lvbihjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmlu
ZyYsIENvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uJik+JiwgRG9jdW1lbnRMb2Fk
ZXImIGluaXRpYXRpbmdEb2N1bWVudExvYWRlcik7CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVTY29wZS5jcHAJKHJldmlzaW9uIDI0NDY2MikKKysrIFNvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw2IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNpb25z
OwogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogbmFtZXNwYWNlIFN0eWxlIHsKSW5kZXg6
IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDI0NDY2MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEy
IEBACisyMDE5LTA0LTI1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgQWRkIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpIGFuZCBuYW1lc3Bh
Y2UgQ29udGVudEV4dGVuc2lvbnMgdG8gUmVzb3VyY2VMb2FkSW5mby5oCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTcxNjUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHA6CisKIDIwMTktMDQtMjUgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggdGVzdC13ZWJr
aXRweSBhZnRlciByMjQ0NjUzCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAJKHJldmlzaW9uIDI0NDY2MikK
KysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY3LDkgKzY3LDkgQEAgaW5saW5lIHN0ZDo6b3N0cmVhbSYg
b3BlcmF0b3I8PChzdGQ6Om9zdAogfQogfQogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQog
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM7CiAKIGNsYXNzIENvbnRlbnRF
eHRlbnNpb25UZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogcHVibGljOgo=
</data>
<flag name="commit-queue"
          id="384620"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>