<?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>29906</bug_id>
          
          <creation_ts>2009-09-29 16:40:29 -0700</creation_ts>
          <short_desc>Turn on compile time switch for WebGL, but have runtime switch default to off</short_desc>
          <delta_ts>2009-11-06 16:55:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Marrin">cmarrin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>kbr</cc>
    
    <cc>mjs</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>151100</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-09-29 16:40:29 -0700</bug_when>
    <thetext>A decision has been (nearly) made to turn on the ENABLE_3D_CANVAS switch in nightlies but to have the runtime switch (recently added in https://bugs.webkit.org/show_bug.cgi?id=29826) default to off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151133</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-09-29 18:27:39 -0700</bug_when>
    <thetext>Presumably this will involve adding a user default to control the preference so that people can enable this for testing without having to recompile?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151270</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-09-30 09:44:01 -0700</bug_when>
    <thetext>Right. There will be a flag in prefs, &quot;webGLEnabled&quot; which will be off by default and you can use &apos;default write&apos; to turn it on. We could also add a menu item to the Debug menu in Safari if we want, like we did for acceleratedCompositingEnabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151363</commentid>
    <comment_count>3</comment_count>
      <attachid>40401</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-09-30 14:51:32 -0700</bug_when>
    <thetext>Created attachment 40401
Patch

This patch also changes the name of the flag from experimentalWebGLEnabled to webGLEnabled. While it&apos;s true this feature is still in development, it&apos;s a standard in-progress so I don&apos;t want people to get the idea that this is a WebKit specific experiment. And I don&apos;t want to either have this legacy when the standard is ratified or have to change the name of the flag (which is in the plist) when it is ratified.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151629</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-10-01 11:21:45 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; This patch also changes the name of the flag from experimentalWebGLEnabled to
&gt; webGLEnabled. While it&apos;s true this feature is still in development, it&apos;s a
&gt; standard in-progress so I don&apos;t want people to get the idea that this is a
&gt; WebKit specific experiment.

Keep in mind that often for standards-track things we still use things like -webkit- prefixes on CSS properties in case the standard changes after we ship an initial version. The name of the flag is not important, but shipping an early version of something that becomes standard with some changes later can cause compatibility problems down the road, so is something we should think about.

In that sense this is &quot;experimental&quot; as all implementations before a standard is relatively firm and stable are.

I don&apos;t object to your decision, but wanted to make the point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151739</commentid>
    <comment_count>5</comment_count>
      <attachid>40486</attachid>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-10-01 17:17:57 -0700</bug_when>
    <thetext>Created attachment 40486
Replacement patch fixes LayoutTests

More extensive layout tests revealed some problems, which revealed a bug in WebGL. All fixed now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151740</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Marrin">cmarrin</who>
    <bug_when>2009-10-01 17:25:36 -0700</bug_when>
    <thetext>Sending        LayoutTests/ChangeLog
Sending        LayoutTests/fast/canvas/webgl/gl-get-calls.html
Sending        LayoutTests/fast/dom/Window/window-properties.html
Sending        LayoutTests/fast/dom/script-tests/constructed-objects-prototypes.js
Sending        LayoutTests/fast/dom/script-tests/prototype-inheritance-2.js
Sending        LayoutTests/fast/dom/script-tests/prototype-inheritance.js
Sending        LayoutTests/fast/js/script-tests/global-constructors.js
Sending        WebCore/ChangeLog
Sending        WebCore/Configurations/FeatureDefines.xcconfig
Sending        WebCore/WebCore.base.exp
Sending        WebCore/bindings/js/JSCanvasArrayBufferConstructor.h
Sending        WebCore/html/HTMLCanvasElement.cpp
Sending        WebCore/html/canvas/CanvasArray.cpp
Sending        WebCore/html/canvas/CanvasByteArray.cpp
Sending        WebCore/html/canvas/CanvasFloatArray.cpp
Sending        WebCore/html/canvas/CanvasIntArray.cpp
Sending        WebCore/html/canvas/CanvasShortArray.cpp
Sending        WebCore/html/canvas/CanvasUnsignedByteArray.cpp
Sending        WebCore/html/canvas/CanvasUnsignedIntArray.cpp
Sending        WebCore/html/canvas/CanvasUnsignedShortArray.cpp
Sending        WebCore/page/Settings.cpp
Sending        WebCore/page/Settings.h
Sending        WebKit/mac/ChangeLog
Sending        WebKit/mac/Configurations/FeatureDefines.xcconfig
Sending        WebKit/mac/WebView/WebPreferenceKeysPrivate.h
Sending        WebKit/mac/WebView/WebPreferences.mm
Sending        WebKit/mac/WebView/WebPreferencesPrivate.h
Sending        WebKit/mac/WebView/WebView.mm
Sending        WebKitTools/ChangeLog
Sending        WebKitTools/Scripts/build-webkit
Transmitting file data ..............................
Committed revision 49006.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40401</attachid>
            <date>2009-09-30 14:51:32 -0700</date>
            <delta_ts>2009-10-01 17:17:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>29906.patch</filename>
            <type>text/plain</type>
            <size>10720</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODk0OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDktMDktMzAgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFR1
cm4gb24gRU5BQkxFXzNEX0NBTlZBUyBpbiBUT1QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI5OTA2CisKKyAgICAgICAgVGhpcyBhbHNvIGNoYW5nZXMg
dGhlIGZsYWcgbmFtZSBmcm9tIGV4cGVyaW1lbnRhbFdlYkdMRW5hYmxlZCB0byB3ZWJHTEVuYWJs
ZWQuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoK
KyAgICAgICAgKiBXZWJDb3JlLmJhc2UuZXhwOgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENhbnZhc0VsZW1lbnQ6OmdldENvbnRl
eHQpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0
dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRXZWJHTEVu
YWJsZWQpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
dHRpbmdzOjp3ZWJHTEVuYWJsZWQpOgorCiAyMDA5LTA5LTMwICBEYW4gQmVybnN0ZWluICA8bWl0
ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IFdl
YkNvcmUvV2ViQ29yZS5iYXNlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuYmFz
ZS5leHAJKHJldmlzaW9uIDQ4OTExKQorKysgV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MzYsNyArNjM2LDcgQEAgX19aTjdXZWJDb3JlOFNldHRpbmdzMjVzZXRT
aG91bGRQcmludEJhYwogX19aTjdXZWJDb3JlOFNldHRpbmdzMjVzZXRVc2VyU3R5bGVTaGVldExv
Y2F0aW9uRVJLTlNfNEtVUkxFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyNnNldERlZmF1bHRUZXh0
RW5jb2RpbmdOYW1lRVJLTlNfNlN0cmluZ0UKIF9fWk43V2ViQ29yZThTZXR0aW5nczI2c2V0TmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3NFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRFeHBlcmlt
ZW50YWxXZWJHTEVuYWJsZWRFYgorX19aTjdXZWJDb3JlOFNldHRpbmdzMTVzZXRXZWJHTEVuYWJs
ZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRGVFBEaXJlY3RvcnlUZW1wbGF0ZVBhdGhF
UktOU182U3RyaW5nRQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRMb2Fkc0ltYWdlc0F1dG9t
YXRpY2FsbHlFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRMb2NhbFN0b3JhZ2VEYXRhYmFz
ZVBhdGhFUktOU182U3RyaW5nRQpJbmRleDogV2ViQ29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0Zl
YXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiA0ODkxMSkKKysrIFdlYkNvcmUvQ29uZmln
dXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcg
KzI4LDcgQEAKIAogLy8gU2V0IGFueSBFTkFCTEVfRkVBVFVSRV9OQU1FIG1hY3JvIHRvIGFuIGVt
cHR5IHN0cmluZyB0byBkaXNhYmxlIHRoYXQgZmVhdHVyZS4KIAotRU5BQkxFXzNEX0NBTlZBUyA9
IDsKK0VOQUJMRV8zRF9DQU5WQVMgPSBFTkFCTEVfM0RfQ0FOVkFTOwogCiBFTkFCTEVfM0RfUkVO
REVSSU5HID0gJChFTkFCTEVfM0RfUkVOREVSSU5HXyQoTUFDX09TX1hfVkVSU0lPTl9NQUpPUikp
OwogRU5BQkxFXzNEX1JFTkRFUklOR18xMDUwID0gRU5BQkxFXzNEX1JFTkRFUklORzsKSW5kZXg6
IFdlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkocmV2aXNpb24gNDg5MTEpCisrKyBXZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjYsNyArMTY2
LDcgQEAgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogSFRNTENhbnZhc0VsZW1lbgogICAgIH0KICNp
ZiBFTkFCTEUoM0RfQ0FOVkFTKSAgICAKICAgICBTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVu
dCgpLT5zZXR0aW5ncygpOwotICAgIGlmIChzZXR0aW5ncyAmJiBzZXR0aW5ncy0+ZXhwZXJpbWVu
dGFsV2ViR0xFbmFibGVkKCkpIHsKKyAgICBpZiAoc2V0dGluZ3MgJiYgc2V0dGluZ3MtPndlYkdM
RW5hYmxlZCgpKSB7CiAgICAgICAgIGlmICgodHlwZSA9PSAid2Via2l0LTNkIikgfHwKICAgICAg
ICAgICAgICh0eXBlID09ICJHTCIpKSB7CiAgICAgICAgICAgICBpZiAobV9jb250ZXh0ICYmICFt
X2NvbnRleHQtPmlzM2QoKSkKSW5kZXg6IFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAkocmV2aXNpb24gNDg5MTEpCisrKyBX
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNyArMTE3LDcg
QEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX2FjY2VsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkKHRydWUpCiAgICAgLCBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNF
bmFibGVkKGZhbHNlKQogICAgICwgbV9wbHVnaW5IYWx0ZXJFbmFibGVkKGZhbHNlKQotICAgICwg
bV9leHBlcmltZW50YWxXZWJHTEVuYWJsZWQoZmFsc2UpCisgICAgLCBtX3dlYkdMRW5hYmxlZChm
YWxzZSkKICNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCiAgICAgLCBtX2V4cGVyaW1lbnRhbFdlYlNv
Y2tldHNFbmFibGVkKGZhbHNlKQogI2VuZGlmCkBAIC01MzIsOSArNTMyLDkgQEAgdm9pZCBTZXR0
aW5nczo6c2V0U2hvdWxkVXNlSGlnaFJlc29sdXRpbwogfQogI2VuZGlmCiAKLXZvaWQgU2V0dGlu
Z3M6OnNldEV4cGVyaW1lbnRhbFdlYkdMRW5hYmxlZChib29sIGVuYWJsZWQpCit2b2lkIFNldHRp
bmdzOjpzZXRXZWJHTEVuYWJsZWQoYm9vbCBlbmFibGVkKQogewotICAgIG1fZXhwZXJpbWVudGFs
V2ViR0xFbmFibGVkID0gZW5hYmxlZDsKKyAgICBtX3dlYkdMRW5hYmxlZCA9IGVuYWJsZWQ7CiB9
CiAKICNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCkluZGV4OiBXZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkocmV2aXNpb24gNDg5MTEp
CisrKyBXZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtMjY3LDEwICsy
NjcsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0UGx1Z2luQWxsb3dl
ZFJ1blRpbWUodW5zaWduZWQpOwogICAgICAgICB1bnNpZ25lZCBwbHVnaW5BbGxvd2VkUnVuVGlt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGx1Z2luQWxsb3dlZFJ1blRpbWU7IH0KIAotICAgICAgICAv
LyBUaGlzIHJ1bi10aW1lIGZsYWcgaXMgb25seSB0ZW1wb3Jhcnkgd2hpbGUgdGhlIFdlYkdMCi0g
ICAgICAgIC8vIHNwZWNpZmljYXRpb24gaXMgYmVpbmcgZGV2ZWxvcGVkLgotICAgICAgICB2b2lk
IHNldEV4cGVyaW1lbnRhbFdlYkdMRW5hYmxlZChib29sKTsKLSAgICAgICAgYm9vbCBleHBlcmlt
ZW50YWxXZWJHTEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2V4cGVyaW1lbnRhbFdlYkdMRW5h
YmxlZDsgfQorICAgICAgICB2b2lkIHNldFdlYkdMRW5hYmxlZChib29sKTsKKyAgICAgICAgYm9v
bCB3ZWJHTEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3dlYkdMRW5hYmxlZDsgfQogCiAjaWYg
RU5BQkxFKFdFQl9TT0NLRVRTKQogICAgICAgICB2b2lkIHNldEV4cGVyaW1lbnRhbFdlYlNvY2tl
dHNFbmFibGVkKGJvb2wpOwpAQCAtMzQ0LDcgKzM0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkIDogMTsKICAgICAg
ICAgYm9vbCBtX2V4cGVyaW1lbnRhbE5vdGlmaWNhdGlvbnNFbmFibGVkIDogMTsKICAgICAgICAg
Ym9vbCBtX3BsdWdpbkhhbHRlckVuYWJsZWQgOiAxOwotICAgICAgICBib29sIG1fZXhwZXJpbWVu
dGFsV2ViR0xFbmFibGVkIDogMTsKKyAgICAgICAgYm9vbCBtX3dlYkdMRW5hYmxlZCA6IDE7CiAK
ICNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCiAgICAgICAgIGJvb2wgbV9leHBlcmltZW50YWxXZWJT
b2NrZXRzRW5hYmxlZCA6IDE7CkluZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gNDg5NDgpCisrKyBXZWJLaXQvbWFj
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDA5LTA5LTMwICBD
aHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUdXJuIG9uIEVOQUJMRV8zRF9DQU5WQVMgaW4gVE9U
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTkwNgor
CisgICAgICAgIFRoaXMgYWxzbyBjaGFuZ2VzIHRoZSBmbGFnIG5hbWUgZnJvbSBleHBlcmltZW50
YWxXZWJHTEVuYWJsZWQgdG8gd2ViR0xFbmFibGVkLgorCisgICAgICAgICogQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJl
bmNlS2V5c1ByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgor
ICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6CisgICAgICAgICgtW1dlYlBy
ZWZlcmVuY2VzIHdlYkdMRW5hYmxlZF0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRX
ZWJHTEVuYWJsZWQ6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUu
aDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3By
ZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbjpdKToKKwogMjAwOS0wOS0zMCAgU2FtIFdlaW5p
ZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4u
CkluZGV4OiBXZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcJKHJldmlzaW9uIDQ4OTExKQorKysgV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQAog
CiAvLyBTZXQgYW55IEVOQUJMRV9GRUFUVVJFX05BTUUgbWFjcm8gdG8gYW4gZW1wdHkgc3RyaW5n
IHRvIGRpc2FibGUgdGhhdCBmZWF0dXJlLgogCi1FTkFCTEVfM0RfQ0FOVkFTID0gOworRU5BQkxF
XzNEX0NBTlZBUyA9IEVOQUJMRV8zRF9DQU5WQVM7CiAKIEVOQUJMRV8zRF9SRU5ERVJJTkcgPSAk
KEVOQUJMRV8zRF9SRU5ERVJJTkdfJChNQUNfT1NfWF9WRVJTSU9OX01BSk9SKSk7CiBFTkFCTEVf
M0RfUkVOREVSSU5HXzEwNTAgPSBFTkFCTEVfM0RfUkVOREVSSU5HOwpJbmRleDogV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAkocmV2aXNpb24gNDg5MTEp
CisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTg2LDYgKzg2LDcgQEAKICNkZWZpbmUgV2ViS2l0Wm9vbXNUZXh0T25seVBy
ZWZlcmVuY2VLZXkgQCJXZWJLaXRab29tc1RleHRPbmx5IgogI2RlZmluZSBXZWJLaXRYU1NBdWRp
dG9yRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRYU1NBdWRpdG9yRW5hYmxlZCIKICNkZWZp
bmUgV2ViS2l0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQiCisjZGVmaW5lIFdlYktpdFdlYkdMRW5h
YmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRXZWJHTEVuYWJsZWQiCiAKIC8vIFRoZXNlIGFyZSBw
cml2YXRlIGJvdGggYmVjYXVzZSBjYWxsZXJzIHNob3VsZCBiZSB1c2luZyB0aGUgY292ZXIgbWV0
aG9kcyBhbmQgYmVjYXVzZSB0aGUKIC8vIGNvdmVyIG1ldGhvZHMgdGhlbXNlbHZlcyBhcmUgcHJp
dmF0ZS4KSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0JKHJldmlzaW9uIDQ4
OTExKQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0zNTIsNiArMzUyLDcgQEAgc3RhdGljIFdlYkNhY2hlTW9kZWwgY2FjaGVNb2RlbEZv
ck1haW5CdQogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdFpv
b21zVGV4dE9ubHlQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJv
b2w6WUVTXSwgIFdlYktpdFhTU0F1ZGl0b3JFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAg
W05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZFByZWZlcmVuY2VLZXksCisgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9v
bDpOT10sICAgV2ViS2l0V2ViR0xFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgbmlsXTsK
IAogICAgIC8vIFRoaXMgdmFsdWUgc2hvdWxkbid0IGV2ZXIgY2hhbmdlLCB3aGljaCBpcyBhc3N1
bWVkIGluIHRoZSBpbml0aWFsaXphdGlvbiBvZiBXZWJLaXRQREZEaXNwbGF5TW9kZVByZWZlcmVu
Y2VLZXkgYWJvdmUKQEAgLTExNjAsNiArMTE2MSwxNiBAQCBzdGF0aWMgTlNTdHJpbmcgKmNsYXNz
SUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTplbmFibGVkIGZvcktl
eTpXZWJLaXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQog
CistIChCT09MKXdlYkdMRW5hYmxlZAoreworICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9y
S2V5OldlYktpdFdlYkdMRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCistICh2b2lkKXNldFdl
YkdMRW5hYmxlZDooQk9PTCllbmFibGVkCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTplbmFi
bGVkIGZvcktleTpXZWJLaXRXZWJHTEVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKwogLSAodm9p
ZClkaWRSZW1vdmVGcm9tV2ViVmlldwogewogICAgIEFTU0VSVChfcHJpdmF0ZS0+bnVtV2ViVmll
d3MpOwpJbmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAko
cmV2aXNpb24gNDg5MTEpCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2
YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OSw2ICsxNDksOSBAQCBleHRlcm4gTlNTdHJpbmcg
KldlYlByZWZlcmVuY2VzUmVtb3ZlZE5vCiAtIChCT09MKWFjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkOwogLSAodm9pZClzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDooQk9PTCll
bmFibGVkOwogCistIChCT09MKXdlYkdMRW5hYmxlZDsKKy0gKHZvaWQpc2V0V2ViR0xFbmFibGVk
OihCT09MKWVuYWJsZWQ7CisKIC8vIE90aGVyIHByaXZhdGUgbWV0aG9kcwogLSAodm9pZClfcG9z
dFByZWZlcmVuY2VzQ2hhbmdlc05vdGlmaWNhdGlvbjsKICsgKFdlYlByZWZlcmVuY2VzICopX2dl
dEluc3RhbmNlRm9ySWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyOwpJbmRleDogV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0JKHJldmlzaW9uIDQ4OTExKQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTEzMTMsOSArMTMxMyw3IEBAIHN0YXRpYyBib29s
IGZhc3REb2N1bWVudFRlYXJkb3duRW5hYmxlZCgKICAgICBzZXR0aW5ncy0+c2V0WFNTQXVkaXRv
ckVuYWJsZWQoW3ByZWZlcmVuY2VzIGlzWFNTQXVkaXRvckVuYWJsZWRdKTsKICAgICBzZXR0aW5n
cy0+c2V0RW5mb3JjZUNTU01JTUVUeXBlSW5TdHJpY3RNb2RlKCFXS0FwcFZlcnNpb25DaGVja0xl
c3NUaGFuKEAiY29tLmFwcGxlLmlXZWIiLCAtMSwgMi4xKSk7CiAgICAgc2V0dGluZ3MtPnNldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKFtwcmVmZXJlbmNlcyBhY2NlbGVyYXRlZENvbXBv
c2l0aW5nRW5hYmxlZF0pOwotI2lmIEVOQUJMRSgzRF9DQU5WQVMpCi0gICAgc2V0dGluZ3MtPnNl
dEV4cGVyaW1lbnRhbFdlYkdMRW5hYmxlZCh0cnVlKTsKLSNlbmRpZiAgLy8gRU5BQkxFKDNEX0NB
TlZBUykKKyAgICBzZXR0aW5ncy0+c2V0V2ViR0xFbmFibGVkKFtwcmVmZXJlbmNlcyB3ZWJHTEVu
YWJsZWRdKTsKIH0KIAogc3RhdGljIGlubGluZSBJTVAgZ2V0TWV0aG9kKGlkIG8sIFNFTCBzKQpJ
bmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0No
YW5nZUxvZwkocmV2aXNpb24gNDg5NDgpCisrKyBXZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAwOS0wOS0zMCAgQ2hyaXMgTWFycmluICA8Y21h
cnJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVHVybiBvbiBFTkFCTEVfM0RfQ0FOVkFTIGluIFRPVAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjk5MDYKKworICAgICAgICAqIFNjcmlw
dHMvYnVpbGQtd2Via2l0OgorCiAyMDA5LTA5LTMwICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IFdlYktpdFRv
b2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1Njcmlw
dHMvYnVpbGQtd2Via2l0CShyZXZpc2lvbiA0ODkxMSkKKysrIFdlYktpdFRvb2xzL1NjcmlwdHMv
YnVpbGQtd2Via2l0CSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIG15ICgkdGhyZWVE
Q2FudmFzU3VwcG9ydCwgJHRocmVlRFJlbmRlcmkKIAogbXkgQGZlYXR1cmVzID0gKAogICAgIHsg
b3B0aW9uID0+ICIzZC1jYW52YXMiLCBkZXNjID0+ICJUb2dnbGUgM0QgY2FudmFzIHN1cHBvcnQi
LAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfM0RfQ0FOVkFTIiwgZGVmYXVsdCA9PiAwLCB2YWx1
ZSA9PiBcJHRocmVlRENhbnZhc1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFXzNE
X0NBTlZBUyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVNYWNXZWJLaXQoKSAmJiAhaXNUaWdlcigpKSwg
dmFsdWUgPT4gXCR0aHJlZURDYW52YXNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiM2Qt
cmVuZGVyaW5nIiwgZGVzYyA9PiAiVG9nZ2xlIDNEIHJlbmRlcmluZyBzdXBwb3J0IiwKICAgICAg
IGRlZmluZSA9PiAiRU5BQkxFXzNEX1JFTkRFUklORyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVNYWNX
ZWJLaXQoKSAmJiAhaXNUaWdlcigpKSwgdmFsdWUgPT4gXCR0aHJlZURSZW5kZXJpbmdTdXBwb3J0
IH0sCg==
</data>
<flag name="review"
          id="21618"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40486</attachid>
            <date>2009-10-01 17:17:57 -0700</date>
            <delta_ts>2009-10-01 17:20:18 -0700</delta_ts>
            <desc>Replacement patch fixes LayoutTests</desc>
            <filename>29906.patch</filename>
            <type>text/plain</type>
            <size>36080</size>
            <attacher name="Chris Marrin">cmarrin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTAwNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDAgQEAKKzIwMDktMTAtMDEgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFR1
cm4gb24gRU5BQkxFXzNEX0NBTlZBUyBpbiBUT1QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI5OTA2CisKKyAgICAgICAgRml4ZWQgYSBidWcgZm91bmQg
d2hlbiBydW5uaW5nIHRlc3RzIHdpdGggZmxhZyBvbgorCisgICAgICAgICogQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CisgICAgICAgICogV2ViQ29yZS5iYXNlLmV4cDoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NhbnZhc0FycmF5QnVmZmVyQ29uc3RydWN0b3IuaDoK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVjdCk6CisgICAgICAgICogaHRtbC9IVE1MQ2FudmFz
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6Z2V0Q29u
dGV4dCk6CisgICAgICAgICogaHRtbC9jYW52YXMvQ2FudmFzQXJyYXkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FudmFzQXJyYXk6OkNhbnZhc0FycmF5KToKKyAgICAgICAgKiBodG1sL2NhbnZh
cy9DYW52YXNCeXRlQXJyYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FudmFzQnl0ZUFycmF5
OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc0Zsb2F0QXJyYXkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FudmFzRmxvYXRBcnJheTo6Y3JlYXRlKToKKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9DYW52YXNJbnRBcnJheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNJ
bnRBcnJheTo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNTaG9ydEFycmF5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZhc1Nob3J0QXJyYXk6OmNyZWF0ZSk6CisgICAg
ICAgICogaHRtbC9jYW52YXMvQ2FudmFzVW5zaWduZWRCeXRlQXJyYXkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FudmFzVW5zaWduZWRCeXRlQXJyYXk6OmNyZWF0ZSk6CisgICAgICAgICogaHRt
bC9jYW52YXMvQ2FudmFzVW5zaWduZWRJbnRBcnJheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YW52YXNVbnNpZ25lZEludEFycmF5OjpjcmVhdGUpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0Nh
bnZhc1Vuc2lnbmVkU2hvcnRBcnJheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNVbnNp
Z25lZFNob3J0QXJyYXk6OmNyZWF0ZSk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6U2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6
U2V0dGluZ3M6OnNldFdlYkdMRW5hYmxlZCk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgor
ICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OndlYkdMRW5hYmxlZCk6CisKIDIwMDktMTAtMDEg
IEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
biBCZXJuc3RlaW4uCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCShyZXZpc2lvbiA0ODk4NSkKKysrIFdlYkNvcmUv
V2ViQ29yZS5iYXNlLmV4cAkod29ya2luZyBjb3B5KQpAQCAtNjM2LDcgKzYzNiw3IEBAIF9fWk43
V2ViQ29yZThTZXR0aW5nczI1c2V0U2hvdWxkUHJpbnRCYWMKIF9fWk43V2ViQ29yZThTZXR0aW5n
czI1c2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbkVSS05TXzRLVVJMRQogX19aTjdXZWJDb3JlOFNl
dHRpbmdzMjZzZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZUVSS05TXzZTdHJpbmdFCiBfX1pON1dl
YkNvcmU4U2V0dGluZ3MyNnNldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzRWIKLV9fWk43V2ViQ29y
ZThTZXR0aW5nczI3c2V0RXhwZXJpbWVudGFsV2ViR0xFbmFibGVkRWIKK19fWk43V2ViQ29yZThT
ZXR0aW5nczE1c2V0V2ViR0xFbmFibGVkRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI3c2V0RlRQ
RGlyZWN0b3J5VGVtcGxhdGVQYXRoRVJLTlNfNlN0cmluZ0UKIF9fWk43V2ViQ29yZThTZXR0aW5n
czI3c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5RWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczI3
c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoRVJLTlNfNlN0cmluZ0UKSW5kZXg6IFdlYkNvcmUv
Q29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkocmV2aXNpb24gNDg5
ODUpCisrKyBXZWJDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKIC8vIFNldCBhbnkgRU5BQkxFX0ZFQVRV
UkVfTkFNRSBtYWNybyB0byBhbiBlbXB0eSBzdHJpbmcgdG8gZGlzYWJsZSB0aGF0IGZlYXR1cmUu
CiAKLUVOQUJMRV8zRF9DQU5WQVMgPSA7CitFTkFCTEVfM0RfQ0FOVkFTID0gRU5BQkxFXzNEX0NB
TlZBUzsKIAogRU5BQkxFXzNEX1JFTkRFUklORyA9ICQoRU5BQkxFXzNEX1JFTkRFUklOR18kKE1B
Q19PU19YX1ZFUlNJT05fTUFKT1IpKTsKIEVOQUJMRV8zRF9SRU5ERVJJTkdfMTA1MCA9IEVOQUJM
RV8zRF9SRU5ERVJJTkc7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ2FudmFzQXJyYXlC
dWZmZXJDb25zdHJ1Y3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlND
YW52YXNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yLmgJKHJldmlzaW9uIDQ4OTg1KQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NhbnZhc0FycmF5QnVmZmVyQ29uc3RydWN0b3IuaAkod29ya2luZyBj
b3B5KQpAQCAtNDcsOCArNDcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vCiAg
ICAgICAgIFJlZlB0cjxDPiBhcnJheU9iamVjdDsKICAgICAgICAgCisgICAgICAgIC8vIEZvciB0
aGUgMCBhcmdzIGNhc2UsIGp1c3QgY3JlYXRlIGFuIG9iamVjdCB3aXRob3V0IGEgYnVmZmVyIAog
ICAgICAgICBpZiAoYXJncy5zaXplKCkgPCAxKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAg
ICAgICAgICByZXR1cm4gQzo6Y3JlYXRlKDAsIDAsIDApOwogICAgICAgICAKICAgICAgICAgaWYg
KGFyZ3MuYXQoMCkuaXNPYmplY3QoKSkgewogICAgICAgICAgICAgUmVmUHRyPENhbnZhc0FycmF5
QnVmZmVyPiBidWZmZXIgPSB0b0NhbnZhc0FycmF5QnVmZmVyKGFyZ3MuYXQoMCkpOwpJbmRleDog
V2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCShyZXZpc2lvbiA0ODk4NSkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Niw3ICsxNjYs
NyBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0KiBIVE1MQ2FudmFzRWxlbWVuCiAgICAgfQogI2lm
IEVOQUJMRSgzRF9DQU5WQVMpICAgIAogICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50
KCktPnNldHRpbmdzKCk7Ci0gICAgaWYgKHNldHRpbmdzICYmIHNldHRpbmdzLT5leHBlcmltZW50
YWxXZWJHTEVuYWJsZWQoKSkgeworICAgIGlmIChzZXR0aW5ncyAmJiBzZXR0aW5ncy0+d2ViR0xF
bmFibGVkKCkpIHsKICAgICAgICAgaWYgKCh0eXBlID09ICJ3ZWJraXQtM2QiKSB8fAogICAgICAg
ICAgICAgKHR5cGUgPT0gIkdMIikpIHsKICAgICAgICAgICAgIGlmIChtX2NvbnRleHQgJiYgIW1f
Y29udGV4dC0+aXMzZCgpKQpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNBcnJheS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNBcnJheS5jcHAJKHJl
dmlzaW9uIDQ4OTg1KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNBcnJheS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICA6IG1fb2Zmc2V0KG9mZnNldCkKICAgICAgICAgLCBtX2J1ZmZlcihidWZmZXIpCiAgICAgewot
ICAgICAgICBtX2Jhc2VBZGRyZXNzID0gc3RhdGljX2Nhc3Q8Y2hhcio+KG1fYnVmZmVyLT5kYXRh
KCkpICsgbV9vZmZzZXQ7CisgICAgICAgIG1fYmFzZUFkZHJlc3MgPSBidWZmZXIgPyAoc3RhdGlj
X2Nhc3Q8Y2hhcio+KG1fYnVmZmVyLT5kYXRhKCkpICsgbV9vZmZzZXQpIDogMDsKICAgICB9CiAK
ICAgICBDYW52YXNBcnJheTo6fkNhbnZhc0FycmF5KCkKSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzQnl0ZUFycmF5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFz
L0NhbnZhc0J5dGVBcnJheS5jcHAJKHJldmlzaW9uIDQ4OTg1KQorKysgV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNCeXRlQXJyYXkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCwxMiArNDgsMTMg
QEAgUGFzc1JlZlB0cjxDYW52YXNCeXRlQXJyYXk+IENhbnZhc0J5dGVBcgogCiBQYXNzUmVmUHRy
PENhbnZhc0J5dGVBcnJheT4gQ2FudmFzQnl0ZUFycmF5OjpjcmVhdGUoUGFzc1JlZlB0cjxDYW52
YXNBcnJheUJ1ZmZlcj4gYnVmZmVyLCBpbnQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCiB7Ci0g
ICAgLy8gQ2hlY2sgdG8gbWFrZSBzdXJlIHdlIGFyZSB0YWxraW5nIGFib3V0IGEgdmFsaWQgcmVn
aW9uIG9mCi0gICAgLy8gdGhlIGdpdmVuIENhbnZhc0FycmF5QnVmZmVyJ3Mgc3RvcmFnZS4KLSAg
ICBpZiAoKG9mZnNldCArIChsZW5ndGggKiBzaXplb2Yoc2lnbmVkIGNoYXIpKSkgPiBidWZmZXIt
PmJ5dGVMZW5ndGgoKSkgewotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBpZiAoYnVmZmVyKSB7
CisgICAgICAgIC8vIENoZWNrIHRvIG1ha2Ugc3VyZSB3ZSBhcmUgdGFsa2luZyBhYm91dCBhIHZh
bGlkIHJlZ2lvbiBvZgorICAgICAgICAvLyB0aGUgZ2l2ZW4gQ2FudmFzQXJyYXlCdWZmZXIncyBz
dG9yYWdlLgorICAgICAgICBpZiAoKG9mZnNldCArIChsZW5ndGggKiBzaXplb2Yoc2lnbmVkIGNo
YXIpKSkgPiBidWZmZXItPmJ5dGVMZW5ndGgoKSkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOwog
ICAgIH0KLQorICAgIAogICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2FudmFzQnl0ZUFycmF5KGJ1
ZmZlciwgb2Zmc2V0LCBsZW5ndGgpKTsKIH0KIApJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNGbG9hdEFycmF5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc0Zsb2F0QXJyYXkuY3BwCShyZXZpc2lvbiA0ODk4NSkKKysrIFdlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzRmxvYXRBcnJheS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDE2ICs0OCwxNSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgUGFzc1JlZlB0cjxDYW52YXNGbG9hdEFycmF5PiBD
YW52YXNGbG9hdEFycmF5OjpjcmVhdGUoUGFzc1JlZlB0cjxDYW52YXNBcnJheUJ1ZmZlcj4gYnVm
ZmVyLCBpbnQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpCiAgICAgewogICAgICAgICAvLyBNYWtl
IHN1cmUgdGhlIG9mZnNldCByZXN1bHRzIGluIHZhbGlkIGFsaWdubWVudC4KLSAgICAgICAgaWYg
KChvZmZzZXQgJSBzaXplb2YoZmxvYXQpKSAhPSAwKSB7CisgICAgICAgIGlmICgob2Zmc2V0ICUg
c2l6ZW9mKGZsb2F0KSkgIT0gMCkKICAgICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9
CiAKLSAgICAgICAgLy8gQ2hlY2sgdG8gbWFrZSBzdXJlIHdlIGFyZSB0YWxraW5nIGFib3V0IGEg
dmFsaWQgcmVnaW9uIG9mCi0gICAgICAgIC8vIHRoZSBnaXZlbiBDYW52YXNBcnJheUJ1ZmZlcidz
IHN0b3JhZ2UuCi0gICAgICAgIGlmICgob2Zmc2V0ICsgKGxlbmd0aCAqIHNpemVvZihmbG9hdCkp
KSA+IGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKSB7Ci0gICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAg
ICAgICAgaWYgKGJ1ZmZlcikgeworICAgICAgICAgICAgLy8gQ2hlY2sgdG8gbWFrZSBzdXJlIHdl
IGFyZSB0YWxraW5nIGFib3V0IGEgdmFsaWQgcmVnaW9uIG9mCisgICAgICAgICAgICAvLyB0aGUg
Z2l2ZW4gQ2FudmFzQXJyYXlCdWZmZXIncyBzdG9yYWdlLgorICAgICAgICAgICAgaWYgKChvZmZz
ZXQgKyAobGVuZ3RoICogc2l6ZW9mKGZsb2F0KSkpID4gYnVmZmVyLT5ieXRlTGVuZ3RoKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgICAgIH0KLQogICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IENhbnZhc0Zsb2F0QXJyYXkoYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCkpOwog
ICAgIH0KICAgICAKSW5kZXg6IFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzSW50QXJyYXkuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzSW50QXJyYXkuY3BwCShy
ZXZpc2lvbiA0ODk4NSkKKysrIFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzSW50QXJyYXkuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01MSwxNiArNTEsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgbGVuZ3RoKQogICAgIHsKICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSBvZmZzZXQgcmVz
dWx0cyBpbiB2YWxpZCBhbGlnbm1lbnQuCi0gICAgICAgIGlmICgob2Zmc2V0ICUgc2l6ZW9mKGlu
dCkpICE9IDApIHsKKyAgICAgICAgaWYgKChvZmZzZXQgJSBzaXplb2YoaW50KSkgIT0gMCkKICAg
ICAgICAgICAgIHJldHVybiBOVUxMOwotICAgICAgICB9CiAKLSAgICAgICAgLy8gQ2hlY2sgdG8g
bWFrZSBzdXJlIHdlIGFyZSB0YWxraW5nIGFib3V0IGEgdmFsaWQgcmVnaW9uIG9mCi0gICAgICAg
IC8vIHRoZSBnaXZlbiBDYW52YXNBcnJheUJ1ZmZlcidzIHN0b3JhZ2UuCi0gICAgICAgIGlmICgo
b2Zmc2V0ICsgKGxlbmd0aCAqIHNpemVvZihpbnQpKSkgPiBidWZmZXItPmJ5dGVMZW5ndGgoKSkg
ewotICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgICAgIGlmIChidWZmZXIpIHsKKyAgICAg
ICAgICAgIC8vIENoZWNrIHRvIG1ha2Ugc3VyZSB3ZSBhcmUgdGFsa2luZyBhYm91dCBhIHZhbGlk
IHJlZ2lvbiBvZgorICAgICAgICAgICAgLy8gdGhlIGdpdmVuIENhbnZhc0FycmF5QnVmZmVyJ3Mg
c3RvcmFnZS4KKyAgICAgICAgICAgIGlmICgob2Zmc2V0ICsgKGxlbmd0aCAqIHNpemVvZihpbnQp
KSkgPiBidWZmZXItPmJ5dGVMZW5ndGgoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsK
ICAgICAgICAgfQotCisgICAgICAgIAogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENhbnZh
c0ludEFycmF5KGJ1ZmZlciwgb2Zmc2V0LCBsZW5ndGgpKTsKICAgICB9CiAgICAgCkluZGV4OiBX
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Nob3J0QXJyYXkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU2hvcnRBcnJheS5jcHAJKHJldmlzaW9uIDQ4OTg1KQor
KysgV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTaG9ydEFycmF5LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNTEsMTQgKzUxLDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsZW5n
dGgpCiAgICAgewogICAgICAgICAvLyBNYWtlIHN1cmUgdGhlIG9mZnNldCByZXN1bHRzIGluIHZh
bGlkIGFsaWdubWVudC4KLSAgICAgICAgaWYgKChvZmZzZXQgJSBzaXplb2Yoc2hvcnQpKSAhPSAw
KSB7CisgICAgICAgIGlmICgob2Zmc2V0ICUgc2l6ZW9mKHNob3J0KSkgIT0gMCkKICAgICAgICAg
ICAgIHJldHVybiBOVUxMOwotICAgICAgICB9CiAKLSAgICAgICAgLy8gQ2hlY2sgdG8gbWFrZSBz
dXJlIHdlIGFyZSB0YWxraW5nIGFib3V0IGEgdmFsaWQgcmVnaW9uIG9mCi0gICAgICAgIC8vIHRo
ZSBnaXZlbiBDYW52YXNBcnJheUJ1ZmZlcidzIHN0b3JhZ2UuCi0gICAgICAgIGlmICgob2Zmc2V0
ICsgKGxlbmd0aCAqIHNpemVvZihzaG9ydCkpKSA+IGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKSB7Ci0g
ICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgaWYgKGJ1ZmZlcikgeworICAgICAgICAg
ICAgLy8gQ2hlY2sgdG8gbWFrZSBzdXJlIHdlIGFyZSB0YWxraW5nIGFib3V0IGEgdmFsaWQgcmVn
aW9uIG9mCisgICAgICAgICAgICAvLyB0aGUgZ2l2ZW4gQ2FudmFzQXJyYXlCdWZmZXIncyBzdG9y
YWdlLgorICAgICAgICAgICAgaWYgKChvZmZzZXQgKyAobGVuZ3RoICogc2l6ZW9mKHNob3J0KSkp
ID4gYnVmZmVyLT5ieXRlTGVuZ3RoKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAg
ICAgICAgIH0KIAogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENhbnZhc1Nob3J0QXJyYXko
YnVmZmVyLCBvZmZzZXQsIGxlbmd0aCkpOwpJbmRleDogV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNVbnNpZ25lZEJ5dGVBcnJheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZh
cy9DYW52YXNVbnNpZ25lZEJ5dGVBcnJheS5jcHAJKHJldmlzaW9uIDQ4OTg1KQorKysgV2ViQ29y
ZS9odG1sL2NhbnZhcy9DYW52YXNVbnNpZ25lZEJ5dGVBcnJheS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTUwLDEwICs1MCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bnQgb2Zmc2V0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgbGVuZ3RoKQogICAgIHsKLSAgICAg
ICAgLy8gQ2hlY2sgdG8gbWFrZSBzdXJlIHdlIGFyZSB0YWxraW5nIGFib3V0IGEgdmFsaWQgcmVn
aW9uIG9mCi0gICAgICAgIC8vIHRoZSBnaXZlbiBDYW52YXNBcnJheUJ1ZmZlcidzIHN0b3JhZ2Uu
Ci0gICAgICAgIGlmICgob2Zmc2V0ICsgKGxlbmd0aCAqIHNpemVvZih1bnNpZ25lZCBjaGFyKSkp
ID4gYnVmZmVyLT5ieXRlTGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIHJldHVybiBOVUxMOworICAg
ICAgICBpZiAoYnVmZmVyKSB7CisgICAgICAgICAgICAvLyBDaGVjayB0byBtYWtlIHN1cmUgd2Ug
YXJlIHRhbGtpbmcgYWJvdXQgYSB2YWxpZCByZWdpb24gb2YKKyAgICAgICAgICAgIC8vIHRoZSBn
aXZlbiBDYW52YXNBcnJheUJ1ZmZlcidzIHN0b3JhZ2UuCisgICAgICAgICAgICBpZiAoKG9mZnNl
dCArIChsZW5ndGggKiBzaXplb2YodW5zaWduZWQgY2hhcikpKSA+IGJ1ZmZlci0+Ynl0ZUxlbmd0
aCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAgICB9CiAKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBDYW52YXNVbnNpZ25lZEJ5dGVBcnJheShidWZmZXIsIG9mZnNl
dCwgbGVuZ3RoKSk7CkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Vuc2lnbmVkSW50
QXJyYXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzVW5zaWdu
ZWRJbnRBcnJheS5jcHAJKHJldmlzaW9uIDQ4OTg1KQorKysgV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNVbnNpZ25lZEludEFycmF5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsMTAgKzU1LDEx
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIHJldHVybiBOVUxMOwogICAgICAg
ICB9CiAKLSAgICAgICAgLy8gQ2hlY2sgdG8gbWFrZSBzdXJlIHdlIGFyZSB0YWxraW5nIGFib3V0
IGEgdmFsaWQgcmVnaW9uIG9mCi0gICAgICAgIC8vIHRoZSBnaXZlbiBDYW52YXNBcnJheUJ1ZmZl
cidzIHN0b3JhZ2UuCi0gICAgICAgIGlmICgob2Zmc2V0ICsgKGxlbmd0aCAqIHNpemVvZih1bnNp
Z25lZCBpbnQpKSkgPiBidWZmZXItPmJ5dGVMZW5ndGgoKSkgewotICAgICAgICAgICAgcmV0dXJu
IE5VTEw7CisgICAgICAgIGlmIChidWZmZXIpIHsKKyAgICAgICAgICAgIC8vIENoZWNrIHRvIG1h
a2Ugc3VyZSB3ZSBhcmUgdGFsa2luZyBhYm91dCBhIHZhbGlkIHJlZ2lvbiBvZgorICAgICAgICAg
ICAgLy8gdGhlIGdpdmVuIENhbnZhc0FycmF5QnVmZmVyJ3Mgc3RvcmFnZS4KKyAgICAgICAgICAg
IGlmICgob2Zmc2V0ICsgKGxlbmd0aCAqIHNpemVvZih1bnNpZ25lZCBpbnQpKSkgPiBidWZmZXIt
PmJ5dGVMZW5ndGgoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgfQog
CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ2FudmFzVW5zaWduZWRJbnRBcnJheShidWZm
ZXIsIG9mZnNldCwgbGVuZ3RoKSk7CkluZGV4OiBXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Vu
c2lnbmVkU2hvcnRBcnJheS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNVbnNpZ25lZFNob3J0QXJyYXkuY3BwCShyZXZpc2lvbiA0ODk4NSkKKysrIFdlYkNvcmUv
aHRtbC9jYW52YXMvQ2FudmFzVW5zaWduZWRTaG9ydEFycmF5LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNTUsMTAgKzU1LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIHJldHVy
biBOVUxMOwogICAgICAgICB9CiAKLSAgICAgICAgLy8gQ2hlY2sgdG8gbWFrZSBzdXJlIHdlIGFy
ZSB0YWxraW5nIGFib3V0IGEgdmFsaWQgcmVnaW9uIG9mCi0gICAgICAgIC8vIHRoZSBnaXZlbiBD
YW52YXNBcnJheUJ1ZmZlcidzIHN0b3JhZ2UuCi0gICAgICAgIGlmICgob2Zmc2V0ICsgKGxlbmd0
aCAqIHNpemVvZih1bnNpZ25lZCBzaG9ydCkpKSA+IGJ1ZmZlci0+Ynl0ZUxlbmd0aCgpKSB7Ci0g
ICAgICAgICAgICByZXR1cm4gTlVMTDsKKyAgICAgICAgaWYgKGJ1ZmZlcikgeworICAgICAgICAg
ICAgLy8gQ2hlY2sgdG8gbWFrZSBzdXJlIHdlIGFyZSB0YWxraW5nIGFib3V0IGEgdmFsaWQgcmVn
aW9uIG9mCisgICAgICAgICAgICAvLyB0aGUgZ2l2ZW4gQ2FudmFzQXJyYXlCdWZmZXIncyBzdG9y
YWdlLgorICAgICAgICAgICAgaWYgKChvZmZzZXQgKyAobGVuZ3RoICogc2l6ZW9mKHVuc2lnbmVk
IHNob3J0KSkpID4gYnVmZmVyLT5ieXRlTGVuZ3RoKCkpIAorICAgICAgICAgICAgICAgIHJldHVy
biBOVUxMOwogICAgICAgICB9CiAKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDYW52YXNV
bnNpZ25lZFNob3J0QXJyYXkoYnVmZmVyLCBvZmZzZXQsIGxlbmd0aCkpOwpJbmRleDogV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
Y3BwCShyZXZpc2lvbiA0ODk4NSkKKysrIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTExNyw3ICsxMTcsNyBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFn
ZSkKICAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQodHJ1ZSkKICAgICAsIG1f
ZXhwZXJpbWVudGFsTm90aWZpY2F0aW9uc0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3BsdWdpbkhh
bHRlckVuYWJsZWQoZmFsc2UpCi0gICAgLCBtX2V4cGVyaW1lbnRhbFdlYkdMRW5hYmxlZChmYWxz
ZSkKKyAgICAsIG1fd2ViR0xFbmFibGVkKGZhbHNlKQogI2lmIEVOQUJMRShXRUJfU09DS0VUUykK
ICAgICAsIG1fZXhwZXJpbWVudGFsV2ViU29ja2V0c0VuYWJsZWQoZmFsc2UpCiAjZW5kaWYKQEAg
LTUzMiw5ICs1MzIsOSBAQCB2b2lkIFNldHRpbmdzOjpzZXRTaG91bGRVc2VIaWdoUmVzb2x1dGlv
CiB9CiAjZW5kaWYKIAotdm9pZCBTZXR0aW5nczo6c2V0RXhwZXJpbWVudGFsV2ViR0xFbmFibGVk
KGJvb2wgZW5hYmxlZCkKK3ZvaWQgU2V0dGluZ3M6OnNldFdlYkdMRW5hYmxlZChib29sIGVuYWJs
ZWQpCiB7Ci0gICAgbV9leHBlcmltZW50YWxXZWJHTEVuYWJsZWQgPSBlbmFibGVkOworICAgIG1f
d2ViR0xFbmFibGVkID0gZW5hYmxlZDsKIH0KIAogI2lmIEVOQUJMRShXRUJfU09DS0VUUykKSW5k
ZXg6IFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5oCShyZXZpc2lvbiA0ODk4NSkKKysrIFdlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yNjcsMTAgKzI2Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgdm9pZCBzZXRQbHVnaW5BbGxvd2VkUnVuVGltZSh1bnNpZ25lZCk7CiAgICAgICAgIHVu
c2lnbmVkIHBsdWdpbkFsbG93ZWRSdW5UaW1lKCkgY29uc3QgeyByZXR1cm4gbV9wbHVnaW5BbGxv
d2VkUnVuVGltZTsgfQogCi0gICAgICAgIC8vIFRoaXMgcnVuLXRpbWUgZmxhZyBpcyBvbmx5IHRl
bXBvcmFyeSB3aGlsZSB0aGUgV2ViR0wKLSAgICAgICAgLy8gc3BlY2lmaWNhdGlvbiBpcyBiZWlu
ZyBkZXZlbG9wZWQuCi0gICAgICAgIHZvaWQgc2V0RXhwZXJpbWVudGFsV2ViR0xFbmFibGVkKGJv
b2wpOwotICAgICAgICBib29sIGV4cGVyaW1lbnRhbFdlYkdMRW5hYmxlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fZXhwZXJpbWVudGFsV2ViR0xFbmFibGVkOyB9CisgICAgICAgIHZvaWQgc2V0V2ViR0xF
bmFibGVkKGJvb2wpOworICAgICAgICBib29sIHdlYkdMRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fd2ViR0xFbmFibGVkOyB9CiAKICNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCiAgICAgICAgIHZv
aWQgc2V0RXhwZXJpbWVudGFsV2ViU29ja2V0c0VuYWJsZWQoYm9vbCk7CkBAIC0zNDQsNyArMzQy
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1fZXhwZXJpbWVudGFsTm90aWZpY2F0
aW9uc0VuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1fcGx1Z2luSGFsdGVyRW5hYmxlZCA6IDE7
Ci0gICAgICAgIGJvb2wgbV9leHBlcmltZW50YWxXZWJHTEVuYWJsZWQgOiAxOworICAgICAgICBi
b29sIG1fd2ViR0xFbmFibGVkIDogMTsKIAogI2lmIEVOQUJMRShXRUJfU09DS0VUUykKICAgICAg
ICAgYm9vbCBtX2V4cGVyaW1lbnRhbFdlYlNvY2tldHNFbmFibGVkIDogMTsKSW5kZXg6IFdlYktp
dC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZp
c2lvbiA0OTAwNSkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMDktMTAtMDEgIENocmlzIE1hcnJpbiAgPGNtYXJyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFR1cm4g
b24gRU5BQkxFXzNEX0NBTlZBUyBpbiBUT1QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTI5OTA2CisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlz
UHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAg
ICgrW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5j
ZXMgd2ViR0xFbmFibGVkXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldFdlYkdMRW5h
YmxlZDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5j
ZXNDaGFuZ2VkTm90aWZpY2F0aW9uOl0pOgorCiAyMDA5LTA5LTMwICBTYW0gV2VpbmlnICA8c2Ft
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6
IFdlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZwkocmV2aXNpb24gNDg5ODUpCisrKyBXZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVE
ZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBACiAKIC8vIFNl
dCBhbnkgRU5BQkxFX0ZFQVRVUkVfTkFNRSBtYWNybyB0byBhbiBlbXB0eSBzdHJpbmcgdG8gZGlz
YWJsZSB0aGF0IGZlYXR1cmUuCiAKLUVOQUJMRV8zRF9DQU5WQVMgPSA7CitFTkFCTEVfM0RfQ0FO
VkFTID0gRU5BQkxFXzNEX0NBTlZBUzsKIAogRU5BQkxFXzNEX1JFTkRFUklORyA9ICQoRU5BQkxF
XzNEX1JFTkRFUklOR18kKE1BQ19PU19YX1ZFUlNJT05fTUFKT1IpKTsKIEVOQUJMRV8zRF9SRU5E
RVJJTkdfMTA1MCA9IEVOQUJMRV8zRF9SRU5ERVJJTkc7CkluZGV4OiBXZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCShyZXZpc2lvbiA0ODk4NSkKKysrIFdl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAkod29ya2luZyBjb3B5
KQpAQCAtODYsNiArODYsNyBAQAogI2RlZmluZSBXZWJLaXRab29tc1RleHRPbmx5UHJlZmVyZW5j
ZUtleSBAIldlYktpdFpvb21zVGV4dE9ubHkiCiAjZGVmaW5lIFdlYktpdFhTU0F1ZGl0b3JFbmFi
bGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFhTU0F1ZGl0b3JFbmFibGVkIgogI2RlZmluZSBXZWJL
aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0V2ViR0xFbmFibGVkUHJl
ZmVyZW5jZUtleSBAIldlYktpdFdlYkdMRW5hYmxlZCIKIAogLy8gVGhlc2UgYXJlIHByaXZhdGUg
Ym90aCBiZWNhdXNlIGNhbGxlcnMgc2hvdWxkIGJlIHVzaW5nIHRoZSBjb3ZlciBtZXRob2RzIGFu
ZCBiZWNhdXNlIHRoZQogLy8gY292ZXIgbWV0aG9kcyB0aGVtc2VsdmVzIGFyZSBwcml2YXRlLgpJ
bmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQkocmV2aXNpb24gNDg5ODUpCisr
KyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0JKHdvcmtpbmcgY29weSkKQEAg
LTM1Miw2ICszNTIsNyBAQCBzdGF0aWMgV2ViQ2FjaGVNb2RlbCBjYWNoZU1vZGVsRm9yTWFpbkJ1
CiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAgV2ViS2l0Wm9vbXNUZXh0
T25seVByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNd
LCAgV2ViS2l0WFNTQXVkaXRvckVuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1i
ZXIgbnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkUHJlZmVyZW5jZUtleSwKKyAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwg
ICBXZWJLaXRXZWJHTEVuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBuaWxdOwogCiAgICAg
Ly8gVGhpcyB2YWx1ZSBzaG91bGRuJ3QgZXZlciBjaGFuZ2UsIHdoaWNoIGlzIGFzc3VtZWQgaW4g
dGhlIGluaXRpYWxpemF0aW9uIG9mIFdlYktpdFBERkRpc3BsYXlNb2RlUHJlZmVyZW5jZUtleSBh
Ym92ZQpAQCAtMTE2MCw2ICsxMTYxLDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0
b3JJRCA9IG5pbDsKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmVuYWJsZWQgZm9yS2V5OldlYktp
dEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKEJP
T0wpd2ViR0xFbmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2Vi
S2l0V2ViR0xFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpc2V0V2ViR0xFbmFi
bGVkOihCT09MKWVuYWJsZWQKK3sKKyAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmVuYWJsZWQgZm9y
S2V5OldlYktpdFdlYkdMRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCiAtICh2b2lkKWRpZFJl
bW92ZUZyb21XZWJWaWV3CiB7CiAgICAgQVNTRVJUKF9wcml2YXRlLT5udW1XZWJWaWV3cyk7Cklu
ZGV4OiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCShyZXZpc2lv
biA0ODk4NSkKKysrIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMTQ5LDYgKzE0OSw5IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJl
ZmVyZW5jZXNSZW1vdmVkTm8KIC0gKEJPT0wpYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ7
CiAtICh2b2lkKXNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkOihCT09MKWVuYWJsZWQ7
CiAKKy0gKEJPT0wpd2ViR0xFbmFibGVkOworLSAodm9pZClzZXRXZWJHTEVuYWJsZWQ6KEJPT0wp
ZW5hYmxlZDsKKwogLy8gT3RoZXIgcHJpdmF0ZSBtZXRob2RzCiAtICh2b2lkKV9wb3N0UHJlZmVy
ZW5jZXNDaGFuZ2VzTm90aWZpY2F0aW9uOwogKyAoV2ViUHJlZmVyZW5jZXMgKilfZ2V0SW5zdGFu
Y2VGb3JJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXI7CkluZGV4OiBXZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQkocmV2aXNpb24gNDg5ODUpCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMTMxMyw5ICsxMzEzLDcgQEAgc3RhdGljIGJvb2wgZmFzdERv
Y3VtZW50VGVhcmRvd25FbmFibGVkKAogICAgIHNldHRpbmdzLT5zZXRYU1NBdWRpdG9yRW5hYmxl
ZChbcHJlZmVyZW5jZXMgaXNYU1NBdWRpdG9yRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLT5zZXRF
bmZvcmNlQ1NTTUlNRVR5cGVJblN0cmljdE1vZGUoIVdLQXBwVmVyc2lvbkNoZWNrTGVzc1RoYW4o
QCJjb20uYXBwbGUuaVdlYiIsIC0xLCAyLjEpKTsKICAgICBzZXR0aW5ncy0+c2V0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0VuYWJsZWQoW3ByZWZlcmVuY2VzIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkXSk7Ci0jaWYgRU5BQkxFKDNEX0NBTlZBUykKLSAgICBzZXR0aW5ncy0+c2V0RXhwZXJp
bWVudGFsV2ViR0xFbmFibGVkKHRydWUpOwotI2VuZGlmICAvLyBFTkFCTEUoM0RfQ0FOVkFTKQor
ICAgIHNldHRpbmdzLT5zZXRXZWJHTEVuYWJsZWQoW3ByZWZlcmVuY2VzIHdlYkdMRW5hYmxlZF0p
OwogfQogCiBzdGF0aWMgaW5saW5lIElNUCBnZXRNZXRob2QoaWQgbywgU0VMIHMpCkluZGV4OiBX
ZWJLaXRUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0OTAwNSkKKysrIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDEyIEBACisyMDA5LTEwLTAxICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUdXJuIG9uIEVOQUJMRV8zRF9DQU5WQVMgaW4gVE9UCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTkwNgorCisgICAgICAgICogU2NyaXB0cy9idWls
ZC13ZWJraXQ6CisKIDIwMDktMTAtMDEgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2Vu
bmV0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJ1YmJlcnN0YW1wZWQgYnkgU2ltb24gSGF1c21h
bm4uCkluZGV4OiBXZWJLaXRUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXRUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAkocmV2aXNpb24gNDg5ODUpCisrKyBX
ZWJLaXRUb29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdAkod29ya2luZyBjb3B5KQpAQCAtNTksNyAr
NTksNyBAQCBteSAoJHRocmVlRENhbnZhc1N1cHBvcnQsICR0aHJlZURSZW5kZXJpCiAKIG15IEBm
ZWF0dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9PiAiM2QtY2FudmFzIiwgZGVzYyA9PiAiVG9nZ2xl
IDNEIGNhbnZhcyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFXzNEX0NBTlZBUyIs
IGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCR0aHJlZURDYW52YXNTdXBwb3J0IH0sCisgICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV8zRF9DQU5WQVMiLCBkZWZhdWx0ID0+IChpc0FwcGxlTWFjV2ViS2l0
KCkgJiYgIWlzVGlnZXIoKSksIHZhbHVlID0+IFwkdGhyZWVEQ2FudmFzU3VwcG9ydCB9LAogCiAg
ICAgeyBvcHRpb24gPT4gIjNkLXJlbmRlcmluZyIsIGRlc2MgPT4gIlRvZ2dsZSAzRCByZW5kZXJp
bmcgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV8zRF9SRU5ERVJJTkciLCBkZWZh
dWx0ID0+IChpc0FwcGxlTWFjV2ViS2l0KCkgJiYgIWlzVGlnZXIoKSksIHZhbHVlID0+IFwkdGhy
ZWVEUmVuZGVyaW5nU3VwcG9ydCB9LApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDkwMDUpCisrKyBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAwOS0x
MC0wMSAgQ2hyaXMgTWFycmluICA8Y21hcnJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHVybiBvbiBFTkFCTEVfM0RfQ0FOVkFT
IGluIFRPVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mjk5MDYKKworICAgICAgICBGaXhlZCBsYXlvdXQgdGVzdHMgd2hpY2ggZmFpbGVkIHdpdGggZmxh
ZyBvbgorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZ2wtZ2V0LWNhbGxzLmh0bWw6Cisg
ICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0bWw6CisgICAgICAg
ICogZmFzdC9kb20vc2NyaXB0LXRlc3RzL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy5q
czoKKyAgICAgICAgKGNvbnN0cnVjdG9yUHJvcGVydGllc09uV2luZG93KToKKyAgICAgICAgKiBm
YXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLTIuanM6CisgICAgICAg
IChjb25zdHJ1Y3Rvck5hbWVzRm9yV2luZG93KToKKyAgICAgICAgKiBmYXN0L2RvbS9zY3JpcHQt
dGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLmpzOgorICAgICAgICAqIGZhc3QvanMvc2NyaXB0
LXRlc3RzL2dsb2JhbC1jb25zdHJ1Y3RvcnMuanM6CisKIDIwMDktMTAtMDEgIEJldGggRGFraW4g
IDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4u
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nbC1nZXQtY2FsbHMuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9nbC1nZXQtY2FsbHMu
aHRtbAkocmV2aXNpb24gNDg5ODUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9n
bC1nZXQtY2FsbHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsOTEgKzEwLDkxIEBACiAKIDxz
Y3JpcHQ+CiAKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRXZWJHTEVuYWJsZWQiLCAiMSIp
OworCiBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGVuc3VyZXMgYmFzaWMgZnVuY3Rpb25hbGl0eSBv
ZiB0aGUgdW5kZXJseWluZyBncmFwaGljcyBsaWJyYXJ5Iik7CiAKIGRlYnVnKCIiKTsKIGRlYnVn
KCJDYW52YXMuZ2V0Q29udGV4dCIpOwogCiB2YXIgY29udGV4dCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjYW52YXMiKS5nZXRDb250ZXh0KCJ3ZWJraXQtM2QiKTsKLWlmIChjb250ZXh0KQot
ICB0ZXN0UGFzc2VkKCJjb250ZXh0IGV4aXN0cyIpOwotZWxzZQotICB0ZXN0RmFpbGVkKCJjb250
ZXh0IGRvZXMgbm90IGV4aXN0Iik7Ci0KLWRlYnVnKCIiKTsKLWRlYnVnKCJDb250ZXh0IGlzIGNv
cnJlY3QgdHlwZSIpOwotaWYgKGNvbnRleHQgaW5zdGFuY2VvZiBDYW52YXNSZW5kZXJpbmdDb250
ZXh0M0QpCi0gIHRlc3RQYXNzZWQoImNvbnRleHQgaXMgY29ycmVjdCB0eXBlIik7Ci1lbHNlCi0g
IHRlc3RGYWlsZWQoImNvbnRleHQgaXMgbm90IGNvcnJlY3QgdHlwZSIpOworaWYgKCFjb250ZXh0
KQorICAgIHRlc3RGYWlsZWQoImNvbnRleHQgZG9lcyBub3QgZXhpc3QiKTsKK2Vsc2UgeworICAg
IHRlc3RQYXNzZWQoImNvbnRleHQgZXhpc3RzIik7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVi
dWcoIkNvbnRleHQgaXMgY29ycmVjdCB0eXBlIik7CisgICAgaWYgKGNvbnRleHQgaW5zdGFuY2Vv
ZiBDYW52YXNSZW5kZXJpbmdDb250ZXh0M0QpCisgICAgICB0ZXN0UGFzc2VkKCJjb250ZXh0IGlz
IGNvcnJlY3QgdHlwZSIpOworICAgIGVsc2UKKyAgICAgIHRlc3RGYWlsZWQoImNvbnRleHQgaXMg
bm90IGNvcnJlY3QgdHlwZSIpOwogICAKLWRlYnVnKCIiKTsKLWRlYnVnKCJDb250ZXh0IGNvbnRh
aW5zIGdldEVycm9yIik7Ci1pZiAoImdldEVycm9yIiBpbiBjb250ZXh0KQotICB0ZXN0UGFzc2Vk
KCJjb250ZXh0IGNvbnRhaW5zIGdldEVycm9yIik7Ci1lbHNlCi0gIHRlc3RGYWlsZWQoImNvbnRl
eHQgZG9lcyBub3QgY29udGFpbnMgZ2V0RXJyb3IiKTsKLQotZGVidWcoIiIpOwotZGVidWcoIkNo
ZWNrIGRlZmF1bHQgdmFsdWVzIik7Ci1zaG91bGRCZSgnY29udGV4dC5nZXRJbnRlZ2VyKGNvbnRl
eHQuQUNUSVZFX1RFWFRVUkUpJywgJ2NvbnRleHQuVEVYVFVSRTAnKTsKLXNob3VsZEJlKCdjb250
ZXh0LmdldEludGVnZXIoY29udGV4dC5BTElBU0VEX0xJTkVfV0lEVEhfUkFOR0UpJywgJzEnKTsK
LXNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5BTElBU0VEX1BPSU5UX1NJWkVf
UkFOR0UpJywgJzEnKTsKLXNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5BUlJB
WV9CVUZGRVJfQklORElORyknLCAnMCcpOwotc2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihj
b250ZXh0LkJMRU5EKScsICcwJyk7Ci1zaG91bGRCZSgnY29udGV4dC5nZXRJbnRlZ2VyKGNvbnRl
eHQuQkxFTkRfQ09MT1IpJywgJzAnKTsKLXNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29u
dGV4dC5CTEVORF9EU1RfQUxQSEEpJywgJzAnKTsKLXNob3VsZEJlKCdjb250ZXh0LmdldEludGVn
ZXIoY29udGV4dC5CTEVORF9EU1RfUkdCKScsICcwJyk7Ci1zaG91bGRCZSgnY29udGV4dC5nZXRJ
bnRlZ2VyKGNvbnRleHQuQkxFTkRfRVFVQVRJT05fQUxQSEEpJywgJ2NvbnRleHQuRlVOQ19BREQn
KTsKLXNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5CTEVORF9FUVVBVElPTl9S
R0IpJywgJ2NvbnRleHQuRlVOQ19BREQnKTsKLXNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIo
Y29udGV4dC5CTEVORF9TUkNfQUxQSEEpJywgJzEnKTsKLXNob3VsZEJlKCdjb250ZXh0LmdldElu
dGVnZXIoY29udGV4dC5CTEVORF9TUkNfUkdCKScsICcxJyk7Ci1zaG91bGRCZSgnY29udGV4dC5n
ZXRJbnRlZ2VyKGNvbnRleHQuQ09MT1JfQ0xFQVJfVkFMVUUpJywgJzAnKTsKLXNob3VsZEJlKCdj
b250ZXh0LmdldEludGVnZXIoY29udGV4dC5DT0xPUl9XUklURU1BU0spJywgJzEnKTsKLXNob3Vs
ZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5DVUxMX0ZBQ0UpJywgJzAnKTsKLXNob3Vs
ZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5DVUxMX0ZBQ0VfTU9ERSknLCAnY29udGV4
dC5CQUNLJyk7Ci1zaG91bGRCZSgnY29udGV4dC5nZXRJbnRlZ2VyKGNvbnRleHQuQ1VSUkVOVF9Q
Uk9HUkFNKScsICcwJyk7Ci1zaG91bGRCZSgnY29udGV4dC5nZXRJbnRlZ2VyKGNvbnRleHQuREVQ
VEhfRlVOQyknLCAnY29udGV4dC5MRVNTJyk7Ci1zaG91bGRCZSgnY29udGV4dC5nZXRJbnRlZ2Vy
KGNvbnRleHQuREVQVEhfUkFOR0UpJywgJzAnKTsKLXNob3VsZEJlKCdjb250ZXh0LmdldEludGVn
ZXIoY29udGV4dC5ERVBUSF9URVNUKScsICcwJyk7Ci1zaG91bGRCZSgnY29udGV4dC5nZXRJbnRl
Z2VyKGNvbnRleHQuREVQVEhfV1JJVEVNQVNLKScsICcxJyk7Ci1zaG91bGRCZSgnY29udGV4dC5n
ZXRJbnRlZ2VyKGNvbnRleHQuRElUSEVSKScsICcxJyk7Ci1zaG91bGRCZSgnY29udGV4dC5nZXRJ
bnRlZ2VyKGNvbnRleHQuRUxFTUVOVF9BUlJBWV9CVUZGRVJfQklORElORyknLCAnMCcpOwotc2hv
dWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250ZXh0LkZST05UX0ZBQ0UpJywgJ2NvbnRleHQu
Q0NXJyk7Ci1zaG91bGRCZSgnY29udGV4dC5nZXRJbnRlZ2VyKGNvbnRleHQuR0VORVJBVEVfTUlQ
TUFQX0hJTlQpJywgJ2NvbnRleHQuRE9OVF9DQVJFJyk7Ci1zaG91bGRCZSgnY29udGV4dC5nZXRJ
bnRlZ2VyKGNvbnRleHQuTElORV9XSURUSCknLCAnMScpOwotc2hvdWxkQmUoJ2NvbnRleHQuZ2V0
SW50ZWdlcihjb250ZXh0LlBPTFlHT05fT0ZGU0VUX0ZBQ1RPUiknLCAnMCcpOwotc2hvdWxkQmUo
J2NvbnRleHQuZ2V0SW50ZWdlcihjb250ZXh0LlBPTFlHT05fT0ZGU0VUX0ZJTEwpJywgJzAnKTsK
LXNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5QT0xZR09OX09GRlNFVF9VTklU
UyknLCAnMCcpOwotc2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250ZXh0LlJFTkRFUkJV
RkZFUl9CSU5ESU5HX0VYVCknLCAnMCcpOwotc2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihj
b250ZXh0LlNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQpJywgJzAnKTsKLXNob3VsZEJlKCdjb250ZXh0
LmdldEludGVnZXIoY29udGV4dC5TQU1QTEVfQ09WRVJBR0VfVkFMVUUpJywgJzEnKTsKLXNob3Vs
ZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5TQ0lTU09SX0JPWCknLCAnMCcpOwotc2hv
dWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250ZXh0LlNDSVNTT1JfVEVTVCknLCAnMCcpOwot
c2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250ZXh0LlNURU5DSUxfQkFDS19GQUlMKScs
ICdjb250ZXh0LktFRVAnKTsKLXNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5T
VEVOQ0lMX0JBQ0tfRlVOQyknLCAnY29udGV4dC5BTFdBWVMnKTsKLXNob3VsZEJlKCdjb250ZXh0
LmdldEludGVnZXIoY29udGV4dC5TVEVOQ0lMX0JBQ0tfUEFTU19ERVBUSF9GQUlMKScsICdjb250
ZXh0LktFRVAnKTsKLXNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5TVEVOQ0lM
X0JBQ0tfUEFTU19ERVBUSF9QQVNTKScsICdjb250ZXh0LktFRVAnKTsKLXNob3VsZEJlKCdjb250
ZXh0LmdldEludGVnZXIoY29udGV4dC5TVEVOQ0lMX0JBQ0tfUkVGKScsICcwJyk7Ci1zaG91bGRC
ZSgnY29udGV4dC5nZXRJbnRlZ2VyKGNvbnRleHQuU1RFTkNJTF9CQUNLX1ZBTFVFX01BU0spJywg
Jy0xJyk7Ci1zaG91bGRCZSgnY29udGV4dC5nZXRJbnRlZ2VyKGNvbnRleHQuU1RFTkNJTF9CQUNL
X1dSSVRFTUFTSyknLCAnLTEnKTsKLXNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4
dC5TVEVOQ0lMX0JJVFMpJywgJzAnKTsKLXNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29u
dGV4dC5TVEVOQ0lMX0NMRUFSX1ZBTFVFKScsICcwJyk7Ci1zaG91bGRCZSgnY29udGV4dC5nZXRJ
bnRlZ2VyKGNvbnRleHQuU1RFTkNJTF9GQUlMKScsICdjb250ZXh0LktFRVAnKTsKLXNob3VsZEJl
KCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5TVEVOQ0lMX0ZVTkMpJywgJ2NvbnRleHQuQUxX
QVlTJyk7Ci1zaG91bGRCZSgnY29udGV4dC5nZXRJbnRlZ2VyKGNvbnRleHQuU1RFTkNJTF9QQVNT
X0RFUFRIX0ZBSUwpJywgJ2NvbnRleHQuS0VFUCcpOwotc2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50
ZWdlcihjb250ZXh0LlNURU5DSUxfUEFTU19ERVBUSF9QQVNTKScsICdjb250ZXh0LktFRVAnKTsK
LXNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5TVEVOQ0lMX1JFRiknLCAnMCcp
Owotc2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250ZXh0LlNURU5DSUxfVEVTVCknLCAn
MCcpOwotc2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250ZXh0LlNURU5DSUxfVkFMVUVf
TUFTSyknLCAnLTEnKTsKLXNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5TVEVO
Q0lMX1dSSVRFTUFTSyknLCAnLTEnKTsKLXNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29u
dGV4dC5URVhUVVJFX0JJTkRJTkdfMkQpJywgJzAnKTsKLXNob3VsZEJlKCdjb250ZXh0LmdldElu
dGVnZXIoY29udGV4dC5URVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVApJywgJzAnKTsKLXNob3VsZEJl
KCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5WSUVXUE9SVCknLCAnMCcpOwotCi0KLQotCisg
ICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJDb250ZXh0IGNvbnRhaW5zIGdldEVycm9yIik7Cisg
ICAgaWYgKCJnZXRFcnJvciIgaW4gY29udGV4dCkKKyAgICAgIHRlc3RQYXNzZWQoImNvbnRleHQg
Y29udGFpbnMgZ2V0RXJyb3IiKTsKKyAgICBlbHNlCisgICAgICB0ZXN0RmFpbGVkKCJjb250ZXh0
IGRvZXMgbm90IGNvbnRhaW5zIGdldEVycm9yIik7CisKKyAgICBkZWJ1ZygiIik7CisgICAgZGVi
dWcoIkNoZWNrIGRlZmF1bHQgdmFsdWVzIik7CisgICAgc2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50
ZWdlcihjb250ZXh0LkFDVElWRV9URVhUVVJFKScsICdjb250ZXh0LlRFWFRVUkUwJyk7CisgICAg
c2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250ZXh0LkFMSUFTRURfTElORV9XSURUSF9S
QU5HRSknLCAnMScpOworICAgIHNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5B
TElBU0VEX1BPSU5UX1NJWkVfUkFOR0UpJywgJzEnKTsKKyAgICBzaG91bGRCZSgnY29udGV4dC5n
ZXRJbnRlZ2VyKGNvbnRleHQuQVJSQVlfQlVGRkVSX0JJTkRJTkcpJywgJzAnKTsKKyAgICBzaG91
bGRCZSgnY29udGV4dC5nZXRJbnRlZ2VyKGNvbnRleHQuQkxFTkQpJywgJzAnKTsKKyAgICBzaG91
bGRCZSgnY29udGV4dC5nZXRJbnRlZ2VyKGNvbnRleHQuQkxFTkRfQ09MT1IpJywgJzAnKTsKKyAg
ICBzaG91bGRCZSgnY29udGV4dC5nZXRJbnRlZ2VyKGNvbnRleHQuQkxFTkRfRFNUX0FMUEhBKScs
ICcwJyk7CisgICAgc2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250ZXh0LkJMRU5EX0RT
VF9SR0IpJywgJzAnKTsKKyAgICBzaG91bGRCZSgnY29udGV4dC5nZXRJbnRlZ2VyKGNvbnRleHQu
QkxFTkRfRVFVQVRJT05fQUxQSEEpJywgJ2NvbnRleHQuRlVOQ19BREQnKTsKKyAgICBzaG91bGRC
ZSgnY29udGV4dC5nZXRJbnRlZ2VyKGNvbnRleHQuQkxFTkRfRVFVQVRJT05fUkdCKScsICdjb250
ZXh0LkZVTkNfQUREJyk7CisgICAgc2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250ZXh0
LkJMRU5EX1NSQ19BTFBIQSknLCAnMScpOworICAgIHNob3VsZEJlKCdjb250ZXh0LmdldEludGVn
ZXIoY29udGV4dC5CTEVORF9TUkNfUkdCKScsICcxJyk7CisgICAgc2hvdWxkQmUoJ2NvbnRleHQu
Z2V0SW50ZWdlcihjb250ZXh0LkNPTE9SX0NMRUFSX1ZBTFVFKScsICcwJyk7CisgICAgc2hvdWxk
QmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250ZXh0LkNPTE9SX1dSSVRFTUFTSyknLCAnMScpOwor
ICAgIHNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5DVUxMX0ZBQ0UpJywgJzAn
KTsKKyAgICBzaG91bGRCZSgnY29udGV4dC5nZXRJbnRlZ2VyKGNvbnRleHQuQ1VMTF9GQUNFX01P
REUpJywgJ2NvbnRleHQuQkFDSycpOworICAgIHNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIo
Y29udGV4dC5DVVJSRU5UX1BST0dSQU0pJywgJzAnKTsKKyAgICBzaG91bGRCZSgnY29udGV4dC5n
ZXRJbnRlZ2VyKGNvbnRleHQuREVQVEhfRlVOQyknLCAnY29udGV4dC5MRVNTJyk7CisgICAgc2hv
dWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250ZXh0LkRFUFRIX1JBTkdFKScsICcwJyk7Cisg
ICAgc2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250ZXh0LkRFUFRIX1RFU1QpJywgJzAn
KTsKKyAgICBzaG91bGRCZSgnY29udGV4dC5nZXRJbnRlZ2VyKGNvbnRleHQuREVQVEhfV1JJVEVN
QVNLKScsICcxJyk7CisgICAgc2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250ZXh0LkRJ
VEhFUiknLCAnMScpOworICAgIHNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5F
TEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HKScsICcwJyk7CisgICAgc2hvdWxkQmUoJ2NvbnRl
eHQuZ2V0SW50ZWdlcihjb250ZXh0LkZST05UX0ZBQ0UpJywgJ2NvbnRleHQuQ0NXJyk7CisgICAg
c2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250ZXh0LkdFTkVSQVRFX01JUE1BUF9ISU5U
KScsICdjb250ZXh0LkRPTlRfQ0FSRScpOworICAgIHNob3VsZEJlKCdjb250ZXh0LmdldEludGVn
ZXIoY29udGV4dC5MSU5FX1dJRFRIKScsICcxJyk7CisgICAgc2hvdWxkQmUoJ2NvbnRleHQuZ2V0
SW50ZWdlcihjb250ZXh0LlBPTFlHT05fT0ZGU0VUX0ZBQ1RPUiknLCAnMCcpOworICAgIHNob3Vs
ZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5QT0xZR09OX09GRlNFVF9GSUxMKScsICcw
Jyk7CisgICAgc2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250ZXh0LlBPTFlHT05fT0ZG
U0VUX1VOSVRTKScsICcwJyk7CisgICAgc2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250
ZXh0LlJFTkRFUkJVRkZFUl9CSU5ESU5HX0VYVCknLCAnMCcpOworICAgIHNob3VsZEJlKCdjb250
ZXh0LmdldEludGVnZXIoY29udGV4dC5TQU1QTEVfQ09WRVJBR0VfSU5WRVJUKScsICcwJyk7Cisg
ICAgc2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250ZXh0LlNBTVBMRV9DT1ZFUkFHRV9W
QUxVRSknLCAnMScpOworICAgIHNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5T
Q0lTU09SX0JPWCknLCAnMCcpOworICAgIHNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29u
dGV4dC5TQ0lTU09SX1RFU1QpJywgJzAnKTsKKyAgICBzaG91bGRCZSgnY29udGV4dC5nZXRJbnRl
Z2VyKGNvbnRleHQuU1RFTkNJTF9CQUNLX0ZBSUwpJywgJ2NvbnRleHQuS0VFUCcpOworICAgIHNo
b3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5TVEVOQ0lMX0JBQ0tfRlVOQyknLCAn
Y29udGV4dC5BTFdBWVMnKTsKKyAgICBzaG91bGRCZSgnY29udGV4dC5nZXRJbnRlZ2VyKGNvbnRl
eHQuU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfRkFJTCknLCAnY29udGV4dC5LRUVQJyk7CisgICAg
c2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250ZXh0LlNURU5DSUxfQkFDS19QQVNTX0RF
UFRIX1BBU1MpJywgJ2NvbnRleHQuS0VFUCcpOworICAgIHNob3VsZEJlKCdjb250ZXh0LmdldElu
dGVnZXIoY29udGV4dC5TVEVOQ0lMX0JBQ0tfUkVGKScsICcwJyk7CisgICAgc2hvdWxkQmUoJ2Nv
bnRleHQuZ2V0SW50ZWdlcihjb250ZXh0LlNURU5DSUxfQkFDS19WQUxVRV9NQVNLKScsICctMScp
OworICAgIHNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5TVEVOQ0lMX0JBQ0tf
V1JJVEVNQVNLKScsICctMScpOworICAgIHNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29u
dGV4dC5TVEVOQ0lMX0JJVFMpJywgJzAnKTsKKyAgICBzaG91bGRCZSgnY29udGV4dC5nZXRJbnRl
Z2VyKGNvbnRleHQuU1RFTkNJTF9DTEVBUl9WQUxVRSknLCAnMCcpOworICAgIHNob3VsZEJlKCdj
b250ZXh0LmdldEludGVnZXIoY29udGV4dC5TVEVOQ0lMX0ZBSUwpJywgJ2NvbnRleHQuS0VFUCcp
OworICAgIHNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5TVEVOQ0lMX0ZVTkMp
JywgJ2NvbnRleHQuQUxXQVlTJyk7CisgICAgc2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihj
b250ZXh0LlNURU5DSUxfUEFTU19ERVBUSF9GQUlMKScsICdjb250ZXh0LktFRVAnKTsKKyAgICBz
aG91bGRCZSgnY29udGV4dC5nZXRJbnRlZ2VyKGNvbnRleHQuU1RFTkNJTF9QQVNTX0RFUFRIX1BB
U1MpJywgJ2NvbnRleHQuS0VFUCcpOworICAgIHNob3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIo
Y29udGV4dC5TVEVOQ0lMX1JFRiknLCAnMCcpOworICAgIHNob3VsZEJlKCdjb250ZXh0LmdldElu
dGVnZXIoY29udGV4dC5TVEVOQ0lMX1RFU1QpJywgJzAnKTsKKyAgICBzaG91bGRCZSgnY29udGV4
dC5nZXRJbnRlZ2VyKGNvbnRleHQuU1RFTkNJTF9WQUxVRV9NQVNLKScsICctMScpOworICAgIHNo
b3VsZEJlKCdjb250ZXh0LmdldEludGVnZXIoY29udGV4dC5TVEVOQ0lMX1dSSVRFTUFTSyknLCAn
LTEnKTsKKyAgICBzaG91bGRCZSgnY29udGV4dC5nZXRJbnRlZ2VyKGNvbnRleHQuVEVYVFVSRV9C
SU5ESU5HXzJEKScsICcwJyk7CisgICAgc2hvdWxkQmUoJ2NvbnRleHQuZ2V0SW50ZWdlcihjb250
ZXh0LlRFWFRVUkVfQklORElOR19DVUJFX01BUCknLCAnMCcpOworICAgIHNob3VsZEJlKCdjb250
ZXh0LmdldEludGVnZXIoY29udGV4dC5WSUVXUE9SVCknLCAnMCcpOworfQogCiBkZWJ1ZygiIik7
CiBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0bWwJKHJldmlzaW9uIDQ4OTg1KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDE2IEBAIHZhciBfX3NraXBfXyA9IHsKICAgICAid2lu
ZG93Lm9iakNQbHVnaW5GdW5jdGlvbiIgOiAxLAogICAgICJ3aW5kb3cucGxhaW5UZXh0IiA6IDEs
CiAgICAgIndpbmRvdy50ZXh0SW5wdXRDb250cm9sbGVyIiA6IDEsCi0gICAgIndpbmRvdy5DYW52
YXNSZW5kZXJpbmdDb250ZXh0M0QiIDogMSAvLyBXZSBpZ25vcmUgQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDNEIGFuZCB0ZXN0IGl0IGVsc2V3aGVyZSwgc2luY2UgaXQgaXMgbm90IGluIGFsbCBidWls
ZHMKKyAgICAvLyBJZ25vcmUgdGhlc2UgcHJvcGVydGllcyBiZWNhdXNlIHRoZXkgZG8gbm90IGV4
aXN0IGluIGFsbCBpbXBsZW1lbnRhdGlvbnMuIFRoZXkgd2lsbCBiZSB0ZXN0ZWQgc2VwYXJhdGVs
eQorICAgICJ3aW5kb3cuQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEIiA6IDEsIAorICAgICJ3aW5k
b3cuQ2FudmFzQXJyYXlCdWZmZXIiIDogMSwgCisgICAgIndpbmRvdy5DYW52YXNCeXRlQXJyYXki
IDogMSwgCisgICAgIndpbmRvdy5DYW52YXNGbG9hdEFycmF5IiA6IDEsIAorICAgICJ3aW5kb3cu
Q2FudmFzSW50QXJyYXkiIDogMSwgCisgICAgIndpbmRvdy5DYW52YXNTaG9ydEFycmF5IiA6IDEs
IAorICAgICJ3aW5kb3cuQ2FudmFzVW5zaWduZWRCeXRlQXJyYXkiIDogMSwgCisgICAgIndpbmRv
dy5DYW52YXNVbnNpZ25lZEludEFycmF5IiA6IDEsIAorICAgICJ3aW5kb3cuQ2FudmFzVW5zaWdu
ZWRTaG9ydEFycmF5IiA6IDEKIH07CiAKIGZ1bmN0aW9uIGxvZ1ZhbHVlKHZhbHVlTmFtZSkKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9jb25zdHJ1Y3RlZC1vYmplY3Rz
LXByb3RvdHlwZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0
LXRlc3RzL2NvbnN0cnVjdGVkLW9iamVjdHMtcHJvdG90eXBlcy5qcwkocmV2aXNpb24gNDg5ODUp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvY29uc3RydWN0ZWQtb2JqZWN0
cy1wcm90b3R5cGVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiwxNyBAQCBmdW5jdGlv
biBjb25zdHJ1Y3RvclByb3BlcnRpZXNPbldpbmRvdyhnCiAgICAgICAgIGlmICh2YWx1ZSA9PSBu
dWxsKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIHZhciB0eXBlID0gY2xhc3NOYW1l
Rm9yT2JqZWN0KHZhbHVlKTsKKyAgICAgICAgLy8gSWdub3JlIHRoZXNlIHByb3BlcnRpZXMgYmVj
YXVzZSB0aGV5IGRvIG5vdCBleGlzdCBpbiBhbGwgaW1wbGVtZW50YXRpb25zLiBUaGV5IHdpbGwg
YmUgdGVzdGVkIHNlcGFyYXRlbHkKKyAgICAgICAgaWYgKHR5cGUgPT0gIkNhbnZhc1JlbmRlcmlu
Z0NvbnRleHQzRENvbnN0cnVjdG9yIiB8fAorICAgICAgICAgICAgdHlwZSA9PSAiQ2FudmFzQXJy
YXlCdWZmZXJDb25zdHJ1Y3RvciIgfHwKKyAgICAgICAgICAgIHR5cGUgPT0iQ2FudmFzQnl0ZUFy
cmF5Q29uc3RydWN0b3IiIHx8CisgICAgICAgICAgICB0eXBlID09IkNhbnZhc0Zsb2F0QXJyYXlD
b25zdHJ1Y3RvciIgfHwKKyAgICAgICAgICAgIHR5cGUgPT0iQ2FudmFzSW50QXJyYXlDb25zdHJ1
Y3RvciIgfHwKKyAgICAgICAgICAgIHR5cGUgPT0iQ2FudmFzU2hvcnRBcnJheUNvbnN0cnVjdG9y
IiB8fAorICAgICAgICAgICAgdHlwZSA9PSJDYW52YXNVbnNpZ25lZEJ5dGVBcnJheUNvbnN0cnVj
dG9yIiB8fAorICAgICAgICAgICAgdHlwZSA9PSJDYW52YXNVbnNpZ25lZEludEFycmF5Q29uc3Ry
dWN0b3IiIHx8CisgICAgICAgICAgICB0eXBlID09IkNhbnZhc1Vuc2lnbmVkU2hvcnRBcnJheUNv
bnN0cnVjdG9yIikKKyAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoIXR5cGUubWF0
Y2goJ0NvbnN0cnVjdG9yJCcpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGNvbnN0
cnVjdG9yTmFtZXMucHVzaChwcm9wZXJ0eSk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9z
Y3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNlLTIuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS0yLmpz
CShyZXZpc2lvbiA0ODk4NSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0cy9w
cm90b3R5cGUtaW5oZXJpdGFuY2UtMi5qcwkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsMTYg
QEAgZnVuY3Rpb24gY29uc3RydWN0b3JOYW1lc0ZvcldpbmRvdyhnbG9iYQogICAgICAgICBpZiAo
dmFsdWUgPT0gbnVsbCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB2YXIgdHlwZSA9
IGNsYXNzTmFtZUZvck9iamVjdCh2YWx1ZSk7Ci0gICAgICAgIGlmICh0eXBlID09ICJDYW52YXNS
ZW5kZXJpbmdDb250ZXh0M0RDb25zdHJ1Y3RvciIpCisgICAgICAgIC8vIElnbm9yZSB0aGVzZSBw
cm9wZXJ0aWVzIGJlY2F1c2UgdGhleSBkbyBub3QgZXhpc3QgaW4gYWxsIGltcGxlbWVudGF0aW9u
cy4gVGhleSB3aWxsIGJlIHRlc3RlZCBzZXBhcmF0ZWx5CisgICAgICAgIGlmICh0eXBlID09ICJD
YW52YXNSZW5kZXJpbmdDb250ZXh0M0RDb25zdHJ1Y3RvciIgfHwgCisgICAgICAgICAgICB0eXBl
ID09ICJDYW52YXNBcnJheUJ1ZmZlckNvbnN0cnVjdG9yIiB8fAorICAgICAgICAgICAgdHlwZSA9
PSAiQ2FudmFzQnl0ZUFycmF5Q29uc3RydWN0b3IiIHx8CisgICAgICAgICAgICB0eXBlID09IkNh
bnZhc0Zsb2F0QXJyYXlDb25zdHJ1Y3RvciIgfHwKKyAgICAgICAgICAgIHR5cGUgPT0iQ2FudmFz
SW50QXJyYXlDb25zdHJ1Y3RvciIgfHwKKyAgICAgICAgICAgIHR5cGUgPT0iQ2FudmFzU2hvcnRB
cnJheUNvbnN0cnVjdG9yIiB8fAorICAgICAgICAgICAgdHlwZSA9PSJDYW52YXNVbnNpZ25lZEJ5
dGVBcnJheUNvbnN0cnVjdG9yIiB8fAorICAgICAgICAgICAgdHlwZSA9PSJDYW52YXNVbnNpZ25l
ZEludEFycmF5Q29uc3RydWN0b3IiIHx8CisgICAgICAgICAgICB0eXBlID09IkNhbnZhc1Vuc2ln
bmVkU2hvcnRBcnJheUNvbnN0cnVjdG9yIikKICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBXZSBp
Z25vcmUgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEIGFuZCB0ZXN0IGl0IGVsc2V3aGVyZSwgc2lu
Y2UgaXQgaXMgbm90IGluIGFsbCBidWlsZHMKICAgICAgICAgaWYgKCF0eXBlLm1hdGNoKCdDb25z
dHJ1Y3RvciQnKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2NyaXB0LXRlc3RzL3Byb3RvdHlwZS1pbmhlcml0YW5jZS5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9zY3JpcHQtdGVzdHMvcHJvdG90eXBlLWluaGVyaXRhbmNl
LmpzCShyZXZpc2lvbiA0ODk4NSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL3NjcmlwdC10ZXN0
cy9wcm90b3R5cGUtaW5oZXJpdGFuY2UuanMJKHdvcmtpbmcgY29weSkKQEAgLTEyLDcgKzEyLDkg
QEAgdmFyIHNraXBwZWRQcm9wZXJ0aWVzID0gWwogICAgICJvYmpDQ29udHJvbGxlciIsICJ0ZXh0
SW5wdXRDb250cm9sbGVyIiwgIm5hdmlnYXRpb25Db250cm9sbGVyIiwKICAgICAiZXZlbnRTZW5k
ZXIiLCAib2JqQ1BsdWdpbiIsICJvYmpDUGx1Z2luRnVuY3Rpb24iLAogICAgICJhcHBsZVNjcmlw
dENvbnRyb2xsZXIiLCAicGxhaW5UZXh0IiwgImFjY2Vzc2liaWxpdHlDb250cm9sbGVyIiwKLSAg
ICAiQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEIiwgLy8gSWdub3JlIHRoaXMgcHJvcGVydHkgYmVj
YXVzZSBpdCBkb2VzIG5vdCBleGlzdCBpbiBhbGwgaW1wbGVtZW50YXRpb25zLiBJdCB3aWxsIGJl
IHRlc3RlZCBzZXBhcmF0ZWx5CisgICAgLy8gSWdub3JlIHRoZXNlIHByb3BlcnRpZXMgYmVjYXVz
ZSB0aGV5IGRvIG5vdCBleGlzdCBpbiBhbGwgaW1wbGVtZW50YXRpb25zLiBUaGV5IHdpbGwgYmUg
dGVzdGVkIHNlcGFyYXRlbHkKKyAgICAiQ2FudmFzUmVuZGVyaW5nQ29udGV4dDNEIiwgIkNhbnZh
c0FycmF5QnVmZmVyIiwgCisgICAgIkNhbnZhc0J5dGVBcnJheSIsICJDYW52YXNGbG9hdEFycmF5
IiwgIkNhbnZhc0ludEFycmF5IiwgIkNhbnZhc1Nob3J0QXJyYXkiLCAiQ2FudmFzVW5zaWduZWRC
eXRlQXJyYXkiLCAiQ2FudmFzVW5zaWduZWRJbnRBcnJheSIsICJDYW52YXNVbnNpZ25lZFNob3J0
QXJyYXkiLCAKIF07CiAKIHZhciBza2lwcGVkUHJvcGVydGllc1NldCA9IHt9OwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvZ2xvYmFsLWNvbnN0cnVjdG9ycy5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9nbG9iYWwtY29uc3Ry
dWN0b3JzLmpzCShyZXZpc2lvbiA0ODk4NSkKKysrIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0
LXRlc3RzL2dsb2JhbC1jb25zdHJ1Y3RvcnMuanMJKHdvcmtpbmcgY29weSkKQEAgLTE1LDYgKzE1
LDE5IEBAIGNvbnN0cnVjdG9yTmFtZXMuc29ydCgpOwogZm9yICh2YXIgeCBpbiBjb25zdHJ1Y3Rv
ck5hbWVzKSB7CiAgICAgdmFyIG5hbWUgPSBjb25zdHJ1Y3Rvck5hbWVzW3hdOwogICAgIHZhciBl
eHBlY3RlZENvbnN0cnVjdG9yTmFtZSA9ICInW29iamVjdCAiICsgbmFtZSArICJDb25zdHJ1Y3Rv
cl0nIjsKKworICAgIC8vIElnbm9yZSB0aGVzZSBwcm9wZXJ0aWVzIGJlY2F1c2UgdGhleSBkbyBu
b3QgZXhpc3QgaW4gYWxsIGltcGxlbWVudGF0aW9ucy4gVGhleSB3aWxsIGJlIHRlc3RlZCBzZXBh
cmF0ZWx5CisgICAgaWYgKG5hbWUgPT0gIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQzRCIgfHwKKyAg
ICAgICAgbmFtZSA9PSAiQ2FudmFzQXJyYXlCdWZmZXIiIHx8CisgICAgICAgIG5hbWUgPT0iQ2Fu
dmFzQnl0ZUFycmF5IiB8fAorICAgICAgICBuYW1lID09IkNhbnZhc0Zsb2F0QXJyYXkiIHx8Cisg
ICAgICAgIG5hbWUgPT0iQ2FudmFzSW50QXJyYXkiIHx8CisgICAgICAgIG5hbWUgPT0iQ2FudmFz
U2hvcnRBcnJheSIgfHwKKyAgICAgICAgbmFtZSA9PSJDYW52YXNVbnNpZ25lZEJ5dGVBcnJheSIg
fHwKKyAgICAgICAgbmFtZSA9PSJDYW52YXNVbnNpZ25lZEludEFycmF5IiB8fAorICAgICAgICBu
YW1lID09IkNhbnZhc1Vuc2lnbmVkU2hvcnRBcnJheSIpCisgICAgICAgIGNvbnRpbnVlOworCiAg
ICAgaWYgKG5hbWUgPT0gIlhNTERvY3VtZW50IikKICAgICAgICAgLy8gR2Vja28gZXhwb3NlcyBh
biAiWE1MRG9jdW1lbnQiIGNvbnN0cnVjdG9yLCBidXQgd2UganVzdCB1c2UgRG9jdW1lbnQgZm9y
IFhNTCBkb2N1bWVudHMgaW5zdGVhZCBvZiBhIGN1c3RvbSBzdWItdHlwZQogICAgICAgICBleHBl
Y3RlZENvbnN0cnVjdG9yTmFtZSA9ICInW29iamVjdCBEb2N1bWVudENvbnN0cnVjdG9yXSciOwo=
</data>
<flag name="review"
          id="21717"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>