<?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>74542</bug_id>
          
          <creation_ts>2011-12-14 14:46:38 -0800</creation_ts>
          <short_desc>Implement flexDirection and flexWrap and make flexFlow a proper shorthand.</short_desc>
          <delta_ts>2011-12-14 15:39:36 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ojan Vafai">ojan</reporter>
          <assigned_to name="Ojan Vafai">ojan</assigned_to>
          <cc>hyatt</cc>
    
    <cc>macpherson</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>521311</commentid>
    <comment_count>0</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-12-14 14:46:38 -0800</bug_when>
    <thetext>Implement flexDirection and flexWrap and make flexFlow a proper shorthand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521315</commentid>
    <comment_count>1</comment_count>
      <attachid>119302</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-12-14 14:48:19 -0800</bug_when>
    <thetext>Created attachment 119302
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521347</commentid>
    <comment_count>2</comment_count>
      <attachid>119302</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-12-14 15:20:20 -0800</bug_when>
    <thetext>Comment on attachment 119302
Patch

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

Maybe add a test case that sets (direction|wrap) and flow and the last one set wins.

&gt; LayoutTests/css3/flexbox/script-tests/css-properties.js:154
&gt; +    shouldBeEqualToString(&apos;flexbox.style.webkitFlexFlow&apos;, (expected).replace(/^ /, &apos;&apos;).replace(/ $/, &apos;&apos;));

Nit: Remove () around expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521371</commentid>
    <comment_count>3</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-12-14 15:39:36 -0800</bug_when>
    <thetext>Committed r102837: &lt;http://trac.webkit.org/changeset/102837&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119302</attachid>
            <date>2011-12-14 14:48:19 -0800</date>
            <delta_ts>2011-12-14 15:20:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74542-20111214144818.patch</filename>
            <type>text/plain</type>
            <size>36863</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyODAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgwZjIyYzBiNjU0ODU4
MzA4YjRkOTIxZTM0ZDc1MmUxOWFkMTIzYS4uYTUxMThkYmJhYmZkYjI5ODIwNDgwYzg5NmVlYTdl
NmJjNThkODg4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDExLTEyLTE0ICBPamFu
IFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IGZsZXhEaXJl
Y3Rpb24gYW5kIGZsZXhXcmFwIGFuZCBtYWtlIGZsZXhGbG93IGEgcHJvcGVyIHNob3J0aGFuZC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTQyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gYSBmb2xs
b3d1cCBwYXRjaCwgSSdsbCBjbGVhbnVwIGFsbCB0aGUgKkZsb3cgbWV0aG9kcyBpbiBSZW5kZXJG
bGV4aWJsZUJveC4KKworICAgICAgICBFeGlzdGluZyB0ZXN0cyBjb3ZlciBhbGwgdGhlIHJlbmRl
cmluZyBiZWhhdmlvcnMsIHNvIG9ubHkgbmVlZCB0byB0ZXN0CisgICAgICAgIHRoZSBjc3MgcHJv
cGVydHkgcGFyc2luZy4KKworICAgICAgICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpn
ZXRQcm9wZXJ0eUNTU1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFy
YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb246
OmdldFByb3BlcnR5VmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUHJp
bWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWU6OkNTU1ByaW1pdGl2ZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjpvcGVyYXRvciBFRmxleERpcmVjdGlvbik6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5Ojppc0luaGVyaXRlZFByb3BlcnR5
KToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlMb25naGFuZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjppbml0U2hvcnRoYW5kTWFwKToKKyAgICAgICAgKiBjc3MvQ1NTUHJvcGVydHlOYW1lcy5p
bjoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1N0eWxlQXBwbHlQcm9wZXJ0eTo6Q1NTU3R5bGVBcHBseVByb3BlcnR5KToKKyAg
ICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NT
dHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c2l6ZXNUb0ludHJpbnNpY0xv
Z2ljYWxXaWR0aCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94Ojppc0NvbHVtbkZsb3cpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmlzTGVmdFRvUmlnaHRGbG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRBbmRQbGFjZUNoaWxkcmVu
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjphbGlnbkNoaWxkcmVuKToK
KyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkluaGVyaXRlZEZsYWdzOjpmbGV4RGlyZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
aGVyaXRlZEZsYWdzOjppc0NvbHVtbkZsZXhEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
SW5oZXJpdGVkRmxhZ3M6OnNldEZsZXhEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SW5o
ZXJpdGVkRmxhZ3M6OmluaXRpYWxGbGV4RGlyZWN0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
U3R5bGVGbGV4aWJsZUJveERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVGbGV4aWJs
ZUJveERhdGE6OlN0eWxlRmxleGlibGVCb3hEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
RmxleGlibGVCb3hEYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
U3R5bGVGbGV4aWJsZUJveERhdGEuaDoKKwogMjAxMS0xMi0xNCAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gRml4IFBsYXRmb3JtU2Ny
ZWVuOjpzY3JlZW5BdmFpbGFibGVSZWN0IHdoZW4gdGhlcmUncyBubyB2aWV3IHdpZGdldApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApp
bmRleCBjNTMxMDg0NDBjYTdkYzNjZDgxOTZmMTU0YTlkNTM0YjJlYmYxZmMxLi45NzE5M2M2ZjQw
NmFlMmZkZDk1YjJiMjVkYjU4YjdmYmEzZDhlNzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjE4LDcgKzIxOCw5IEBA
IHN0YXRpYyBjb25zdCBpbnQgY29tcHV0ZWRQcm9wZXJ0aWVzW10gPSB7CiAgICAgQ1NTUHJvcGVy
dHlXZWJraXRGbGV4T3JkZXIsCiAgICAgQ1NTUHJvcGVydHlXZWJraXRGbGV4UGFjaywKICAgICBD
U1NQcm9wZXJ0eVdlYmtpdEZsZXhBbGlnbiwKKyAgICBDU1NQcm9wZXJ0eVdlYmtpdEZsZXhEaXJl
Y3Rpb24sCiAgICAgQ1NTUHJvcGVydHlXZWJraXRGbGV4RmxvdywKKyAgICBDU1NQcm9wZXJ0eVdl
YmtpdEZsZXhXcmFwLAogICAgIENTU1Byb3BlcnR5V2Via2l0Rm9udFNtb290aGluZywKICNpZiBF
TkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAgIENTU1Byb3BlcnR5V2Via2l0R3JpZENvbHVtbnMs
CkBAIC0xNDg0LDkgKzE0ODYsMTMgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKGludCBwcm9wZXIKICAgICAgICAg
ICAgIHJldHVybiBjc3NWYWx1ZVBvb2wtPmNyZWF0ZVZhbHVlKHN0eWxlLT5mbGV4UGFjaygpKTsK
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZsZXhBbGlnbjoKICAgICAgICAgICAgIHJl
dHVybiBjc3NWYWx1ZVBvb2wtPmNyZWF0ZVZhbHVlKHN0eWxlLT5mbGV4QWxpZ24oKSk7CisgICAg
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGbGV4RGlyZWN0aW9uOgorICAgICAgICAgICAgcmV0
dXJuIGNzc1ZhbHVlUG9vbC0+Y3JlYXRlVmFsdWUoc3R5bGUtPmZsZXhEaXJlY3Rpb24oKSk7Cisg
ICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGbGV4V3JhcDoKKyAgICAgICAgICAgIHJldHVy
biBjc3NWYWx1ZVBvb2wtPmNyZWF0ZVZhbHVlKHN0eWxlLT5mbGV4V3JhcCgpKTsKICAgICAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZsZXhGbG93OiB7CiAgICAgICAgICAgICBSZWZQdHI8Q1NT
VmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOwot
ICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbC0+Y3JlYXRlVmFsdWUoc3R5bGUt
PmZsZXhGbG93KCkpKTsKKyAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2wtPmNy
ZWF0ZVZhbHVlKHN0eWxlLT5mbGV4RGlyZWN0aW9uKCkpKTsKICAgICAgICAgICAgIGxpc3QtPmFw
cGVuZChjc3NWYWx1ZVBvb2wtPmNyZWF0ZVZhbHVlKHN0eWxlLT5mbGV4V3JhcCgpKSk7CiAgICAg
ICAgICAgICByZXR1cm4gbGlzdC5yZWxlYXNlKCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDJiNzgyZjJj
ODdiZjg4Yjc0ZDdiNDFmOTM0MTA1MGE2ZGU1ZjJmNDEuLjcwMWY4YTA0MDU1YTI4NjI3NDA1YWNm
NWFiNWQ2NWMyODBlNmY4OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNdXRh
YmxlU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU011dGFi
bGVTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMjg2LDYgKzI4NiwxMCBAQCBTdHJpbmcgQ1NTTXV0
YWJsZVN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5VmFsdWUoaW50IHByb3BlcnR5SUQpIGNv
bnN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ1NTUHJvcGVydHlC
b3JkZXJCb3R0b21TdHlsZSwgQ1NTUHJvcGVydHlCb3JkZXJMZWZ0U3R5bGUgfTsKICAgICAgICAg
ICAgIHJldHVybiBnZXQ0VmFsdWVzKHByb3BlcnRpZXMpOwogICAgICAgICB9CisgICAgICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRGbGV4RmxvdzogeworICAgICAgICAgICAgY29uc3QgaW50IHBy
b3BlcnRpZXNbXSA9IHsgQ1NTUHJvcGVydHlXZWJraXRGbGV4RGlyZWN0aW9uLCBDU1NQcm9wZXJ0
eVdlYmtpdEZsZXhXcmFwIH07CisgICAgICAgICAgICByZXR1cm4gZ2V0U2hvcnRoYW5kVmFsdWUo
cHJvcGVydGllcyk7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnQ6CiAg
ICAgICAgICAgICByZXR1cm4gZm9udFZhbHVlKCk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlN
YXJnaW46IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggM2UxOGRhOGFiMzVjOTViZGVj
YzJmYmI1YTc5MDUzNzFhZjRmM2VjNC4uYjcyZjY5MTUxZTgxMzZiNDZhMGQwYzQ2NGJkYWMwYjlk
YTY3MmZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTE2MjAsMjQgKzE2MjAsMTEg
QEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQp
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZsZXhBbGlnbjoKICAgICAgICAgdmFsaWRQcmlt
aXRpdmUgPSBpZCA9PSBDU1NWYWx1ZVN0YXJ0IHx8IGlkID09IENTU1ZhbHVlRW5kIHx8IGlkID09
IENTU1ZhbHVlQ2VudGVyIHx8IGlkID09IENTU1ZhbHVlQmFzZWxpbmUgfHwgaWQgPT0gQ1NTVmFs
dWVTdHJldGNoOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rmxl
eEZsb3c6Ci0gICAgICAgIC8vIEZJWE1FOiBVc2UgcGFyc2VTaG9ydGhhbmQgb25jZSB3ZSBhZGQg
ZmxleC1kaXJlY3Rpb24gYW5kIGZsZXgtd3JhcC4KLSAgICAgICAgLy8gWyByb3cgfCByb3ctcmV2
ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlIF0gfHwgWyBub3dyYXAgfCB3cmFwIHwgd3Jh
cC1yZXZlcnNlIF0/CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZsZXhEaXJlY3Rpb246CiAg
ICAgICAgIHZhbGlkUHJpbWl0aXZlID0gaWQgPT0gQ1NTVmFsdWVSb3cgfHwgaWQgPT0gQ1NTVmFs
dWVSb3dSZXZlcnNlIHx8IGlkID09IENTU1ZhbHVlQ29sdW1uIHx8IGlkID09IENTU1ZhbHVlQ29s
dW1uUmV2ZXJzZTsKLSAgICAgICAgaWYgKCF2YWxpZFByaW1pdGl2ZSkKLSAgICAgICAgICAgIHZh
bGlkUHJpbWl0aXZlID0gaWQgPT0gQ1NTVmFsdWVOb3dyYXAgfHwgaWQgPT0gQ1NTVmFsdWVXcmFw
IHx8IGlkID09IENTU1ZhbHVlV3JhcFJldmVyc2U7Ci0gICAgICAgIGVsc2UgaWYgKHZhbGlkUHJp
bWl0aXZlICYmIG51bSA9PSAyKSB7Ci0gICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBs
aXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOwotICAgICAgICAgICAg
bGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgpLT5jcmVhdGVJZGVudGlmaWVyVmFsdWUoaWQpKTsK
LQotICAgICAgICAgICAgdmFsdWUgPSBtX3ZhbHVlTGlzdC0+bmV4dCgpOwotICAgICAgICAgICAg
aWYgKHZhbHVlLT5pZCAhPSBDU1NWYWx1ZU5vd3JhcCAmJiB2YWx1ZS0+aWQgIT0gQ1NTVmFsdWVX
cmFwICYmIHZhbHVlLT5pZCAhPSBDU1NWYWx1ZVdyYXBSZXZlcnNlKQotICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNzc1ZhbHVlUG9vbCgp
LT5jcmVhdGVJZGVudGlmaWVyVmFsdWUodmFsdWUtPmlkKSk7Ci0gICAgICAgICAgICBhZGRQcm9w
ZXJ0eShwcm9wSWQsIGxpc3QsIGltcG9ydGFudCk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rmxl
eFdyYXA6CisgICAgICAgIHZhbGlkUHJpbWl0aXZlID0gaWQgPT0gQ1NTVmFsdWVOb3dyYXAgfHwg
aWQgPT0gQ1NTVmFsdWVXcmFwIHx8IGlkID09IENTU1ZhbHVlV3JhcFJldmVyc2U7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVlOiB7CiAgICAgICAgIGNv
bnN0IGludCBwcm9wZXJ0aWVzWzVdID0geyBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVEaXJlY3Rp
b24sIENTU1Byb3BlcnR5V2Via2l0TWFycXVlZUluY3JlbWVudCwKQEAgLTIxMzMsNiArMjEyMCwx
MSBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFu
dCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENTU1Byb3BlcnR5UGFkZGlu
Z0JvdHRvbSwgQ1NTUHJvcGVydHlQYWRkaW5nTGVmdCB9OwogICAgICAgICByZXR1cm4gcGFyc2U0
VmFsdWVzKHByb3BJZCwgcHJvcGVydGllcywgaW1wb3J0YW50KTsKICAgICB9CisgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEZsZXhGbG93OgorICAgIHsKKyAgICAgICAgY29uc3QgaW50IHByb3Bl
cnRpZXNbXSA9IHsgQ1NTUHJvcGVydHlXZWJraXRGbGV4RGlyZWN0aW9uLCBDU1NQcm9wZXJ0eVdl
YmtpdEZsZXhXcmFwIH07CisgICAgICAgIHJldHVybiBwYXJzZVNob3J0aGFuZChwcm9wSWQsIHBy
b3BlcnRpZXMsIDIsIGltcG9ydGFudCk7CisgICAgfQogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250
OgogICAgICAgICAvLyBbIFsgJ2ZvbnQtc3R5bGUnIHx8ICdmb250LXZhcmlhbnQnIHx8ICdmb250
LXdlaWdodCcgXT8gJ2ZvbnQtc2l6ZScgWyAvICdsaW5lLWhlaWdodCcgXT8KICAgICAgICAgLy8g
J2ZvbnQtZmFtaWx5JyBdIHwgY2FwdGlvbiB8IGljb24gfCBtZW51IHwgbWVzc2FnZS1ib3ggfCBz
bWFsbC1jYXB0aW9uIHwgc3RhdHVzLWJhciB8IGluaGVyaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCmluZGV4IDU0OTcyOWQyMjEwZGYzODY2YzVj
ODFiYTZjYTE4NGRjMTM3ZWE1OWEuLjNjZjFkNTNkM2Y0MWEyOGMyYThkMDE2YjgxNzRjY2ViODJj
ODZhZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1h
cHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaApAQCAtMTIwMCw3ICsxMjAwLDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZl
VmFsdWU6Om9wZXJhdG9yIEVGbGV4UGFjaygpIGNvbnN0CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+
IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUZsZXhGbG93IGUp
Cit0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUo
RUZsZXhEaXJlY3Rpb24gZSkKICAgICA6IENTU1ZhbHVlKFByaW1pdGl2ZUNsYXNzKQogewogICAg
IG1fcHJpbWl0aXZlVW5pdFR5cGUgPSBDU1NfSURFTlQ7CkBAIC0xMjIwLDcgKzEyMjAsNyBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoRUZs
ZXhGbG93IGUpCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6b3BlcmF0b3IgRUZsZXhGbG93KCkgY29uc3QKK3RlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1p
dGl2ZVZhbHVlOjpvcGVyYXRvciBFRmxleERpcmVjdGlvbigpIGNvbnN0CiB7CiAgICAgc3dpdGNo
IChtX3ZhbHVlLmlkZW50KSB7CiAgICAgY2FzZSBDU1NWYWx1ZVJvdzoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJvcGVydHkuY3BwCmluZGV4IDkyYjJkNTk2ZTMzNDNhN2ZjY2JiMWUwZGNlYmNkMzRkN2ZmM2Zk
MWEuLjNiYmYwMzIyN2I0OTFkYjFkYzYyYTE0YjZjNTMyN2NkMDQ5MGYwZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1Byb3BlcnR5LmNwcApAQCAtNTU5LDcgKzU1OSw5IEBAIGJvb2wgQ1NTUHJvcGVydHk6
OmlzSW5oZXJpdGVkUHJvcGVydHkodW5zaWduZWQgcHJvcGVydHlJRCkKICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0RmxleE9yZGVyOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGbGV4UGFj
azoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0RmxleEFsaWduOgorICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRGbGV4RGlyZWN0aW9uOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGbGV4
RmxvdzoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0RmxleFdyYXA6CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdEZvbnRTaXplRGVsdGE6CiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkK
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZENvbHVtbnM6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlMb25naGFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJvcGVydHlMb25naGFuZC5jcHAKaW5kZXggODY3OWMyOTk1OWI5NTkwNWNhOTVhNTZh
YWE2YmE0MGIxZDJhNDdkNi4uYmRkMTI4Yzc3Y2E1ZmM5MWYyYWEyYTU4MjkxOTYxZmUyZmM1MzY3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TG9uZ2hhbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eUxvbmdoYW5kLmNwcApAQCAtOTEs
NiArOTEsOSBAQCBzdGF0aWMgdm9pZCBpbml0U2hvcnRoYW5kTWFwKFNob3J0aGFuZE1hcCYgc2hv
cnRoYW5kTWFwKQogICAgIHN0YXRpYyBjb25zdCBpbnQgYm9yZGVyU3BhY2luZ1Byb3BlcnRpZXNb
XSA9IHsgQ1NTUHJvcGVydHlXZWJraXRCb3JkZXJIb3Jpem9udGFsU3BhY2luZywgQ1NTUHJvcGVy
dHlXZWJraXRCb3JkZXJWZXJ0aWNhbFNwYWNpbmcgfTsKICAgICBTRVRfU0hPUlRIQU5EX01BUF9F
TlRSWShzaG9ydGhhbmRNYXAsIENTU1Byb3BlcnR5Qm9yZGVyU3BhY2luZywgYm9yZGVyU3BhY2lu
Z1Byb3BlcnRpZXMpOwogCisgICAgc3RhdGljIGNvbnN0IGludCBmbGV4Rmxvd1Byb3BlcnRpZXNb
XSA9IHsgQ1NTUHJvcGVydHlXZWJraXRGbGV4RGlyZWN0aW9uLCBDU1NQcm9wZXJ0eVdlYmtpdEZs
ZXhXcmFwIH07CisgICAgU0VUX1NIT1JUSEFORF9NQVBfRU5UUlkoc2hvcnRoYW5kTWFwLCBDU1NQ
cm9wZXJ0eVdlYmtpdEZsZXhGbG93LCBmbGV4Rmxvd1Byb3BlcnRpZXMpOworCiAgICAgc3RhdGlj
IGNvbnN0IGludCBsaXN0U3R5bGVQcm9wZXJ0aWVzW10gPSB7CiAgICAgICAgIENTU1Byb3BlcnR5
TGlzdFN0eWxlSW1hZ2UsCiAgICAgICAgIENTU1Byb3BlcnR5TGlzdFN0eWxlUG9zaXRpb24sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbiBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCmluZGV4IGVhYzZiMTYzZmNmYTI0Yjg4
YWRhMzk3NDEwMmJhYTc0NzM5YWM3YTQuLmMwMjk5ZGE2MGRlYjJlYjhhOTViOTE3YjRmYTU5YWQw
ZmY1MGY0YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVz
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCkBAIC0yNTQs
OSArMjU0LDExIEBAIHotaW5kZXgKIC13ZWJraXQtZmlsdGVyCiAjZW5kaWYKIC13ZWJraXQtZmxl
eC1hbGlnbgorLXdlYmtpdC1mbGV4LWRpcmVjdGlvbgogLXdlYmtpdC1mbGV4LWZsb3cKIC13ZWJr
aXQtZmxleC1vcmRlcgogLXdlYmtpdC1mbGV4LXBhY2sKKy13ZWJraXQtZmxleC13cmFwCiAtd2Vi
a2l0LWZvbnQtc2l6ZS1kZWx0YQogLXdlYmtpdC1oaWdobGlnaHQKIC13ZWJraXQtaHlwaGVuYXRl
LWNoYXJhY3RlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQ
cm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNw
cAppbmRleCA5MzY1OTlmOGM3YTBjN2I2ZjcwNTU4ZGYwNjc3Mjg2YzdjOWViZTE3Li45ODQxYzE0
ODJmN2RjNzQ3YzMzNGY0YmI1MmYwYjdiZDk0ZmM4MjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcApAQCAtMTMzNiwzOCArMTMzNiw2IEBAIHB1Ymxp
YzoKICAgICB9CiB9OwogCi1jbGFzcyBBcHBseVByb3BlcnR5RmxleEZsb3cgewotcHVibGljOgot
ICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5oZXJpdFZhbHVlKENTU1N0eWxlU2VsZWN0b3IqKSB7IH0K
LQotICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5pdGlhbFZhbHVlKENTU1N0eWxlU2VsZWN0b3IqIHNl
bGVjdG9yKQotICAgIHsKLSAgICAgICAgc2VsZWN0b3ItPnN0eWxlKCktPnNldEZsZXhGbG93KFJl
bmRlclN0eWxlOjppbml0aWFsRmxleEZsb3coKSk7Ci0gICAgICAgIHNlbGVjdG9yLT5zdHlsZSgp
LT5zZXRGbGV4V3JhcChSZW5kZXJTdHlsZTo6aW5pdGlhbEZsZXhXcmFwKCkpOwotICAgIH0KLQot
ICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0b3IsIENT
U1ZhbHVlKiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIGlmICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1
ZSgpKSB7Ci0gICAgICAgICAgICBzZWxlY3Rvci0+c3R5bGUoKS0+c2V0RmxleEZsb3coKnN0YXRp
Y19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpKTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQotICAgICAgICBpZiAodmFsdWUtPmlzVmFsdWVMaXN0KCkpIHsKLSAgICAgICAg
ICAgIENTU1ZhbHVlTGlzdCogbGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVl
KTsKLSAgICAgICAgICAgIGlmIChsaXN0LT5sZW5ndGgoKSAhPSAyKQotICAgICAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICAgICAgc2VsZWN0b3ItPnN0eWxlKCktPnNldEZsZXhGbG93KCpz
dGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGxpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hl
Y2soMCkpKTsKLSAgICAgICAgICAgIHNlbGVjdG9yLT5zdHlsZSgpLT5zZXRGbGV4V3JhcCgqc3Rh
dGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihsaXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNr
KDEpKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVyIGNy
ZWF0ZUhhbmRsZXIoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFByb3BlcnR5SGFuZGxlcigmYXBw
bHlJbmhlcml0VmFsdWUsICZhcHBseUluaXRpYWxWYWx1ZSwgJmFwcGx5VmFsdWUpOwotICAgIH0K
LX07Ci0KIGNsYXNzIEFwcGx5UHJvcGVydHlEaXNwbGF5IHsKIHByaXZhdGU6CiAgICAgc3RhdGlj
IGlubGluZSBib29sIGlzVmFsaWREaXNwbGF5VmFsdWUoQ1NTU3R5bGVTZWxlY3Rvciogc2VsZWN0
b3IsIEVEaXNwbGF5IGRpc3BsYXlQcm9wZXJ0eVZhbHVlKQpAQCAtMTU1Myw3ICsxNTIxLDkgQEAg
Q1NTU3R5bGVBcHBseVByb3BlcnR5OjpDU1NTdHlsZUFwcGx5UHJvcGVydHkoKQogICAgIHNldFBy
b3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdEZsZXhPcmRlciwgQXBwbHlQcm9wZXJ0eURl
ZmF1bHQ8aW50LCAmUmVuZGVyU3R5bGU6OmZsZXhPcmRlciwgaW50LCAmUmVuZGVyU3R5bGU6OnNl
dEZsZXhPcmRlciwgaW50LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxGbGV4T3JkZXI+OjpjcmVhdGVI
YW5kbGVyKCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdEZsZXhQ
YWNrLCBBcHBseVByb3BlcnR5RGVmYXVsdDxFRmxleFBhY2ssICZSZW5kZXJTdHlsZTo6ZmxleFBh
Y2ssIEVGbGV4UGFjaywgJlJlbmRlclN0eWxlOjpzZXRGbGV4UGFjaywgRUZsZXhQYWNrLCAmUmVu
ZGVyU3R5bGU6OmluaXRpYWxGbGV4UGFjaz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJv
cGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0RmxleEFsaWduLCBBcHBseVByb3BlcnR5RGVm
YXVsdDxFRmxleEFsaWduLCAmUmVuZGVyU3R5bGU6OmZsZXhBbGlnbiwgRUZsZXhBbGlnbiwgJlJl
bmRlclN0eWxlOjpzZXRGbGV4QWxpZ24sIEVGbGV4QWxpZ24sICZSZW5kZXJTdHlsZTo6aW5pdGlh
bEZsZXhBbGlnbj46OmNyZWF0ZUhhbmRsZXIoKSk7Ci0gICAgc2V0UHJvcGVydHlIYW5kbGVyKENT
U1Byb3BlcnR5V2Via2l0RmxleEZsb3csIEFwcGx5UHJvcGVydHlGbGV4Rmxvdzo6Y3JlYXRlSGFu
ZGxlcigpKTsKKyAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRGbGV4RGly
ZWN0aW9uLCBBcHBseVByb3BlcnR5RGVmYXVsdDxFRmxleERpcmVjdGlvbiwgJlJlbmRlclN0eWxl
OjpmbGV4RGlyZWN0aW9uLCBFRmxleERpcmVjdGlvbiwgJlJlbmRlclN0eWxlOjpzZXRGbGV4RGly
ZWN0aW9uLCBFRmxleERpcmVjdGlvbiwgJlJlbmRlclN0eWxlOjppbml0aWFsRmxleERpcmVjdGlv
bj46OmNyZWF0ZUhhbmRsZXIoKSk7CisgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5
V2Via2l0RmxleFdyYXAsIEFwcGx5UHJvcGVydHlEZWZhdWx0PEVGbGV4V3JhcCwgJlJlbmRlclN0
eWxlOjpmbGV4V3JhcCwgRUZsZXhXcmFwLCAmUmVuZGVyU3R5bGU6OnNldEZsZXhXcmFwLCBFRmxl
eFdyYXAsICZSZW5kZXJTdHlsZTo6aW5pdGlhbEZsZXhXcmFwPjo6Y3JlYXRlSGFuZGxlcigpKTsK
KyAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRGbGV4RmxvdywgQXBwbHlQ
cm9wZXJ0eUV4cGFuZGluZzxTdXBwcmVzc1ZhbHVlLCBDU1NQcm9wZXJ0eVdlYmtpdEZsZXhEaXJl
Y3Rpb24sIENTU1Byb3BlcnR5V2Via2l0RmxleFdyYXA+OjpjcmVhdGVIYW5kbGVyKCkpOwogCiAg
ICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Rm9udFN0eWxlLCBBcHBseVByb3BlcnR5
Rm9udDxGb250SXRhbGljLCAmRm9udERlc2NyaXB0aW9uOjppdGFsaWMsICZGb250RGVzY3JpcHRp
b246OnNldEl0YWxpYywgRm9udEl0YWxpY09mZj46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0
UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Rm9udFZhcmlhbnQsIEFwcGx5UHJvcGVydHlGb250
PEZvbnRTbWFsbENhcHMsICZGb250RGVzY3JpcHRpb246OnNtYWxsQ2FwcywgJkZvbnREZXNjcmlw
dGlvbjo6c2V0U21hbGxDYXBzLCBGb250U21hbGxDYXBzT2ZmPjo6Y3JlYXRlSGFuZGxlcigpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAppbmRleCAwMTFhMDhkYzNhZjFj
OTNlNzZhNGJkOTU1ZmVjMTJjYjMzNWU1NzhjLi5iZTBhYTJkM2I4ZjNhMTA5ZjgzMTNmYmQ5N2Vk
YTQ5NDc2ZTRiY2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBA
IC0zODAzLDcgKzM4MDMsOSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHko
aW50IGlkLCBDU1NWYWx1ZSAqdmFsdWUpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdEZsZXhP
cmRlcjoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0RmxleFBhY2s6CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdEZsZXhBbGlnbjoKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0RmxleERp
cmVjdGlvbjoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0RmxleEZsb3c6CisgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdEZsZXhXcmFwOgogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U3R5bGU6
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRWYXJpYW50OgogICAgIGNhc2UgQ1NTUHJvcGVydHlU
ZXh0UmVuZGVyaW5nOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCBk
YzQ2MTNmYTQzNmE5NmVjYTI0Yzc0ZWU3Y2FkYmI4MDE0NTE0MDExLi5mZTE2ZTJkZjk4ZjNhMDhj
OTAxNGRhYjQwMmI0MzIwNzQzNWYzZDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcApAQCAtMTc5NSw3ICsxNzk1LDcgQEAgYm9vbCBSZW5kZXJCb3g6OnNpemVzVG9JbnRy
aW5zaWNMb2dpY2FsV2lkdGgoTG9naWNhbFdpZHRoVHlwZSB3aWR0aFR5cGUpIGNvbnN0CiAgICAg
Ly8gRmxleGlibGUgYm94IGl0ZW1zIHNob3VsZCBzaHJpbmsgd3JhcCwgc28gd2UgbGF5IHRoZW0g
b3V0IGF0IHRoZWlyIGludHJpbnNpYyB3aWR0aHMuCiAgICAgLy8gSW4gdGhlIGNhc2Ugb2YgY29s
dW1ucyB0aGF0IGhhdmUgYSBzdHJldGNoIGFsaWdubWVudCwgd2UgZ28gYWhlYWQgYW5kIGxheW91
dCBhdCB0aGUKICAgICAvLyBzdHJldGNoZWQgc2l6ZSB0byBhdm9pZCBhbiBleHRyYSBsYXlvdXQg
d2hlbiBhcHBseWluZyBhbGlnbm1lbnQuCi0gICAgaWYgKHBhcmVudCgpLT5pc0ZsZXhpYmxlQm94
KCkgJiYgKCFwYXJlbnQoKS0+c3R5bGUoKS0+aXNDb2x1bW5GbGV4RmxvdygpIHx8IHN0eWxlKCkt
PmZsZXhBbGlnbigpICE9IEFsaWduU3RyZXRjaCkpCisgICAgaWYgKHBhcmVudCgpLT5pc0ZsZXhp
YmxlQm94KCkgJiYgKCFwYXJlbnQoKS0+c3R5bGUoKS0+aXNDb2x1bW5GbGV4RGlyZWN0aW9uKCkg
fHwgc3R5bGUoKS0+ZmxleEFsaWduKCkgIT0gQWxpZ25TdHJldGNoKSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKICAgICAvLyBGbGV4aWJsZSBob3Jpem9udGFsIGJveGVzIGxheSBvdXQgY2hpbGRy
ZW4gYXQgdGhlaXIgaW50cmluc2ljIHdpZHRocy4gIEFsc28gdmVydGljYWwgYm94ZXMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDg4Yzc3
ZDg0OWI1ZDY2NDNlOTY3ZmJkYzE0ODNlMzE0ODljMzQ3ODguLjhmNmE4Njg0ZWE2NjdjMWZhN2Nk
OWNkNDJmYjVhMTIzM2I1ODZjNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsZXhpYmxlQm94LmNwcApAQCAtMjAzLDcgKzIwMyw3IEBAIGJvb2wgUmVuZGVyRmxleGli
bGVCb3g6Omhhc09ydGhvZ29uYWxGbG93KFJlbmRlckJveCogY2hpbGQpIGNvbnN0CiAKIGJvb2wg
UmVuZGVyRmxleGlibGVCb3g6OmlzQ29sdW1uRmxvdygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHN0
eWxlKCktPmlzQ29sdW1uRmxleEZsb3coKTsKKyAgICByZXR1cm4gc3R5bGUoKS0+aXNDb2x1bW5G
bGV4RGlyZWN0aW9uKCk7CiB9CiAKIGJvb2wgUmVuZGVyRmxleGlibGVCb3g6OmlzSG9yaXpvbnRh
bEZsb3coKSBjb25zdApAQCAtMjE3LDcgKzIxNyw3IEBAIGJvb2wgUmVuZGVyRmxleGlibGVCb3g6
OmlzTGVmdFRvUmlnaHRGbG93KCkgY29uc3QKIHsKICAgICBpZiAoaXNDb2x1bW5GbG93KCkpCiAg
ICAgICAgIHJldHVybiBzdHlsZSgpLT53cml0aW5nTW9kZSgpID09IFRvcFRvQm90dG9tV3JpdGlu
Z01vZGUgfHwgc3R5bGUoKS0+d3JpdGluZ01vZGUoKSA9PSBMZWZ0VG9SaWdodFdyaXRpbmdNb2Rl
OwotICAgIHJldHVybiBzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgXiAoc3R5bGUo
KS0+ZmxleEZsb3coKSA9PSBGbG93Um93UmV2ZXJzZSk7CisgICAgcmV0dXJuIHN0eWxlKCktPmlz
TGVmdFRvUmlnaHREaXJlY3Rpb24oKSBeIChzdHlsZSgpLT5mbGV4RGlyZWN0aW9uKCkgPT0gRmxv
d1Jvd1JldmVyc2UpOwogfQogCiBMZW5ndGggUmVuZGVyRmxleGlibGVCb3g6Om1haW5BeGlzTGVu
Z3RoRm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCkgY29uc3QKQEAgLTYzNiw3ICs2MzYsNyBAQCB2
b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRBbmRQbGFjZUNoaWxkcmVuKEZsZXhPcmRlckl0
ZXJhdG9yJiBpdGVyYXRvciwgY29ucwogICAgICAgICAgICAgc2V0TG9naWNhbEhlaWdodChtYWlu
QXhpc09mZnNldCk7CiAgICAgfQogCi0gICAgaWYgKHN0eWxlKCktPmZsZXhGbG93KCkgPT0gRmxv
d0NvbHVtblJldmVyc2UpIHsKKyAgICBpZiAoc3R5bGUoKS0+ZmxleERpcmVjdGlvbigpID09IEZs
b3dDb2x1bW5SZXZlcnNlKSB7CiAgICAgICAgIC8vIFdlIGhhdmUgdG8gZG8gYW4gZXh0cmEgcGFz
cyBmb3IgY29sdW1uLXJldmVyc2UgdG8gcmVwb3NpdGlvbiB0aGUgZmxleCBpdGVtcyBzaW5jZSB0
aGUgc3RhcnQgZGVwZW5kcwogICAgICAgICAvLyBvbiB0aGUgaGVpZ2h0IG9mIHRoZSBmbGV4Ym94
LCB3aGljaCB3ZSBvbmx5IGtub3cgYWZ0ZXIgd2UndmUgcG9zaXRpb25lZCBhbGwgdGhlIGZsZXgg
aXRlbXMuCiAgICAgICAgIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CkBAIC02ODcsNyArNjg3LDcg
QEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6YWxpZ25DaGlsZHJlbihGbGV4T3JkZXJJdGVyYXRv
ciYgaXRlcmF0b3IsIExheW91dFVuaXQgbWEKICAgICBMYXlvdXRVbml0IGNyb3NzRXh0ZW50ID0g
Y3Jvc3NBeGlzRXh0ZW50KCk7CiAKICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBpdGVyYXRv
ci5maXJzdCgpOyBjaGlsZDsgY2hpbGQgPSBpdGVyYXRvci5uZXh0KCkpIHsKLSAgICAgICAgLy8g
ZGlyZWN0aW9uOnJ0bCArIGZsZXgtZmxvdzpjb2x1bW4gbWVhbnMgdGhlIGNyb3NzLWF4aXMgZGly
ZWN0aW9uIGlzIGZsaXBwZWQuCisgICAgICAgIC8vIGRpcmVjdGlvbjpydGwgKyBmbGV4LWRpcmVj
dGlvbjpjb2x1bW4gbWVhbnMgdGhlIGNyb3NzLWF4aXMgZGlyZWN0aW9uIGlzIGZsaXBwZWQuCiAg
ICAgICAgIGlmICghc3R5bGUoKS0+aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpICYmIGlzQ29sdW1u
RmxvdygpKSB7CiAgICAgICAgICAgICBMYXlvdXRQb2ludCBsb2NhdGlvbiA9IGZsb3dBd2FyZUxv
Y2F0aW9uRm9yQ2hpbGQoY2hpbGQpOwogICAgICAgICAgICAgbG9jYXRpb24uc2V0WShjcm9zc0V4
dGVudCAtIGNyb3NzQXhpc0V4dGVudEZvckNoaWxkKGNoaWxkKSAtIGxvY2F0aW9uLnkoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGM0Nzcw
NmRkZmRkZDU3NDJlOTdhZWI0ZDk4ODc0NzlmNjU3MTViZGYuLjA2YjVjYjhmOTMwMzZmNTA0ODhk
NmJmZGVjYzVjYTIwZTQ1ZGZhNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCkBAIC03MjUsOCArNzI1LDggQEAgcHVibGljOgogICAgIGludCBmbGV4
T3JkZXIoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9mbGV4aWJsZUJv
eC0+bV9mbGV4T3JkZXI7IH0KICAgICBFRmxleFBhY2sgZmxleFBhY2soKSBjb25zdCB7IHJldHVy
biBzdGF0aWNfY2FzdDxFRmxleFBhY2s+KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2ZsZXhpYmxl
Qm94LT5tX2ZsZXhQYWNrKTsgfQogICAgIEVGbGV4QWxpZ24gZmxleEFsaWduKCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8RUZsZXhBbGlnbj4ocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZmxl
eGlibGVCb3gtPm1fZmxleEFsaWduKTsgfQotICAgIEVGbGV4RmxvdyBmbGV4RmxvdygpIGNvbnN0
IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVGbGV4Rmxvdz4ocmFyZU5vbkluaGVyaXRlZERhdGEtPm1f
ZmxleGlibGVCb3gtPm1fZmxleEZsb3cpOyB9Ci0gICAgYm9vbCBpc0NvbHVtbkZsZXhGbG93KCkg
Y29uc3QgeyByZXR1cm4gZmxleEZsb3coKSA9PSBGbG93Q29sdW1uIHx8IGZsZXhGbG93KCkgPT0g
Rmxvd0NvbHVtblJldmVyc2U7IH0KKyAgICBFRmxleERpcmVjdGlvbiBmbGV4RGlyZWN0aW9uKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUZsZXhEaXJlY3Rpb24+KHJhcmVOb25Jbmhlcml0
ZWREYXRhLT5tX2ZsZXhpYmxlQm94LT5tX2ZsZXhEaXJlY3Rpb24pOyB9CisgICAgYm9vbCBpc0Nv
bHVtbkZsZXhEaXJlY3Rpb24oKSBjb25zdCB7IHJldHVybiBmbGV4RGlyZWN0aW9uKCkgPT0gRmxv
d0NvbHVtbiB8fCBmbGV4RGlyZWN0aW9uKCkgPT0gRmxvd0NvbHVtblJldmVyc2U7IH0KICAgICBF
RmxleFdyYXAgZmxleFdyYXAoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFRmxleFdyYXA+
KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2ZsZXhpYmxlQm94LT5tX2ZsZXhXcmFwKTsgfQogCiAj
aWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKQEAgLTExNDcsNyArMTE0Nyw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldEZsZXhPcmRlcihpbnQgbykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWRE
YXRhLmFjY2VzcygpLT5tX2ZsZXhpYmxlQm94LCBtX2ZsZXhPcmRlciwgbyk7IH0KICAgICB2b2lk
IHNldEZsZXhQYWNrKEVGbGV4UGFjayBwKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEu
YWNjZXNzKCktPm1fZmxleGlibGVCb3gsIG1fZmxleFBhY2ssIHApOyB9CiAgICAgdm9pZCBzZXRG
bGV4QWxpZ24oRUZsZXhBbGlnbiBhKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNj
ZXNzKCktPm1fZmxleGlibGVCb3gsIG1fZmxleEFsaWduLCBhKTsgfQotICAgIHZvaWQgc2V0Rmxl
eEZsb3coRUZsZXhGbG93IGZsb3cpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nl
c3MoKS0+bV9mbGV4aWJsZUJveCwgbV9mbGV4RmxvdywgZmxvdyk7IH0KKyAgICB2b2lkIHNldEZs
ZXhEaXJlY3Rpb24oRUZsZXhEaXJlY3Rpb24gZGlyZWN0aW9uKSB7IFNFVF9WQVIocmFyZU5vbklu
aGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZmxleGlibGVCb3gsIG1fZmxleERpcmVjdGlvbiwgZGly
ZWN0aW9uKTsgfQogICAgIHZvaWQgc2V0RmxleFdyYXAoRUZsZXhXcmFwIHcpIHsgU0VUX1ZBUihy
YXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9mbGV4aWJsZUJveCwgbV9mbGV4V3JhcCwg
dyk7IH0KICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAgIHZvaWQgc2V0R3JpZENvbHVt
bnMoY29uc3QgVmVjdG9yPExlbmd0aD4mIGxlbmd0aHMpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJp
dGVkRGF0YS5hY2Nlc3MoKS0+bV9ncmlkLCBtX2dyaWRDb2x1bW5zLCBsZW5ndGhzKTsgfQpAQCAt
MTQ3MSw3ICsxNDcxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBpbnQgaW5pdGlhbEZsZXhPcmRl
cigpIHsgcmV0dXJuIDA7IH0KICAgICBzdGF0aWMgRUZsZXhQYWNrIGluaXRpYWxGbGV4UGFjaygp
IHsgcmV0dXJuIFBhY2tTdGFydDsgfQogICAgIHN0YXRpYyBFRmxleEFsaWduIGluaXRpYWxGbGV4
QWxpZ24oKSB7IHJldHVybiBBbGlnblN0cmV0Y2g7IH0KLSAgICBzdGF0aWMgRUZsZXhGbG93IGlu
aXRpYWxGbGV4RmxvdygpIHsgcmV0dXJuIEZsb3dSb3c7IH0KKyAgICBzdGF0aWMgRUZsZXhEaXJl
Y3Rpb24gaW5pdGlhbEZsZXhEaXJlY3Rpb24oKSB7IHJldHVybiBGbG93Um93OyB9CiAgICAgc3Rh
dGljIEVGbGV4V3JhcCBpbml0aWFsRmxleFdyYXAoKSB7IHJldHVybiBGbGV4Tm9XcmFwOyB9CiAg
ICAgc3RhdGljIGludCBpbml0aWFsTWFycXVlZUxvb3BDb3VudCgpIHsgcmV0dXJuIC0xOyB9CiAg
ICAgc3RhdGljIGludCBpbml0aWFsTWFycXVlZVNwZWVkKCkgeyByZXR1cm4gODU7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
LmgKaW5kZXggMGVlZjVkNTRkZWRkZDRiZGYxMmI5N2M4ODE0ZmE5YzdiMGEwZDFmZC4uYzE1NGEy
MzVmZWY2NGYwNTZjYjU4MDA1YjZkNTVkOGI5YmU1OGIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKQEAgLTE3Nyw3
ICsxNzcsNyBAQCBlbnVtIEVCb3hEaXJlY3Rpb24geyBCTk9STUFMLCBCUkVWRVJTRSB9OwogCiBl
bnVtIEVGbGV4UGFjayB7IFBhY2tTdGFydCwgUGFja0VuZCwgUGFja0NlbnRlciwgUGFja0p1c3Rp
ZnkgfTsKIGVudW0gRUZsZXhBbGlnbiB7IEFsaWduU3RhcnQsIEFsaWduRW5kLCBBbGlnbkNlbnRl
ciwgQWxpZ25TdHJldGNoLCBBbGlnbkJhc2VsaW5lIH07Ci1lbnVtIEVGbGV4RmxvdyB7IEZsb3dS
b3csIEZsb3dSb3dSZXZlcnNlLCBGbG93Q29sdW1uLCBGbG93Q29sdW1uUmV2ZXJzZSB9OworZW51
bSBFRmxleERpcmVjdGlvbiB7IEZsb3dSb3csIEZsb3dSb3dSZXZlcnNlLCBGbG93Q29sdW1uLCBG
bG93Q29sdW1uUmV2ZXJzZSB9OwogZW51bSBFRmxleFdyYXAgeyBGbGV4Tm9XcmFwLCBGbGV4V3Jh
cCwgRmxleFdyYXBSZXZlcnNlIH07CiAKIGVudW0gRVRleHRTZWN1cml0eSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmNw
cAppbmRleCBjYWIzNzhmMWUyNGY3OGJlNjQyYWExODk1ZDJkMjAxNzBlNWU0Y2E0Li41M2UyYTIz
YzM4Mjk4ZTU5NjFhMmViOTBjODI0ZDM3ZDhiODRhMzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAKQEAgLTM4
LDcgKzM4LDcgQEAgU3R5bGVGbGV4aWJsZUJveERhdGE6OlN0eWxlRmxleGlibGVCb3hEYXRhKCkK
ICAgICAsIG1fZmxleE9yZGVyKFJlbmRlclN0eWxlOjppbml0aWFsRmxleE9yZGVyKCkpCiAgICAg
LCBtX2ZsZXhQYWNrKFJlbmRlclN0eWxlOjppbml0aWFsRmxleFBhY2soKSkKICAgICAsIG1fZmxl
eEFsaWduKFJlbmRlclN0eWxlOjppbml0aWFsRmxleEFsaWduKCkpCi0gICAgLCBtX2ZsZXhGbG93
KFJlbmRlclN0eWxlOjppbml0aWFsRmxleEZsb3coKSkKKyAgICAsIG1fZmxleERpcmVjdGlvbihS
ZW5kZXJTdHlsZTo6aW5pdGlhbEZsZXhEaXJlY3Rpb24oKSkKICAgICAsIG1fZmxleFdyYXAoUmVu
ZGVyU3R5bGU6OmluaXRpYWxGbGV4V3JhcCgpKQogewogfQpAQCAtNTIsNyArNTIsNyBAQCBTdHls
ZUZsZXhpYmxlQm94RGF0YTo6U3R5bGVGbGV4aWJsZUJveERhdGEoY29uc3QgU3R5bGVGbGV4aWJs
ZUJveERhdGEmIG8pCiAgICAgLCBtX2ZsZXhPcmRlcihvLm1fZmxleE9yZGVyKQogICAgICwgbV9m
bGV4UGFjayhvLm1fZmxleFBhY2spCiAgICAgLCBtX2ZsZXhBbGlnbihvLm1fZmxleEFsaWduKQot
ICAgICwgbV9mbGV4RmxvdyhvLm1fZmxleEZsb3cpCisgICAgLCBtX2ZsZXhEaXJlY3Rpb24oby5t
X2ZsZXhEaXJlY3Rpb24pCiAgICAgLCBtX2ZsZXhXcmFwKG8ubV9mbGV4V3JhcCkKIHsKIH0KQEAg
LTYyLDcgKzYyLDcgQEAgYm9vbCBTdHlsZUZsZXhpYmxlQm94RGF0YTo6b3BlcmF0b3I9PShjb25z
dCBTdHlsZUZsZXhpYmxlQm94RGF0YSYgbykgY29uc3QKICAgICByZXR1cm4gbV93aWR0aFBvc2l0
aXZlRmxleCA9PSBvLm1fd2lkdGhQb3NpdGl2ZUZsZXggJiYgbV93aWR0aE5lZ2F0aXZlRmxleCA9
PSBvLm1fd2lkdGhOZWdhdGl2ZUZsZXgKICAgICAgICAgJiYgbV9oZWlnaHRQb3NpdGl2ZUZsZXgg
PT0gby5tX2hlaWdodFBvc2l0aXZlRmxleCAmJiBtX2hlaWdodE5lZ2F0aXZlRmxleCA9PSBvLm1f
aGVpZ2h0TmVnYXRpdmVGbGV4CiAgICAgICAgICYmIG1fZmxleE9yZGVyID09IG8ubV9mbGV4T3Jk
ZXIgJiYgbV9mbGV4UGFjayA9PSBvLm1fZmxleFBhY2sgJiYgbV9mbGV4QWxpZ24gPT0gby5tX2Zs
ZXhBbGlnbgotICAgICAgICAmJiBtX2ZsZXhGbG93ID09IG8ubV9mbGV4RmxvdyAmJiBtX2ZsZXhX
cmFwID09IG8ubV9mbGV4V3JhcDsKKyAgICAgICAgJiYgbV9mbGV4RGlyZWN0aW9uID09IG8ubV9m
bGV4RGlyZWN0aW9uICYmIG1fZmxleFdyYXAgPT0gby5tX2ZsZXhXcmFwOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERh
dGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0
YS5oCmluZGV4IDUzOWYwNmRiZDBhZDJjMTU3YTNhNjRhNjhlYTU5YWU4NDRhNGQ0OGYuLmE1ZjFh
MDNmOTg2MzEzZjAxZTQwMjZkNDc4ZTRmOTIxZGZhZmZhZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oCkBAIC01MSw3
ICs1MSw3IEBAIHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIG1fZmxleFBhY2sgOiAyOyAvLyBFRmxl
eFBhY2sKICAgICB1bnNpZ25lZCBtX2ZsZXhBbGlnbiA6IDM7IC8vIEVGbGV4QWxpZ24KLSAgICB1
bnNpZ25lZCBtX2ZsZXhGbG93IDogMjsgLy8gRUZsZXhGbG93CisgICAgdW5zaWduZWQgbV9mbGV4
RGlyZWN0aW9uIDogMjsgLy8gRUZsZXhEaXJlY3Rpb24KICAgICB1bnNpZ25lZCBtX2ZsZXhXcmFw
IDogMjsgLy8gRUZsZXhXcmFwCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzc2NGM2YjA3MDc1ODU5ZDRm
ZTM5MzQzOWFjZmU3NzJhYTEwZjQ4Ny4uYTdmMjYzMmI0MTNiYjE1ZTIyMGEwYjdjYzE4YTkwZDU0
Y2QzNmRhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTEyLTE0ICBPamFuIFZhZmFpICA8
b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50IGZsZXhEaXJlY3Rpb24gYW5k
IGZsZXhXcmFwIGFuZCBtYWtlIGZsZXhGbG93IGEgcHJvcGVyIHNob3J0aGFuZC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc0NTQyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjc3MzL2ZsZXhib3gvY3Nz
LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGNzczMvZmxleGJveC9zY3JpcHQt
dGVzdHMvY3NzLXByb3BlcnRpZXMuanM6CisgICAgICAgICh0ZXN0RmxleEZsb3dWYWx1ZSk6CisK
IDIwMTEtMTItMTQgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgTWVkaWEgdXJsIHdpdGggZnJhZ21lbnQgbWF5IG5vdCBsb2FkCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvY3NzLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2Nzcy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCAz
ZjJmYzk1N2NlZGVkNGQ4NmE3MWE2NWE0ZDdiNmQwNjUxNmZlMTQxLi5iMWRkMTU2NWJmNmE2ZjFk
YzA1MGU1ZGJiNGJlOTRkNjdlODgzNjE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL2Zs
ZXhib3gvY3NzLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2NzczMv
ZmxleGJveC9jc3MtcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTQzLDUwICs0MywxMDkgQEAg
UEFTUyBmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhBbGlnbiBpcyAiYmFzZWxpbmUiCiBQQVNTIHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGZsZXhib3gsIG51bGwpLndlYmtpdEZsZXhBbGlnbiBpcyAi
YmFzZWxpbmUiCiBQQVNTIGZsZXhib3guc3R5bGUud2Via2l0RmxleEFsaWduIGlzICIiCiBQQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZsZXhib3gsIG51bGwpLndlYmtpdEZsZXhBbGlnbiBp
cyAic3RyZXRjaCIKK1BBU1MgZmxleGJveC5zdHlsZS53ZWJraXRGbGV4RGlyZWN0aW9uIGlzICIi
CitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZsZXhib3gsIG51bGwpLndlYmtpdEZsZXhE
aXJlY3Rpb24gaXMgInJvdyIKK1BBU1MgZmxleGJveC5zdHlsZS53ZWJraXRGbGV4RGlyZWN0aW9u
IGlzICIiCitQQVNTIGZsZXhib3guc3R5bGUud2Via2l0RmxleERpcmVjdGlvbiBpcyAicm93Igor
UEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmbGV4Ym94LCBudWxsKS53ZWJraXRGbGV4RGly
ZWN0aW9uIGlzICJyb3ciCitQQVNTIGZsZXhib3guc3R5bGUud2Via2l0RmxleERpcmVjdGlvbiBp
cyAicm93LXJldmVyc2UiCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZsZXhib3gsIG51
bGwpLndlYmtpdEZsZXhEaXJlY3Rpb24gaXMgInJvdy1yZXZlcnNlIgorUEFTUyBmbGV4Ym94LnN0
eWxlLndlYmtpdEZsZXhEaXJlY3Rpb24gaXMgImNvbHVtbiIKK1BBU1Mgd2luZG93LmdldENvbXB1
dGVkU3R5bGUoZmxleGJveCwgbnVsbCkud2Via2l0RmxleERpcmVjdGlvbiBpcyAiY29sdW1uIgor
UEFTUyBmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhEaXJlY3Rpb24gaXMgImNvbHVtbi1yZXZlcnNl
IgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmbGV4Ym94LCBudWxsKS53ZWJraXRGbGV4
RGlyZWN0aW9uIGlzICJjb2x1bW4tcmV2ZXJzZSIKK1BBU1MgZmxleGJveC5zdHlsZS53ZWJraXRG
bGV4V3JhcCBpcyAiIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmbGV4Ym94LCBudWxs
KS53ZWJraXRGbGV4V3JhcCBpcyAibm93cmFwIgorUEFTUyBmbGV4Ym94LnN0eWxlLndlYmtpdEZs
ZXhXcmFwIGlzICIiCitQQVNTIGZsZXhib3guc3R5bGUud2Via2l0RmxleFdyYXAgaXMgIm5vd3Jh
cCIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZmxleGJveCwgbnVsbCkud2Via2l0Rmxl
eFdyYXAgaXMgIm5vd3JhcCIKK1BBU1MgZmxleGJveC5zdHlsZS53ZWJraXRGbGV4V3JhcCBpcyAi
d3JhcCIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZmxleGJveCwgbnVsbCkud2Via2l0
RmxleFdyYXAgaXMgIndyYXAiCitQQVNTIGZsZXhib3guc3R5bGUud2Via2l0RmxleFdyYXAgaXMg
IndyYXAtcmV2ZXJzZSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZmxleGJveCwgbnVs
bCkud2Via2l0RmxleFdyYXAgaXMgIndyYXAtcmV2ZXJzZSIKIFBBU1MgZmxleGJveC5zdHlsZS53
ZWJraXRGbGV4RmxvdyBpcyAiIgogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmbGV4Ym94
LCBudWxsKS53ZWJraXRGbGV4RmxvdyBpcyAicm93IG5vd3JhcCIKIFBBU1MgZmxleGJveC5zdHls
ZS53ZWJraXRGbGV4RmxvdyBpcyAiIgogUEFTUyBmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhGbG93
IGlzICIiCiBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZsZXhib3gsIG51bGwpLndlYmtp
dEZsZXhGbG93IGlzICJyb3cgbm93cmFwIgotUEFTUyBmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhG
bG93IGlzICJyb3cgbm93cmFwIgorUEFTUyBmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhGbG93IGlz
ICIiCiBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZsZXhib3gsIG51bGwpLndlYmtpdEZs
ZXhGbG93IGlzICJyb3cgbm93cmFwIgotUEFTUyBmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhGbG93
IGlzICJyb3cgd3JhcCIKK1BBU1MgZmxleGJveC5zdHlsZS53ZWJraXRGbGV4RmxvdyBpcyAibm93
cmFwIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmbGV4Ym94LCBudWxsKS53ZWJraXRG
bGV4RmxvdyBpcyAicm93IG5vd3JhcCIKK1BBU1MgZmxleGJveC5zdHlsZS53ZWJraXRGbGV4Rmxv
dyBpcyAibm93cmFwIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmbGV4Ym94LCBudWxs
KS53ZWJraXRGbGV4RmxvdyBpcyAicm93IG5vd3JhcCIKK1BBU1MgZmxleGJveC5zdHlsZS53ZWJr
aXRGbGV4RmxvdyBpcyAid3JhcCIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZmxleGJv
eCwgbnVsbCkud2Via2l0RmxleEZsb3cgaXMgInJvdyB3cmFwIgotUEFTUyBmbGV4Ym94LnN0eWxl
LndlYmtpdEZsZXhGbG93IGlzICJyb3cgd3JhcC1yZXZlcnNlIgorUEFTUyBmbGV4Ym94LnN0eWxl
LndlYmtpdEZsZXhGbG93IGlzICJ3cmFwIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShm
bGV4Ym94LCBudWxsKS53ZWJraXRGbGV4RmxvdyBpcyAicm93IHdyYXAiCitQQVNTIGZsZXhib3gu
c3R5bGUud2Via2l0RmxleEZsb3cgaXMgIndyYXAtcmV2ZXJzZSIKK1BBU1Mgd2luZG93LmdldENv
bXB1dGVkU3R5bGUoZmxleGJveCwgbnVsbCkud2Via2l0RmxleEZsb3cgaXMgInJvdyB3cmFwLXJl
dmVyc2UiCitQQVNTIGZsZXhib3guc3R5bGUud2Via2l0RmxleEZsb3cgaXMgIndyYXAtcmV2ZXJz
ZSIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZmxleGJveCwgbnVsbCkud2Via2l0Rmxl
eEZsb3cgaXMgInJvdyB3cmFwLXJldmVyc2UiCiBQQVNTIGZsZXhib3guc3R5bGUud2Via2l0Rmxl
eEZsb3cgaXMgInJvdyIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZmxleGJveCwgbnVs
bCkud2Via2l0RmxleEZsb3cgaXMgInJvdyBub3dyYXAiCitQQVNTIGZsZXhib3guc3R5bGUud2Vi
a2l0RmxleEZsb3cgaXMgInJvdyIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZmxleGJv
eCwgbnVsbCkud2Via2l0RmxleEZsb3cgaXMgInJvdyBub3dyYXAiCiBQQVNTIGZsZXhib3guc3R5
bGUud2Via2l0RmxleEZsb3cgaXMgInJvdyBub3dyYXAiCiBQQVNTIHdpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKGZsZXhib3gsIG51bGwpLndlYmtpdEZsZXhGbG93IGlzICJyb3cgbm93cmFwIgorUEFT
UyBmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhGbG93IGlzICJyb3cgbm93cmFwIgorUEFTUyB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShmbGV4Ym94LCBudWxsKS53ZWJraXRGbGV4RmxvdyBpcyAicm93
IG5vd3JhcCIKK1BBU1MgZmxleGJveC5zdHlsZS53ZWJraXRGbGV4RmxvdyBpcyAicm93IHdyYXAi
CitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZsZXhib3gsIG51bGwpLndlYmtpdEZsZXhG
bG93IGlzICJyb3cgd3JhcCIKIFBBU1MgZmxleGJveC5zdHlsZS53ZWJraXRGbGV4RmxvdyBpcyAi
cm93IHdyYXAiCiBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZsZXhib3gsIG51bGwpLndl
YmtpdEZsZXhGbG93IGlzICJyb3cgd3JhcCIKIFBBU1MgZmxleGJveC5zdHlsZS53ZWJraXRGbGV4
RmxvdyBpcyAicm93IHdyYXAtcmV2ZXJzZSIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZmxleGJveCwgbnVsbCkud2Via2l0RmxleEZsb3cgaXMgInJvdyB3cmFwLXJldmVyc2UiCitQQVNT
IGZsZXhib3guc3R5bGUud2Via2l0RmxleEZsb3cgaXMgInJvdyB3cmFwLXJldmVyc2UiCitQQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZsZXhib3gsIG51bGwpLndlYmtpdEZsZXhGbG93IGlz
ICJyb3cgd3JhcC1yZXZlcnNlIgorUEFTUyBmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhGbG93IGlz
ICJyb3ctcmV2ZXJzZSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZmxleGJveCwgbnVs
bCkud2Via2l0RmxleEZsb3cgaXMgInJvdy1yZXZlcnNlIG5vd3JhcCIKIFBBU1MgZmxleGJveC5z
dHlsZS53ZWJraXRGbGV4RmxvdyBpcyAicm93LXJldmVyc2UiCiBQQVNTIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGZsZXhib3gsIG51bGwpLndlYmtpdEZsZXhGbG93IGlzICJyb3ctcmV2ZXJzZSBu
b3dyYXAiCiBQQVNTIGZsZXhib3guc3R5bGUud2Via2l0RmxleEZsb3cgaXMgInJvdy1yZXZlcnNl
IG5vd3JhcCIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZmxleGJveCwgbnVsbCkud2Vi
a2l0RmxleEZsb3cgaXMgInJvdy1yZXZlcnNlIG5vd3JhcCIKK1BBU1MgZmxleGJveC5zdHlsZS53
ZWJraXRGbGV4RmxvdyBpcyAicm93LXJldmVyc2Ugbm93cmFwIgorUEFTUyB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShmbGV4Ym94LCBudWxsKS53ZWJraXRGbGV4RmxvdyBpcyAicm93LXJldmVyc2Ug
bm93cmFwIgogUEFTUyBmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhGbG93IGlzICJyb3ctcmV2ZXJz
ZSB3cmFwIgogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmbGV4Ym94LCBudWxsKS53ZWJr
aXRGbGV4RmxvdyBpcyAicm93LXJldmVyc2Ugd3JhcCIKK1BBU1MgZmxleGJveC5zdHlsZS53ZWJr
aXRGbGV4RmxvdyBpcyAicm93LXJldmVyc2Ugd3JhcCIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVk
U3R5bGUoZmxleGJveCwgbnVsbCkud2Via2l0RmxleEZsb3cgaXMgInJvdy1yZXZlcnNlIHdyYXAi
CitQQVNTIGZsZXhib3guc3R5bGUud2Via2l0RmxleEZsb3cgaXMgInJvdy1yZXZlcnNlIHdyYXAt
cmV2ZXJzZSIKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZmxleGJveCwgbnVsbCkud2Vi
a2l0RmxleEZsb3cgaXMgInJvdy1yZXZlcnNlIHdyYXAtcmV2ZXJzZSIKIFBBU1MgZmxleGJveC5z
dHlsZS53ZWJraXRGbGV4RmxvdyBpcyAicm93LXJldmVyc2Ugd3JhcC1yZXZlcnNlIgogUEFTUyB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmbGV4Ym94LCBudWxsKS53ZWJraXRGbGV4RmxvdyBpcyAi
cm93LXJldmVyc2Ugd3JhcC1yZXZlcnNlIgogUEFTUyBmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhG
bG93IGlzICJjb2x1bW4iCiBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZsZXhib3gsIG51
bGwpLndlYmtpdEZsZXhGbG93IGlzICJjb2x1bW4gbm93cmFwIgorUEFTUyBmbGV4Ym94LnN0eWxl
LndlYmtpdEZsZXhGbG93IGlzICJjb2x1bW4iCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGZsZXhib3gsIG51bGwpLndlYmtpdEZsZXhGbG93IGlzICJjb2x1bW4gbm93cmFwIgorUEFTUyBm
bGV4Ym94LnN0eWxlLndlYmtpdEZsZXhGbG93IGlzICJjb2x1bW4gbm93cmFwIgorUEFTUyB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShmbGV4Ym94LCBudWxsKS53ZWJraXRGbGV4RmxvdyBpcyAiY29s
dW1uIG5vd3JhcCIKIFBBU1MgZmxleGJveC5zdHlsZS53ZWJraXRGbGV4RmxvdyBpcyAiY29sdW1u
IG5vd3JhcCIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZmxleGJveCwgbnVsbCkud2Vi
a2l0RmxleEZsb3cgaXMgImNvbHVtbiBub3dyYXAiCiBQQVNTIGZsZXhib3guc3R5bGUud2Via2l0
RmxleEZsb3cgaXMgImNvbHVtbiB3cmFwIgogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShm
bGV4Ym94LCBudWxsKS53ZWJraXRGbGV4RmxvdyBpcyAiY29sdW1uIHdyYXAiCitQQVNTIGZsZXhi
b3guc3R5bGUud2Via2l0RmxleEZsb3cgaXMgImNvbHVtbiB3cmFwIgorUEFTUyB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShmbGV4Ym94LCBudWxsKS53ZWJraXRGbGV4RmxvdyBpcyAiY29sdW1uIHdy
YXAiCitQQVNTIGZsZXhib3guc3R5bGUud2Via2l0RmxleEZsb3cgaXMgImNvbHVtbiB3cmFwLXJl
dmVyc2UiCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZsZXhib3gsIG51bGwpLndlYmtp
dEZsZXhGbG93IGlzICJjb2x1bW4gd3JhcC1yZXZlcnNlIgogUEFTUyBmbGV4Ym94LnN0eWxlLndl
YmtpdEZsZXhGbG93IGlzICJjb2x1bW4gd3JhcC1yZXZlcnNlIgogUEFTUyB3aW5kb3cuZ2V0Q29t
cHV0ZWRTdHlsZShmbGV4Ym94LCBudWxsKS53ZWJraXRGbGV4RmxvdyBpcyAiY29sdW1uIHdyYXAt
cmV2ZXJzZSIKIFBBU1MgZmxleGJveC5zdHlsZS53ZWJraXRGbGV4RmxvdyBpcyAiY29sdW1uLXJl
dmVyc2UiCiBQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZsZXhib3gsIG51bGwpLndlYmtp
dEZsZXhGbG93IGlzICJjb2x1bW4tcmV2ZXJzZSBub3dyYXAiCitQQVNTIGZsZXhib3guc3R5bGUu
d2Via2l0RmxleEZsb3cgaXMgImNvbHVtbi1yZXZlcnNlIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShmbGV4Ym94LCBudWxsKS53ZWJraXRGbGV4RmxvdyBpcyAiY29sdW1uLXJldmVyc2Ug
bm93cmFwIgorUEFTUyBmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhGbG93IGlzICJjb2x1bW4tcmV2
ZXJzZSBub3dyYXAiCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZsZXhib3gsIG51bGwp
LndlYmtpdEZsZXhGbG93IGlzICJjb2x1bW4tcmV2ZXJzZSBub3dyYXAiCiBQQVNTIGZsZXhib3gu
c3R5bGUud2Via2l0RmxleEZsb3cgaXMgImNvbHVtbi1yZXZlcnNlIG5vd3JhcCIKIFBBU1Mgd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZmxleGJveCwgbnVsbCkud2Via2l0RmxleEZsb3cgaXMgImNv
bHVtbi1yZXZlcnNlIG5vd3JhcCIKIFBBU1MgZmxleGJveC5zdHlsZS53ZWJraXRGbGV4RmxvdyBp
cyAiY29sdW1uLXJldmVyc2Ugd3JhcCIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZmxl
eGJveCwgbnVsbCkud2Via2l0RmxleEZsb3cgaXMgImNvbHVtbi1yZXZlcnNlIHdyYXAiCitQQVNT
IGZsZXhib3guc3R5bGUud2Via2l0RmxleEZsb3cgaXMgImNvbHVtbi1yZXZlcnNlIHdyYXAiCitQ
QVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZsZXhib3gsIG51bGwpLndlYmtpdEZsZXhGbG93
IGlzICJjb2x1bW4tcmV2ZXJzZSB3cmFwIgorUEFTUyBmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhG
bG93IGlzICJjb2x1bW4tcmV2ZXJzZSB3cmFwLXJldmVyc2UiCitQQVNTIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGZsZXhib3gsIG51bGwpLndlYmtpdEZsZXhGbG93IGlzICJjb2x1bW4tcmV2ZXJz
ZSB3cmFwLXJldmVyc2UiCiBQQVNTIGZsZXhib3guc3R5bGUud2Via2l0RmxleEZsb3cgaXMgImNv
bHVtbi1yZXZlcnNlIHdyYXAtcmV2ZXJzZSIKIFBBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZmxleGJveCwgbnVsbCkud2Via2l0RmxleEZsb3cgaXMgImNvbHVtbi1yZXZlcnNlIHdyYXAtcmV2
ZXJzZSIKLVBBU1MgZmxleGJveC5zdHlsZS53ZWJraXRGbGV4RmxvdyBpcyAiIgogUEFTUyBmbGV4
Ym94LnN0eWxlLndlYmtpdEZsZXhGbG93IGlzICIiCiBQQVNTIGZsZXhib3guc3R5bGUud2Via2l0
RmxleEZsb3cgaXMgIiIKIFBBU1MgZmxleGJveC5zdHlsZS53ZWJraXRGbGV4RmxvdyBpcyAiIgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3NjcmlwdC10ZXN0cy9jc3MtcHJv
cGVydGllcy5qcyBiL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9zY3JpcHQtdGVzdHMvY3NzLXBy
b3BlcnRpZXMuanMKaW5kZXggYjYzMDI4MDc2OWEwOWExOWUzYjA2ZmE3YjVkNzk2OWJmYTY1N2Mx
OS4uOGE5ZTc0OTMxMDhhZWYxNDIwZGFhMzg2ZGFhZmQzNTlmMjVkZjRiNSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3NjcmlwdC10ZXN0cy9jc3MtcHJvcGVydGllcy5qcwor
KysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvc2NyaXB0LXRlc3RzL2Nzcy1wcm9wZXJ0aWVz
LmpzCkBAIC0xMDAsMzIgKzEwMCw3NSBAQCBmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhBbGlnbiA9
ICcnOwogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhBbGln
bicsICcnKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmdldENvbXB1dGVkU3R5bGUo
ZmxleGJveCwgbnVsbCkud2Via2l0RmxleEFsaWduJywgJ3N0cmV0Y2gnKTsKIAorc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCdmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhEaXJlY3Rpb24nLCAnJyk7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZsZXhib3gsIG51
bGwpLndlYmtpdEZsZXhEaXJlY3Rpb24nLCAncm93Jyk7CisKK2ZsZXhib3guc3R5bGUud2Via2l0
RmxleERpcmVjdGlvbiA9ICdmb28nOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdmbGV4Ym94LnN0
eWxlLndlYmtpdEZsZXhEaXJlY3Rpb24nLCAnJyk7CisKK2ZsZXhib3guc3R5bGUud2Via2l0Rmxl
eERpcmVjdGlvbiA9ICdyb3cnOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdmbGV4Ym94LnN0eWxl
LndlYmtpdEZsZXhEaXJlY3Rpb24nLCAncm93Jyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3dp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGZsZXhib3gsIG51bGwpLndlYmtpdEZsZXhEaXJlY3Rpb24n
LCAncm93Jyk7CisKK2ZsZXhib3guc3R5bGUud2Via2l0RmxleERpcmVjdGlvbiA9ICdyb3ctcmV2
ZXJzZSc7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2ZsZXhib3guc3R5bGUud2Via2l0RmxleERp
cmVjdGlvbicsICdyb3ctcmV2ZXJzZScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZShmbGV4Ym94LCBudWxsKS53ZWJraXRGbGV4RGlyZWN0aW9uJywgJ3Jv
dy1yZXZlcnNlJyk7CisKK2ZsZXhib3guc3R5bGUud2Via2l0RmxleERpcmVjdGlvbiA9ICdjb2x1
bW4nOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhEaXJl
Y3Rpb24nLCAnY29sdW1uJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKGZsZXhib3gsIG51bGwpLndlYmtpdEZsZXhEaXJlY3Rpb24nLCAnY29sdW1uJyk7
CisKK2ZsZXhib3guc3R5bGUud2Via2l0RmxleERpcmVjdGlvbiA9ICdjb2x1bW4tcmV2ZXJzZSc7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2ZsZXhib3guc3R5bGUud2Via2l0RmxleERpcmVjdGlv
bicsICdjb2x1bW4tcmV2ZXJzZScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShmbGV4Ym94LCBudWxsKS53ZWJraXRGbGV4RGlyZWN0aW9uJywgJ2NvbHVt
bi1yZXZlcnNlJyk7CisKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZmxleGJveC5zdHlsZS53ZWJr
aXRGbGV4V3JhcCcsICcnKTsKKy8vIFRoZSBpbml0aWFsIHZhbHVlIGlzICdzdHJldGNoJy4KK3No
b3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmdldENvbXB1dGVkU3R5bGUoZmxleGJveCwgbnVs
bCkud2Via2l0RmxleFdyYXAnLCAnbm93cmFwJyk7CisKK2ZsZXhib3guc3R5bGUud2Via2l0Rmxl
eFdyYXAgPSAnZm9vJzsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnZmxleGJveC5zdHlsZS53ZWJr
aXRGbGV4V3JhcCcsICcnKTsKKworZmxleGJveC5zdHlsZS53ZWJraXRGbGV4V3JhcCA9ICdub3dy
YXAnOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhXcmFw
JywgJ25vd3JhcCcpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShmbGV4Ym94LCBudWxsKS53ZWJraXRGbGV4V3JhcCcsICdub3dyYXAnKTsKKworZmxleGJv
eC5zdHlsZS53ZWJraXRGbGV4V3JhcCA9ICd3cmFwJzsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygn
ZmxleGJveC5zdHlsZS53ZWJraXRGbGV4V3JhcCcsICd3cmFwJyk7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGZsZXhib3gsIG51bGwpLndlYmtpdEZsZXhX
cmFwJywgJ3dyYXAnKTsKKworZmxleGJveC5zdHlsZS53ZWJraXRGbGV4V3JhcCA9ICd3cmFwLXJl
dmVyc2UnOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhX
cmFwJywgJ3dyYXAtcmV2ZXJzZScpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCd3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShmbGV4Ym94LCBudWxsKS53ZWJraXRGbGV4V3JhcCcsICd3cmFwLXJldmVy
c2UnKTsKKworZmxleGJveC5zdHlsZS53ZWJraXRGbGV4RmxvdyA9ICcnOwogc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCdmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhGbG93JywgJycpOwogc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCd3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShmbGV4Ym94LCBudWxsKS53ZWJr
aXRGbGV4RmxvdycsICdyb3cgbm93cmFwJyk7CiAKIGZsZXhib3guc3R5bGUud2Via2l0RmxleEZs
b3cgPSAnZm9vJzsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygnZmxleGJveC5zdHlsZS53ZWJraXRG
bGV4RmxvdycsICcnKTsKIAotdmFyIGZsb3dzID0gWycnLCAncm93JywgJ3Jvdy1yZXZlcnNlJywg
J2NvbHVtbicsICdjb2x1bW4tcmV2ZXJzZSddOworZnVuY3Rpb24gdGVzdEZsZXhGbG93VmFsdWUo
dmFsdWUsIGV4cGVjdGVkLCBleHBlY3RlZENvbXB1dGVkKQoreworICAgIGZsZXhib3guc3R5bGUu
d2Via2l0RmxleEZsb3cgPSB2YWx1ZTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2ZsZXhi
b3guc3R5bGUud2Via2l0RmxleEZsb3cnLCAoZXhwZWN0ZWQpLnJlcGxhY2UoL14gLywgJycpLnJl
cGxhY2UoLyAkLywgJycpKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3dpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGZsZXhib3gsIG51bGwpLndlYmtpdEZsZXhGbG93JywgZXhwZWN0ZWRDb21w
dXRlZCk7Cit9CisKK3ZhciBkaXJlY3Rpb25zID0gWycnLCAncm93JywgJ3Jvdy1yZXZlcnNlJywg
J2NvbHVtbicsICdjb2x1bW4tcmV2ZXJzZSddOwogdmFyIHdyYXBzID0gWycnLCAnbm93cmFwJywg
J3dyYXAnLCAnd3JhcC1yZXZlcnNlJ107Ci1mbG93cy5mb3JFYWNoKGZ1bmN0aW9uKGZsb3cpIHsK
K2RpcmVjdGlvbnMuZm9yRWFjaChmdW5jdGlvbihkaXJlY3Rpb24pIHsKICAgICB3cmFwcy5mb3JF
YWNoKGZ1bmN0aW9uKHdyYXApIHsKLSAgICAgICAgZmxleGJveC5zdHlsZS53ZWJraXRGbGV4Rmxv
dyA9IGZsb3cgKyAnICcgKyB3cmFwOwotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2Zs
ZXhib3guc3R5bGUud2Via2l0RmxleEZsb3cnLCAoZmxvdyArICcgJyArIHdyYXApLnJlcGxhY2Uo
L14gLywgJycpLnJlcGxhY2UoLyAkLywgJycpKTsKLSAgICAgICAgaWYgKCFmbG93KQotICAgICAg
ICAgICAgZmxvdyA9ICdyb3cnOwotICAgICAgICBpZiAoIXdyYXApCi0gICAgICAgICAgICB3cmFw
ID0gJ25vd3JhcCc7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnd2luZG93LmdldENv
bXB1dGVkU3R5bGUoZmxleGJveCwgbnVsbCkud2Via2l0RmxleEZsb3cnLCBmbG93ICsgJyAnICsg
d3JhcCk7CisgICAgICAgIHZhciBleHBlY3RlZENvbXB1dGVkID0gKGRpcmVjdGlvbiB8fCAncm93
JykgKyAnICcgKyAod3JhcCB8fCAnbm93cmFwJyk7CisgICAgICAgIHZhciBleHBlY3RlZCA9IGRp
cmVjdGlvbiArICcgJyArIHdyYXA7CisgICAgICAgIHRlc3RGbGV4Rmxvd1ZhbHVlKGRpcmVjdGlv
biArICcgJyArIHdyYXAsIGV4cGVjdGVkLCBleHBlY3RlZENvbXB1dGVkKTsKKyAgICAgICAgdGVz
dEZsZXhGbG93VmFsdWUod3JhcCArICcgJyArIGRpcmVjdGlvbiwgZXhwZWN0ZWQsIGV4cGVjdGVk
Q29tcHV0ZWQpOwogICAgIH0pOwogfSk7CiAKIGZsZXhib3guc3R5bGUud2Via2l0RmxleEZsb3cg
PSAnJzsKLWZsZXhib3guc3R5bGUud2Via2l0RmxleEZsb3cgPSAnd3JhcCB3cmFwLXJldmVyc2Un
Owogc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhGbG93Jywg
JycpOwotZmxleGJveC5zdHlsZS53ZWJraXRGbGV4RmxvdyA9ICd3cmFwLXJldmVyc2UgY29sdW1u
JzsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygnZmxleGJveC5zdHlsZS53ZWJraXRGbGV4Rmxvdycs
ICcnKTsKLWZsZXhib3guc3R5bGUud2Via2l0RmxleEZsb3cgPSAnd3JhcCByb3cnOworZmxleGJv
eC5zdHlsZS53ZWJraXRGbGV4RmxvdyA9ICd3cmFwIHdyYXAtcmV2ZXJzZSc7CiBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoJ2ZsZXhib3guc3R5bGUud2Via2l0RmxleEZsb3cnLCAnJyk7CiBmbGV4Ym94
LnN0eWxlLndlYmtpdEZsZXhGbG93ID0gJ2NvbHVtbiByb3cnOwogc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCdmbGV4Ym94LnN0eWxlLndlYmtpdEZsZXhGbG93JywgJycpOwo=
</data>
<flag name="review"
          id="119270"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
      

    </bug>

</bugzilla>