<?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>123172</bug_id>
          
          <creation_ts>2013-10-22 14:07:39 -0700</creation_ts>
          <short_desc>{ClipPathOperation, FilterOperation}::getOperationType() should not include ‘get&apos;</short_desc>
          <delta_ts>2013-10-22 15:32:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>d-r</cc>
    
    <cc>dstockwell</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>942404</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-22 14:07:39 -0700</bug_when>
    <thetext>We use &apos;get&apos; for things with out params, not straightforward getters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942428</commentid>
    <comment_count>1</comment_count>
      <attachid>214890</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-22 15:05:39 -0700</bug_when>
    <thetext>Created attachment 214890
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942430</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-22 15:07:14 -0700</bug_when>
    <thetext>Attachment 214890 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/CSSComputedStyleDeclaration.cpp&apos;, u&apos;Source/WebCore/css/StyleResolver.cpp&apos;, u&apos;Source/WebCore/page/animation/CSSPropertyAnimation.cpp&apos;, u&apos;Source/WebCore/platform/graphics/GraphicsLayer.cpp&apos;, u&apos;Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp&apos;, u&apos;Source/WebCore/platform/graphics/ca/mac/PlatformCAFiltersMac.mm&apos;, u&apos;Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm&apos;, u&apos;Source/WebCore/platform/graphics/filters/FilterOperation.h&apos;, u&apos;Source/WebCore/platform/graphics/filters/FilterOperations.cpp&apos;, u&apos;Source/WebCore/platform/graphics/transforms/IdentityTransformOperation.h&apos;, u&apos;Source/WebCore/platform/graphics/transforms/Matrix3DTransformOperation.h&apos;, u&apos;Source/WebCore/platform/graphics/transforms/MatrixTransformOperation.h&apos;, u&apos;Source/WebCore/platform/graphics/transforms/PerspectiveTransformOperation.h&apos;, u&apos;Source/WebCore/platform/graphics/transforms/RotateTransformOperation.h&apos;, u&apos;Source/WebCore/platform/graphics/transforms/ScaleTransformOperation.h&apos;, u&apos;Source/WebCore/platform/graphics/transforms/SkewTransformOperation.h&apos;, u&apos;Source/WebCore/platform/graphics/transforms/TransformOperation.h&apos;, u&apos;Source/WebCore/platform/graphics/transforms/TranslateTransformOperation.h&apos;, u&apos;Source/WebCore/rendering/ClipPathOperation.h&apos;, u&apos;Source/WebCore/rendering/FilterEffectRenderer.cpp&apos;, u&apos;Source/WebCore/rendering/RenderLayer.cpp&apos;, u&apos;Source/WebCore/rendering/RenderLayerFilterInfo.cpp&apos;, u&apos;Source/WebCore/rendering/style/RenderStyle.cpp&apos;, u&apos;Source/WebCore/rendering/svg/SVGRenderingContext.cpp&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/Shared/WebCoreArgumentCoders.cpp&apos;, u&apos;Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.mm&apos;]&quot; exit_code: 1
Source/WebCore/css/CSSComputedStyleDeclaration.cpp:2831:  An else if statement should be written as an if statement when the prior &quot;if&quot; concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 1 in 28 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942431</commentid>
    <comment_count>3</comment_count>
      <attachid>214891</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-22 15:14:48 -0700</bug_when>
    <thetext>Created attachment 214891
stylebot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>942444</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-10-22 15:32:26 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/157823</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214890</attachid>
            <date>2013-10-22 15:05:39 -0700</date>
            <delta_ts>2013-10-22 15:14:48 -0700</delta_ts>
            <desc>patch</desc>
            <filename>get.diff</filename>
            <type>text/plain</type>
            <size>32151</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0Njk1MDMzLi45OTE4MDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTMtMTAtMjIgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAge0NsaXBQYXRoT3BlcmF0aW9uLCBGaWx0ZXJPcGVyYXRpb259OjpnZXRPcGVyYXRp
b25UeXBlKCkgc2hvdWxkIG5vdCBpbmNsdWRlICdnZXQnCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNzIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGp1c3QgYSByZW5hbWUuCisK
KyAgICAgICAgImdldCIgaW4gV2ViQ29yZSB0ZW5kcyB0byBtZWFuIHRoYXQgdGhlIGZ1bmN0aW9u
IGhhcyBvdXQgYXJndW1lbnRzOyB0aGVzZSBoYXZlIG5vIGFyZ3VtZW50cy4KKyAgICAgICAgUmVu
YW1lIEZpbHRlck9wZXJhdGlvbjo6Z2V0T3BlcmF0aW9uVHlwZSgpIHRvIEZpbHRlck9wZXJhdGlv
bjo6dHlwZSgpLgorICAgICAgICBJIG5vdGljZWQgdGhhdCBDbGlwUGF0aE9wZXJhdGlvbiBoYWQg
dGhlIHNhbWUgbWlzdGFrZSwgc28gSSBmaXhlZCBpdCB0aGVyZSB0b28uCisKKyAgICAgICAgUmVt
b3ZlZCBsb25nIGFuZCB1c2VsZXNzIGxpc3Qgb2YgZmlsZXMuCisKIDIwMTMtMTAtMjIgIEFudHRp
IEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBzb21lIGxpbmUg
Ym94IGZ1bmN0aW9ucyB0byBiZSBqdXN0IGFib3V0IGxpbmVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDg4YzBkN2MuLjc2
MjVkNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwCkBAIC05NTIsNyArOTUyLDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ29t
cHV0ZWRTdHlsZUV4dHJhY3Rvcjo6dmFsdWVGb3JGaWx0ZXIoY29uc3QgUmVuZGVyT2JqZWN0Kgog
ICAgIFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9
IGZpbHRlck9wZXJhdGlvbnMub3BlcmF0aW9ucygpLmVuZCgpOwogICAgIGZvciAoVmVjdG9yPFJl
ZlB0cjxGaWx0ZXJPcGVyYXRpb24+Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBmaWx0ZXJPcGVyYXRp
b25zLm9wZXJhdGlvbnMoKS5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgRmls
dGVyT3BlcmF0aW9uKiBmaWx0ZXJPcGVyYXRpb24gPSAoKml0KS5nZXQoKTsKLSAgICAgICAgc3dp
dGNoIChmaWx0ZXJPcGVyYXRpb24tPmdldE9wZXJhdGlvblR5cGUoKSkgeworICAgICAgICBzd2l0
Y2ggKGZpbHRlck9wZXJhdGlvbi0+dHlwZSgpKSB7CiAgICAgICAgIGNhc2UgRmlsdGVyT3BlcmF0
aW9uOjpSRUZFUkVOQ0U6IHsKICAgICAgICAgICAgIFJlZmVyZW5jZUZpbHRlck9wZXJhdGlvbiog
cmVmZXJlbmNlT3BlcmF0aW9uID0gc3RhdGljX2Nhc3Q8UmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9u
Kj4oZmlsdGVyT3BlcmF0aW9uKTsKICAgICAgICAgICAgIGZpbHRlclZhbHVlID0gV2ViS2l0Q1NT
RmlsdGVyVmFsdWU6OmNyZWF0ZShXZWJLaXRDU1NGaWx0ZXJWYWx1ZTo6UmVmZXJlbmNlRmlsdGVy
T3BlcmF0aW9uKTsKQEAgLTI4MjgsMTAgKzI4MjgsMTAgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3Bl
cnQKICAgICAgICAgICAgIHJldHVybiBjb3VudGVyVG9DU1NWYWx1ZShzdHlsZS5nZXQoKSwgcHJv
cGVydHlJRCk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDbGlwUGF0aDoKICAgICAg
ICAgICAgIGlmIChDbGlwUGF0aE9wZXJhdGlvbiogb3BlcmF0aW9uID0gc3R5bGUtPmNsaXBQYXRo
KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAob3BlcmF0aW9uLT5nZXRPcGVyYXRpb25UeXBlKCkg
PT0gQ2xpcFBhdGhPcGVyYXRpb246OlNIQVBFKQorICAgICAgICAgICAgICAgIGlmIChvcGVyYXRp
b24tPnR5cGUoKSA9PSBDbGlwUGF0aE9wZXJhdGlvbjo6U0hBUEUpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB2YWx1ZUZvckJhc2ljU2hhcGUoc3R5bGUuZ2V0KCksIHN0YXRpY19jYXN0PFNo
YXBlQ2xpcFBhdGhPcGVyYXRpb24qPihvcGVyYXRpb24pLT5iYXNpY1NoYXBlKCkpOwogI2lmIEVO
QUJMRShTVkcpCi0gICAgICAgICAgICAgICAgZWxzZSBpZiAob3BlcmF0aW9uLT5nZXRPcGVyYXRp
b25UeXBlKCkgPT0gQ2xpcFBhdGhPcGVyYXRpb246OlJFRkVSRU5DRSkgeworICAgICAgICAgICAg
ICAgIGVsc2UgaWYgKG9wZXJhdGlvbi0+dHlwZSgpID09IENsaXBQYXRoT3BlcmF0aW9uOjpSRUZF
UkVOQ0UpIHsKICAgICAgICAgICAgICAgICAgICAgUmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24q
IHJlZmVyZW5jZU9wZXJhdGlvbiA9IHN0YXRpY19jYXN0PFJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0
aW9uKj4ob3BlcmF0aW9uKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2
ZVZhbHVlOjpjcmVhdGUocmVmZXJlbmNlT3BlcmF0aW9uLT51cmwoKSwgQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19VUkkpOwogICAgICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcAppbmRleCBjYWY1NjBiLi4zYzhlNzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwCkBAIC0zNDAxLDcgKzM0MDEsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmxvYWRQ
ZW5kaW5nU1ZHRG9jdW1lbnRzKCkKICAgICBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+
JiBmaWx0ZXJPcGVyYXRpb25zID0gc3RhdGUuc3R5bGUoKS0+bXV0YWJsZUZpbHRlcigpLm9wZXJh
dGlvbnMoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZmlsdGVyT3BlcmF0aW9ucy5z
aXplKCk7ICsraSkgewogICAgICAgICBSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBmaWx0ZXJPcGVy
YXRpb24gPSBmaWx0ZXJPcGVyYXRpb25zLmF0KGkpOwotICAgICAgICBpZiAoZmlsdGVyT3BlcmF0
aW9uLT5nZXRPcGVyYXRpb25UeXBlKCkgPT0gRmlsdGVyT3BlcmF0aW9uOjpSRUZFUkVOQ0UpIHsK
KyAgICAgICAgaWYgKGZpbHRlck9wZXJhdGlvbi0+dHlwZSgpID09IEZpbHRlck9wZXJhdGlvbjo6
UkVGRVJFTkNFKSB7CiAgICAgICAgICAgICBSZWZlcmVuY2VGaWx0ZXJPcGVyYXRpb24qIHJlZmVy
ZW5jZUZpbHRlciA9IHN0YXRpY19jYXN0PFJlZmVyZW5jZUZpbHRlck9wZXJhdGlvbio+KGZpbHRl
ck9wZXJhdGlvbi5nZXQoKSk7CiAKICAgICAgICAgICAgIFdlYktpdENTU1NWR0RvY3VtZW50VmFs
dWUqIHZhbHVlID0gc3RhdGUucGVuZGluZ1NWR0RvY3VtZW50cygpLmdldChyZWZlcmVuY2VGaWx0
ZXIpOwpAQCAtMzQ2NCw3ICszNDY0LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpsb2FkUGVuZGlu
Z1NoYWRlcnMoKQogICAgIFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPj4mIGZpbHRlck9w
ZXJhdGlvbnMgPSBtX3N0YXRlLnN0eWxlKCktPm11dGFibGVGaWx0ZXIoKS5vcGVyYXRpb25zKCk7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZpbHRlck9wZXJhdGlvbnMuc2l6ZSgpOyAr
K2kpIHsKICAgICAgICAgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gZmlsdGVyT3BlcmF0aW9uID0g
ZmlsdGVyT3BlcmF0aW9ucy5hdChpKTsKLSAgICAgICAgaWYgKGZpbHRlck9wZXJhdGlvbi0+Z2V0
T3BlcmF0aW9uVHlwZSgpID09IEZpbHRlck9wZXJhdGlvbjo6Q1VTVE9NKSB7CisgICAgICAgIGlm
IChmaWx0ZXJPcGVyYXRpb24tPnR5cGUoKSA9PSBGaWx0ZXJPcGVyYXRpb246OkNVU1RPTSkgewog
ICAgICAgICAgICAgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uKiBjdXN0b21GaWx0ZXIgPSBzdGF0aWNf
Y2FzdDxDdXN0b21GaWx0ZXJPcGVyYXRpb24qPihmaWx0ZXJPcGVyYXRpb24uZ2V0KCkpOwogICAg
ICAgICAgICAgQVNTRVJUKGN1c3RvbUZpbHRlci0+cHJvZ3JhbSgpKTsKICAgICAgICAgICAgIFN0
eWxlQ3VzdG9tRmlsdGVyUHJvZ3JhbSogcHJvZ3JhbSA9IHN0YXRpY19jYXN0PFN0eWxlQ3VzdG9t
RmlsdGVyUHJvZ3JhbSo+KGN1c3RvbUZpbHRlci0+cHJvZ3JhbSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAppbmRl
eCBlZDM1ZWMzLi43YWQwNWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCkBAIC0xMzEsNyArMTMxLDcgQEAgc3Rh
dGljIGlubGluZSBQYXNzUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVuZEZ1bmMoY29uc3Qg
QW5pbWF0aW9uQmFzZSosIENsaXAKICAgICAgICAgcmV0dXJuIHRvOwogCiAgICAgLy8gT3RoZXIg
Y2xpcC1wYXRoIG9wZXJhdGlvbnMgdGhhbiBCYXNpY1NoYXBlcyBjYW4gbm90IGJlIGFuaW1hdGVk
LgotICAgIGlmIChmcm9tLT5nZXRPcGVyYXRpb25UeXBlKCkgIT0gQ2xpcFBhdGhPcGVyYXRpb246
OlNIQVBFIHx8IHRvLT5nZXRPcGVyYXRpb25UeXBlKCkgIT0gQ2xpcFBhdGhPcGVyYXRpb246OlNI
QVBFKQorICAgIGlmIChmcm9tLT50eXBlKCkgIT0gQ2xpcFBhdGhPcGVyYXRpb246OlNIQVBFIHx8
IHRvLT50eXBlKCkgIT0gQ2xpcFBhdGhPcGVyYXRpb246OlNIQVBFKQogICAgICAgICByZXR1cm4g
dG87CiAKICAgICBjb25zdCBCYXNpY1NoYXBlKiBmcm9tU2hhcGUgPSBzdGF0aWNfY2FzdDxTaGFw
ZUNsaXBQYXRoT3BlcmF0aW9uKj4oZnJvbSktPmJhc2ljU2hhcGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKaW5kZXggOTNkOWM0
My4uMmJhYjcwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5jcHAKQEAgLTUxMiw3ICs1MTIsNyBAQCBpbnQgR3JhcGhpY3NMYXllcjo6
dmFsaWRhdGVUcmFuc2Zvcm1PcGVyYXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1
ZUxpcwogICAgIGRvdWJsZSBtYXhSb3RBbmdsZSA9IC0xLjA7CiAgICAgICAgIAogICAgIGZvciAo
c2l6ZV90IGogPSAwOyBqIDwgZmlyc3RWYWwub3BlcmF0aW9ucygpLnNpemUoKTsgKytqKSB7Ci0g
ICAgICAgIFRyYW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0eXBlID0gZmlyc3RWYWwu
b3BlcmF0aW9ucygpLmF0KGopLT5nZXRPcGVyYXRpb25UeXBlKCk7CisgICAgICAgIFRyYW5zZm9y
bU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0eXBlID0gZmlyc3RWYWwub3BlcmF0aW9ucygpLmF0
KGopLT50eXBlKCk7CiAgICAgICAgIAogICAgICAgICAvLyBpZiB0aGlzIGlzIGEgcm90YXRpb24g
ZW50cnksIHdlIG5lZWQgdG8gc2VlIGlmIGFueSBhbmdsZSBkaWZmZXJlbmNlcyBhcmUgPj0gMTgw
IGRlZwogICAgICAgICBpZiAodHlwZSA9PSBUcmFuc2Zvcm1PcGVyYXRpb246OlJPVEFURV9YIHx8
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGlj
c0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmNwcAppbmRleCAxNGY1MzhiLi5hYzdhZTJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAg
LTIyNDcsNyArMjI0Nyw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpjcmVhdGVBbmltYXRpb25G
cm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1CiAKIGJvb2wgR3JhcGhp
Y3NMYXllckNBOjphcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0aW9ucyhjb25zdCBLZXlmcmFtZVZh
bHVlTGlzdCYgdmFsdWVMaXN0LCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zKiBvcGVyYXRpb25z
LCBjb25zdCBBbmltYXRpb24qIGFuaW1hdGlvbiwgY29uc3QgU3RyaW5nJiBhbmltYXRpb25OYW1l
LCBjb25zdCBJbnRTaXplJiBib3hTaXplLCBpbnQgYW5pbWF0aW9uSW5kZXgsIGRvdWJsZSB0aW1l
T2Zmc2V0LCBib29sIGlzTWF0cml4QW5pbWF0aW9uKQogewotICAgIFRyYW5zZm9ybU9wZXJhdGlv
bjo6T3BlcmF0aW9uVHlwZSB0cmFuc2Zvcm1PcCA9IGlzTWF0cml4QW5pbWF0aW9uID8gVHJhbnNm
b3JtT3BlcmF0aW9uOjpNQVRSSVhfM0QgOiBvcGVyYXRpb25zLT5vcGVyYXRpb25zKCkuYXQoYW5p
bWF0aW9uSW5kZXgpLT5nZXRPcGVyYXRpb25UeXBlKCk7CisgICAgVHJhbnNmb3JtT3BlcmF0aW9u
OjpPcGVyYXRpb25UeXBlIHRyYW5zZm9ybU9wID0gaXNNYXRyaXhBbmltYXRpb24gPyBUcmFuc2Zv
cm1PcGVyYXRpb246Ok1BVFJJWF8zRCA6IG9wZXJhdGlvbnMtPm9wZXJhdGlvbnMoKS5hdChhbmlt
YXRpb25JbmRleCktPnR5cGUoKTsKICAgICBib29sIGFkZGl0aXZlID0gYW5pbWF0aW9uSW5kZXgg
PiAwOwogICAgIGJvb2wgaXNLZXlmcmFtZSA9IHZhbHVlTGlzdC5zaXplKCkgPiAyOwogCkBAIC0y
MzU5LDcgKzIzNTksNyBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6YXBwZW5kVG9VbmNvbW1pdHRl
ZEFuaW1hdGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbAogewogICAgIGJvb2wgaXNL
ZXlmcmFtZSA9IHZhbHVlTGlzdC5zaXplKCkgPiAyOwogICAgIAotICAgIEZpbHRlck9wZXJhdGlv
bjo6T3BlcmF0aW9uVHlwZSBmaWx0ZXJPcCA9IG9wZXJhdGlvbi0+Z2V0T3BlcmF0aW9uVHlwZSgp
OworICAgIEZpbHRlck9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSBmaWx0ZXJPcCA9IG9wZXJhdGlv
bi0+dHlwZSgpOwogICAgIGludCBudW1BbmltYXRlZFByb3BlcnRpZXMgPSBQbGF0Zm9ybUNBRmls
dGVyczo6bnVtQW5pbWF0ZWRGaWx0ZXJQcm9wZXJ0aWVzKGZpbHRlck9wKTsKICAgICAKICAgICAv
LyBFYWNoIGZpbHRlciBtaWdodCBuZWVkIHRvIGFuaW1hdGUgbXVsdGlwbGUgcHJvcGVydGllcywg
ZWFjaCB3aXRoIHRoZWlyIG93biBrZXlQYXRoLiBUaGUga2V5UGF0aCBpcyBhbHdheXMgb2YgdGhl
IGZvcm06CkBAIC0yNDA3LDcgKzI0MDcsNyBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRl
RmlsdGVyQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpcwogCiAg
ICAgLy8gRklYTUU6IFdlIGNhbid0IGN1cnJlbnRseSBoYXJkd2FyZSBhbmltYXRlIHNoYWRvd3Mu
CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1BbmltYXRpb25zOyArK2kpIHsKLSAgICAgICAg
aWYgKG9wZXJhdGlvbnMuYXQoaSktPmdldE9wZXJhdGlvblR5cGUoKSA9PSBGaWx0ZXJPcGVyYXRp
b246OkRST1BfU0hBRE9XKQorICAgICAgICBpZiAob3BlcmF0aW9ucy5hdChpKS0+dHlwZSgpID09
IEZpbHRlck9wZXJhdGlvbjo6RFJPUF9TSEFET1cpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogCkBAIC0yNjk4LDEyICsyNjk4LDEyIEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjpz
ZXRGaWx0ZXJBbmltYXRpb25FbmRwb2ludHMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxpc3QmIHZhbHVl
CiAgICAgQVNTRVJUKGZyb21PcGVyYXRpb24gfHwgdG9PcGVyYXRpb24pOwogCiAgICAgaWYgKCFm
cm9tT3BlcmF0aW9uKSB7Ci0gICAgICAgIGRlZmF1bHRGcm9tT3BlcmF0aW9uID0gRGVmYXVsdEZp
bHRlck9wZXJhdGlvbjo6Y3JlYXRlKHRvT3BlcmF0aW9uLT5nZXRPcGVyYXRpb25UeXBlKCkpOwor
ICAgICAgICBkZWZhdWx0RnJvbU9wZXJhdGlvbiA9IERlZmF1bHRGaWx0ZXJPcGVyYXRpb246OmNy
ZWF0ZSh0b09wZXJhdGlvbi0+dHlwZSgpKTsKICAgICAgICAgZnJvbU9wZXJhdGlvbiA9IGRlZmF1
bHRGcm9tT3BlcmF0aW9uLmdldCgpOwogICAgIH0KIAogICAgIGlmICghdG9PcGVyYXRpb24pIHsK
LSAgICAgICAgZGVmYXVsdFRvT3BlcmF0aW9uID0gRGVmYXVsdEZpbHRlck9wZXJhdGlvbjo6Y3Jl
YXRlKGZyb21PcGVyYXRpb24tPmdldE9wZXJhdGlvblR5cGUoKSk7CisgICAgICAgIGRlZmF1bHRU
b09wZXJhdGlvbiA9IERlZmF1bHRGaWx0ZXJPcGVyYXRpb246OmNyZWF0ZShmcm9tT3BlcmF0aW9u
LT50eXBlKCkpOwogICAgICAgICB0b09wZXJhdGlvbiA9IGRlZmF1bHRUb09wZXJhdGlvbi5nZXQo
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9QbGF0Zm9ybUNBRmlsdGVyc01hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBRmlsdGVyc01hYy5tbQppbmRleCBhOTE3MmQyLi5k
OGQ3NzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9t
YWMvUGxhdGZvcm1DQUZpbHRlcnNNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FGaWx0ZXJzTWFjLm1tCkBAIC0xMDUsNyArMTA1LDcg
QEAgdm9pZCBQbGF0Zm9ybUNBRmlsdGVyczo6c2V0RmlsdGVyc09uTGF5ZXIoUGxhdGZvcm1MYXll
ciogbGF5ZXIsIGNvbnN0IEZpbHRlck9wZXIKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
ZmlsdGVycy5zaXplKCk7ICsraSkgewogICAgICAgICBTdHJpbmcgZmlsdGVyTmFtZSA9IFN0cmlu
Zzo6Zm9ybWF0KCJmaWx0ZXJfJWQiLCBpKTsKICAgICAgICAgY29uc3QgRmlsdGVyT3BlcmF0aW9u
KiBmaWx0ZXJPcGVyYXRpb24gPSBmaWx0ZXJzLmF0KGkpOwotICAgICAgICBzd2l0Y2ggKGZpbHRl
ck9wZXJhdGlvbi0+Z2V0T3BlcmF0aW9uVHlwZSgpKSB7CisgICAgICAgIHN3aXRjaCAoZmlsdGVy
T3BlcmF0aW9uLT50eXBlKCkpIHsKICAgICAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OkRST1Bf
U0hBRE9XOiB7CiAgICAgICAgICAgICAvLyBGSVhNRTogRm9yIG5vdyBhc3N1bWUgZHJvcCBzaGFk
b3cgaXMgdGhlIGxhc3QgZmlsdGVyLCBwdXQgaXQgb24gdGhlIGxheWVyLgogICAgICAgICAgICAg
Ly8gPHJkYXI6Ly9wcm9ibGVtLzEwOTU5OTY5PiBIYW5kbGUgY2FzZSB3aGVyZSBkcm9wLXNoYWRv
dyBpcyBub3QgdGhlIGxhc3QgZmlsdGVyLgpAQCAtMzM0LDcgKzMzNCw3IEBAIFJldGFpblB0cjxO
U1ZhbHVlPiBQbGF0Zm9ybUNBRmlsdGVyczo6ZmlsdGVyVmFsdWVGb3JPcGVyYXRpb24oY29uc3Qg
RmlsdGVyT3BlcmF0CiAjaWYgVVNFX0NBX0ZJTFRFUlMKICAgICBVTlVTRURfUEFSQU0oaW50ZXJu
YWxGaWx0ZXJQcm9wZXJ0eUluZGV4KTsKICNlbmRpZgotICAgIEZpbHRlck9wZXJhdGlvbjo6T3Bl
cmF0aW9uVHlwZSB0eXBlID0gb3BlcmF0aW9uLT5nZXRPcGVyYXRpb25UeXBlKCk7CisgICAgRmls
dGVyT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUgPSBvcGVyYXRpb24tPnR5cGUoKTsKICAg
ICBSZXRhaW5QdHI8aWQ+IHZhbHVlOwogICAgIAogICAgIHN3aXRjaCAodHlwZSkgewpAQCAtNTEz
LDcgKzUxMyw3IEBAIFJldGFpblB0cjxOU1ZhbHVlPiBQbGF0Zm9ybUNBRmlsdGVyczo6ZmlsdGVy
VmFsdWVGb3JPcGVyYXRpb24oY29uc3QgRmlsdGVyT3BlcmF0CiAjaWYgVVNFX0NBX0ZJTFRFUlMK
IFJldGFpblB0cjxOU1ZhbHVlPiBQbGF0Zm9ybUNBRmlsdGVyczo6Y29sb3JNYXRyaXhWYWx1ZUZv
ckZpbHRlcihjb25zdCBGaWx0ZXJPcGVyYXRpb24mIGZpbHRlck9wZXJhdGlvbikKIHsKLSAgICBz
d2l0Y2ggKGZpbHRlck9wZXJhdGlvbi5nZXRPcGVyYXRpb25UeXBlKCkpIHsKKyAgICBzd2l0Y2gg
KGZpbHRlck9wZXJhdGlvbi50eXBlKCkpIHsKICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6U0VQ
SUE6IHsKICAgICAgICAgY29uc3QgQmFzaWNDb2xvck1hdHJpeEZpbHRlck9wZXJhdGlvbiYgb3Ag
PSBzdGF0aWNfY2FzdDxjb25zdCBCYXNpY0NvbG9yTWF0cml4RmlsdGVyT3BlcmF0aW9uJj4oZmls
dGVyT3BlcmF0aW9uKTsKICAgICAgICAgZG91YmxlIHQgPSBvcC5hbW91bnQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5
ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZv
cm1DQUxheWVyTWFjLm1tCmluZGV4IDA1Y2RiMTIuLmI3MzQ3NDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FM
YXllck1hYy5tbQpAQCAtNjUxLDcgKzY1MSw3IEBAIGJvb2wgUGxhdGZvcm1DQUxheWVyTWFjOjpm
aWx0ZXJzQ2FuQmVDb21wb3NpdGVkKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcnMpCiAg
ICAgCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZpbHRlcnMuc2l6ZSgpOyArK2kpIHsK
ICAgICAgICAgY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBmaWx0ZXJPcGVyYXRpb24gPSBmaWx0ZXJz
LmF0KGkpOwotICAgICAgICBzd2l0Y2ggKGZpbHRlck9wZXJhdGlvbi0+Z2V0T3BlcmF0aW9uVHlw
ZSgpKSB7CisgICAgICAgIHN3aXRjaCAoZmlsdGVyT3BlcmF0aW9uLT50eXBlKCkpIHsKICAgICAg
ICAgICAgIGNhc2UgRmlsdGVyT3BlcmF0aW9uOjpSRUZFUkVOQ0U6CiAjaWYgRU5BQkxFKENTU19T
SEFERVJTKQogICAgICAgICAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OkNVU1RPTToKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3Bl
cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRl
ck9wZXJhdGlvbi5oCmluZGV4IDExMjY1ZDAuLjQ3YWRmZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24u
aApAQCAtOTcsOCArOTcsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAwOyAKICAgICB9CiAK
LSAgICB2aXJ0dWFsIE9wZXJhdGlvblR5cGUgZ2V0T3BlcmF0aW9uVHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdHlwZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NhbWVUeXBlKGNvbnN0IEZpbHRlck9w
ZXJhdGlvbiYgbykgY29uc3QgeyByZXR1cm4gby5nZXRPcGVyYXRpb25UeXBlKCkgPT0gbV90eXBl
OyB9CisgICAgdmlydHVhbCBPcGVyYXRpb25UeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5
cGU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lVHlwZShjb25zdCBGaWx0ZXJPcGVyYXRpb24m
IG8pIGNvbnN0IHsgcmV0dXJuIG8udHlwZSgpID09IG1fdHlwZTsgfQogICAgIAogICAgIHZpcnR1
YWwgYm9vbCBpc0RlZmF1bHQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlv
bnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJP
cGVyYXRpb25zLmNwcAppbmRleCBkYjY1OTQzLi5hMjg1MzhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0
aW9ucy5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgYm9vbCBGaWx0ZXJPcGVyYXRpb25zOjpvcGVyYXRp
b25zTWF0Y2goY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgb3RoZXIpIGNvbnN0CiBib29sIEZpbHRl
ck9wZXJhdGlvbnM6Omhhc0N1c3RvbUZpbHRlcigpIGNvbnN0CiB7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtX29wZXJhdGlvbnMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgRmlsdGVyT3Bl
cmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUgPSBtX29wZXJhdGlvbnMuYXQoaSktPmdldE9wZXJh
dGlvblR5cGUoKTsKKyAgICAgICAgRmlsdGVyT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUg
PSBtX29wZXJhdGlvbnMuYXQoaSktPnR5cGUoKTsKICAgICAgICAgaWYgKHR5cGUgPT0gRmlsdGVy
T3BlcmF0aW9uOjpDVVNUT00gfHwgdHlwZSA9PSBGaWx0ZXJPcGVyYXRpb246OlZBTElEQVRFRF9D
VVNUT00pCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0xMDIsNyArMTAyLDcg
QEAgYm9vbCBGaWx0ZXJPcGVyYXRpb25zOjpoYXNDdXN0b21GaWx0ZXIoKSBjb25zdAogYm9vbCBG
aWx0ZXJPcGVyYXRpb25zOjpoYXNSZWZlcmVuY2VGaWx0ZXIoKSBjb25zdAogewogICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbV9vcGVyYXRpb25zLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlm
IChtX29wZXJhdGlvbnMuYXQoaSktPmdldE9wZXJhdGlvblR5cGUoKSA9PSBGaWx0ZXJPcGVyYXRp
b246OlJFRkVSRU5DRSkKKyAgICAgICAgaWYgKG1fb3BlcmF0aW9ucy5hdChpKS0+dHlwZSgpID09
IEZpbHRlck9wZXJhdGlvbjo6UkVGRVJFTkNFKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogICAgIHJldHVybiBmYWxzZTsKQEAgLTExMSw3ICsxMTEsNyBAQCBib29sIEZpbHRlck9w
ZXJhdGlvbnM6Omhhc1JlZmVyZW5jZUZpbHRlcigpIGNvbnN0CiBib29sIEZpbHRlck9wZXJhdGlv
bnM6Omhhc091dHNldHMoKSBjb25zdAogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9v
cGVyYXRpb25zLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIEZpbHRlck9wZXJhdGlvbjo6T3BlcmF0
aW9uVHlwZSBvcGVyYXRpb25UeXBlID0gbV9vcGVyYXRpb25zLmF0KGkpLmdldCgpLT5nZXRPcGVy
YXRpb25UeXBlKCk7CisgICAgICAgIEZpbHRlck9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSBvcGVy
YXRpb25UeXBlID0gbV9vcGVyYXRpb25zLmF0KGkpLmdldCgpLT50eXBlKCk7CiAgICAgICAgIGlm
IChvcGVyYXRpb25UeXBlID09IEZpbHRlck9wZXJhdGlvbjo6QkxVUiB8fCBvcGVyYXRpb25UeXBl
ID09IEZpbHRlck9wZXJhdGlvbjo6RFJPUF9TSEFET1cpCiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CkBAIC0xMjMsNyArMTIzLDcgQEAgRmlsdGVyT3V0c2V0cyBGaWx0ZXJPcGVyYXRp
b25zOjpvdXRzZXRzKCkgY29uc3QKICAgICBGaWx0ZXJPdXRzZXRzIHRvdGFsT3V0c2V0czsKICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fb3BlcmF0aW9ucy5zaXplKCk7ICsraSkgewogICAg
ICAgICBGaWx0ZXJPcGVyYXRpb24qIGZpbHRlck9wZXJhdGlvbiA9IG1fb3BlcmF0aW9ucy5hdChp
KS5nZXQoKTsKLSAgICAgICAgc3dpdGNoIChmaWx0ZXJPcGVyYXRpb24tPmdldE9wZXJhdGlvblR5
cGUoKSkgeworICAgICAgICBzd2l0Y2ggKGZpbHRlck9wZXJhdGlvbi0+dHlwZSgpKSB7CiAgICAg
ICAgIGNhc2UgRmlsdGVyT3BlcmF0aW9uOjpCTFVSOiB7CiAgICAgICAgICAgICBCbHVyRmlsdGVy
T3BlcmF0aW9uKiBibHVyT3BlcmF0aW9uID0gc3RhdGljX2Nhc3Q8Qmx1ckZpbHRlck9wZXJhdGlv
bio+KGZpbHRlck9wZXJhdGlvbik7CiAgICAgICAgICAgICBmbG9hdCBzdGREZXZpYXRpb24gPSBm
bG9hdFZhbHVlRm9yTGVuZ3RoKGJsdXJPcGVyYXRpb24tPnN0ZERldmlhdGlvbigpLCAwKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvSWRl
bnRpdHlUcmFuc2Zvcm1PcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvSWRlbnRpdHlUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCBlM2VjY2Mx
Li5jMWY3ZjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL0lkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9JZGVudGl0eVRyYW5zZm9ybU9wZXJhdGlv
bi5oCkBAIC0zOCw4ICszOCw4IEBAIHB1YmxpYzoKICAgICAgICAgCiBwcml2YXRlOgogICAgIHZp
cnR1YWwgYm9vbCBpc0lkZW50aXR5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1
YWwgT3BlcmF0aW9uVHlwZSBnZXRPcGVyYXRpb25UeXBlKCkgY29uc3QgeyByZXR1cm4gSURFTlRJ
VFk7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lVHlwZShjb25zdCBUcmFuc2Zvcm1PcGVyYXRp
b24mIG8pIGNvbnN0IHsgcmV0dXJuIG8uZ2V0T3BlcmF0aW9uVHlwZSgpID09IElERU5USVRZOyB9
CisgICAgdmlydHVhbCBPcGVyYXRpb25UeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBJREVOVElU
WTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1NhbWVUeXBlKGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlv
biYgbykgY29uc3QgeyByZXR1cm4gby50eXBlKCkgPT0gSURFTlRJVFk7IH0KIAogICAgIHZpcnR1
YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiYgbykgY29uc3QKICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmgKaW5kZXgg
YjA1NzdhNi4uODg5YzJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1P
cGVyYXRpb24uaApAQCAtNDIsOCArNDIsOCBAQCBwdWJsaWM6CiBwcml2YXRlOiAgICAKICAgICB2
aXJ0dWFsIGJvb2wgaXNJZGVudGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fbWF0cml4LmlzSWRlbnRp
dHkoKTsgfQogCi0gICAgdmlydHVhbCBPcGVyYXRpb25UeXBlIGdldE9wZXJhdGlvblR5cGUoKSBj
b25zdCB7IHJldHVybiBNQVRSSVhfM0Q7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lVHlwZShj
b25zdCBUcmFuc2Zvcm1PcGVyYXRpb24mIG8pIGNvbnN0IHsgcmV0dXJuIG8uZ2V0T3BlcmF0aW9u
VHlwZSgpID09IE1BVFJJWF8zRDsgfQorICAgIHZpcnR1YWwgT3BlcmF0aW9uVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gTUFUUklYXzNEOyB9CisgICAgdmlydHVhbCBib29sIGlzU2FtZVR5cGUo
Y29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBvKSBjb25zdCB7IHJldHVybiBvLnR5cGUoKSA9PSBN
QVRSSVhfM0Q7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRyYW5zZm9y
bU9wZXJhdGlvbiYgbykgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zv
cm1PcGVyYXRpb24uaAppbmRleCA0NWY5ZWE3Li43NmM1ZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeFRyYW5zZm9ybU9wZXJh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMv
TWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmgKQEAgLTQ3LDggKzQ3LDggQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNJZGVudGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYSA9
PSAxICYmIG1fYiA9PSAwICYmIG1fYyA9PSAwICYmIG1fZCA9PSAxICYmIG1fZSA9PSAwICYmIG1f
ZiA9PSAwOyB9CiAKLSAgICB2aXJ0dWFsIE9wZXJhdGlvblR5cGUgZ2V0T3BlcmF0aW9uVHlwZSgp
IGNvbnN0IHsgcmV0dXJuIE1BVFJJWDsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NhbWVUeXBlKGNv
bnN0IFRyYW5zZm9ybU9wZXJhdGlvbiYgbykgY29uc3QgeyByZXR1cm4gby5nZXRPcGVyYXRpb25U
eXBlKCkgPT0gTUFUUklYOyB9CisgICAgdmlydHVhbCBPcGVyYXRpb25UeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBNQVRSSVg7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lVHlwZShjb25zdCBU
cmFuc2Zvcm1PcGVyYXRpb24mIG8pIGNvbnN0IHsgcmV0dXJuIG8udHlwZSgpID09IE1BVFJJWDsg
fQogCiAgICAgdmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9u
JiBvKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUGVyc3BlY3RpdmVUcmFuc2Zv
cm1PcGVyYXRpb24uaAppbmRleCAzNzMwZDQyLi43M2FhNjgwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1BlcnNwZWN0aXZlVHJhbnNmb3Jt
T3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCkBAIC00Myw4ICs0Myw4IEBAIHB1
YmxpYzoKICAgICAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzSWRlbnRpdHkoKSBjb25z
dCB7IHJldHVybiAhZmxvYXRWYWx1ZUZvckxlbmd0aChtX3AsIDEpOyB9Ci0gICAgdmlydHVhbCBP
cGVyYXRpb25UeXBlIGdldE9wZXJhdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBQRVJTUEVDVElW
RTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NhbWVUeXBlKGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlv
biYgbykgY29uc3QgeyByZXR1cm4gby5nZXRPcGVyYXRpb25UeXBlKCkgPT0gUEVSU1BFQ1RJVkU7
IH0KKyAgICB2aXJ0dWFsIE9wZXJhdGlvblR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIFBFUlNQ
RUNUSVZFOyB9CisgICAgdmlydHVhbCBib29sIGlzU2FtZVR5cGUoY29uc3QgVHJhbnNmb3JtT3Bl
cmF0aW9uJiBvKSBjb25zdCB7IHJldHVybiBvLnR5cGUoKSA9PSBQRVJTUEVDVElWRTsgfQogCiAg
ICAgdmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBvKSBj
b25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCmlu
ZGV4IDBkNDk1YzUuLmY0N2E1MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RyYW5zZm9ybXMvUm90YXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Sb3RhdGVUcmFuc2Zvcm1P
cGVyYXRpb24uaApAQCAtNDksOCArNDksOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1
YWwgYm9vbCBpc0lkZW50aXR5KCkgY29uc3QgeyByZXR1cm4gbV9hbmdsZSA9PSAwOyB9CiAKLSAg
ICB2aXJ0dWFsIE9wZXJhdGlvblR5cGUgZ2V0T3BlcmF0aW9uVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NhbWVUeXBlKGNvbnN0IFRyYW5zZm9ybU9w
ZXJhdGlvbiYgbykgY29uc3QgeyByZXR1cm4gby5nZXRPcGVyYXRpb25UeXBlKCkgPT0gbV90eXBl
OyB9CisgICAgdmlydHVhbCBPcGVyYXRpb25UeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5
cGU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lVHlwZShjb25zdCBUcmFuc2Zvcm1PcGVyYXRp
b24mIG8pIGNvbnN0IHsgcmV0dXJuIG8udHlwZSgpID09IG1fdHlwZTsgfQogCiAgICAgdmlydHVh
bCBib29sIG9wZXJhdG9yPT0oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBvKSBjb25zdAogICAg
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9y
bXMvU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCA3MzQzZDA5
Li42MmJlYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5oCkBA
IC00OCw4ICs0OCw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzSWRl
bnRpdHkoKSBjb25zdCB7IHJldHVybiBtX3ggPT0gMSAmJiAgbV95ID09IDEgJiYgIG1feiA9PSAx
OyB9CiAKLSAgICB2aXJ0dWFsIE9wZXJhdGlvblR5cGUgZ2V0T3BlcmF0aW9uVHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NhbWVUeXBlKGNvbnN0IFRy
YW5zZm9ybU9wZXJhdGlvbiYgbykgY29uc3QgeyByZXR1cm4gby5nZXRPcGVyYXRpb25UeXBlKCkg
PT0gbV90eXBlOyB9CisgICAgdmlydHVhbCBPcGVyYXRpb25UeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lVHlwZShjb25zdCBUcmFuc2Zv
cm1PcGVyYXRpb24mIG8pIGNvbnN0IHsgcmV0dXJuIG8udHlwZSgpID09IG1fdHlwZTsgfQogCiAg
ICAgdmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBvKSBj
b25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uLmgKaW5kZXgg
ZGRkZTk4Ni4uZTlmMGM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdHJhbnNmb3Jtcy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9u
LmgKQEAgLTQxLDggKzQxLDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9v
bCBpc0lkZW50aXR5KCkgY29uc3QgeyByZXR1cm4gbV9hbmdsZVggPT0gMCAmJiBtX2FuZ2xlWSA9
PSAwOyB9Ci0gICAgdmlydHVhbCBPcGVyYXRpb25UeXBlIGdldE9wZXJhdGlvblR5cGUoKSBjb25z
dCB7IHJldHVybiBtX3R5cGU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lVHlwZShjb25zdCBU
cmFuc2Zvcm1PcGVyYXRpb24mIG8pIGNvbnN0IHsgcmV0dXJuIG8uZ2V0T3BlcmF0aW9uVHlwZSgp
ID09IG1fdHlwZTsgfQorICAgIHZpcnR1YWwgT3BlcmF0aW9uVHlwZSB0eXBlKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlOyB9CisgICAgdmlydHVhbCBib29sIGlzU2FtZVR5cGUoY29uc3QgVHJhbnNm
b3JtT3BlcmF0aW9uJiBvKSBjb25zdCB7IHJldHVybiBvLnR5cGUoKSA9PSBtX3R5cGU7IH0KIAog
ICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiYgbykg
Y29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCAxZTdlYmIw
Li5mOWY5NzVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9uLmgKQEAgLTYzLDEyICs2
MywxMiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8VHJhbnNmb3JtT3BlcmF0
aW9uPiBibGVuZChjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24qIGZyb20sIGRvdWJsZSBwcm9ncmVz
cywgYm9vbCBibGVuZFRvSWRlbnRpdHkgPSBmYWxzZSkgPSAwOwogCi0gICAgdmlydHVhbCBPcGVy
YXRpb25UeXBlIGdldE9wZXJhdGlvblR5cGUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBPcGVy
YXRpb25UeXBlIHR5cGUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzU2FtZVR5cGUo
Y29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAK
ICAgICBib29sIGlzM0RPcGVyYXRpb24oKSBjb25zdAogICAgIHsKLSAgICAgICAgT3BlcmF0aW9u
VHlwZSBvcFR5cGUgPSBnZXRPcGVyYXRpb25UeXBlKCk7CisgICAgICAgIE9wZXJhdGlvblR5cGUg
b3BUeXBlID0gdHlwZSgpOwogICAgICAgICByZXR1cm4gb3BUeXBlID09IFNDQUxFX1ogfHwKICAg
ICAgICAgICAgICAgIG9wVHlwZSA9PSBTQ0FMRV8zRCB8fAogICAgICAgICAgICAgICAgb3BUeXBl
ID09IFRSQU5TTEFURV9aIHx8CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1P
cGVyYXRpb24uaAppbmRleCBmYzJiYzFmLi42M2NmNTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMv
VHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmgKQEAgLTU0LDggKzU0LDggQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNJZGVudGl0eSgpIGNvbnN0IHsgcmV0dXJuICFm
bG9hdFZhbHVlRm9yTGVuZ3RoKG1feCwgMSkgJiYgIWZsb2F0VmFsdWVGb3JMZW5ndGgobV95LCAx
KSAmJiAhZmxvYXRWYWx1ZUZvckxlbmd0aChtX3osIDEpOyB9CiAKLSAgICB2aXJ0dWFsIE9wZXJh
dGlvblR5cGUgZ2V0T3BlcmF0aW9uVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQotICAg
IHZpcnR1YWwgYm9vbCBpc1NhbWVUeXBlKGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiYgbykgY29u
c3QgeyByZXR1cm4gby5nZXRPcGVyYXRpb25UeXBlKCkgPT0gbV90eXBlOyB9CisgICAgdmlydHVh
bCBPcGVyYXRpb25UeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgaXNTYW1lVHlwZShjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24mIG8pIGNvbnN0IHsg
cmV0dXJuIG8udHlwZSgpID09IG1fdHlwZTsgfQogCiAgICAgdmlydHVhbCBib29sIG9wZXJhdG9y
PT0oY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBvKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0NsaXBQYXRoT3BlcmF0aW9uLmgKaW5kZXggZDBkNDIxMWMuLjZhYjg4
NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5oCkBA
IC01MSw4ICs1MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBDbGlwUGF0aE9wZXJhdGlvbiYpIGNvbnN0ID0gMDsKICAgICBib29sIG9wZXJhdG9yIT0oY29u
c3QgQ2xpcFBhdGhPcGVyYXRpb24mIG8pIGNvbnN0IHsgcmV0dXJuICEoKnRoaXMgPT0gbyk7IH0K
IAotICAgIHZpcnR1YWwgT3BlcmF0aW9uVHlwZSBnZXRPcGVyYXRpb25UeXBlKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzU2FtZVR5cGUoY29uc3QgQ2xpcFBh
dGhPcGVyYXRpb24mIG8pIGNvbnN0IHsgcmV0dXJuIG8uZ2V0T3BlcmF0aW9uVHlwZSgpID09IG1f
dHlwZTsgfQorICAgIHZpcnR1YWwgT3BlcmF0aW9uVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4g
bV90eXBlOyB9CisgICAgdmlydHVhbCBib29sIGlzU2FtZVR5cGUoY29uc3QgQ2xpcFBhdGhPcGVy
YXRpb24mIG8pIGNvbnN0IHsgcmV0dXJuIG8udHlwZSgpID09IG1fdHlwZTsgfQogCiBwcm90ZWN0
ZWQ6CiAgICAgZXhwbGljaXQgQ2xpcFBhdGhPcGVyYXRpb24oT3BlcmF0aW9uVHlwZSB0eXBlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAK
aW5kZXggMWRhN2YwNC4uZDVhNDdmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgYm9vbCBGaWx0
ZXJFZmZlY3RSZW5kZXJlcjo6YnVpbGQoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNvbnN0IEZp
bHRlck9wZXJhdGlvbnMKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG9wZXJhdGlvbnMub3Bl
cmF0aW9ucygpLnNpemUoKTsgKytpKSB7CiAgICAgICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGVm
ZmVjdDsKICAgICAgICAgRmlsdGVyT3BlcmF0aW9uKiBmaWx0ZXJPcGVyYXRpb24gPSBvcGVyYXRp
b25zLm9wZXJhdGlvbnMoKS5hdChpKS5nZXQoKTsKLSAgICAgICAgc3dpdGNoIChmaWx0ZXJPcGVy
YXRpb24tPmdldE9wZXJhdGlvblR5cGUoKSkgeworICAgICAgICBzd2l0Y2ggKGZpbHRlck9wZXJh
dGlvbi0+dHlwZSgpKSB7CiAgICAgICAgIGNhc2UgRmlsdGVyT3BlcmF0aW9uOjpSRUZFUkVOQ0U6
IHsKICAgICAgICAgICAgIFJlZmVyZW5jZUZpbHRlck9wZXJhdGlvbiogcmVmZXJlbmNlT3BlcmF0
aW9uID0gc3RhdGljX2Nhc3Q8UmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9uKj4oZmlsdGVyT3BlcmF0
aW9uKTsKICAgICAgICAgICAgIGVmZmVjdCA9IGJ1aWxkUmVmZXJlbmNlRmlsdGVyKHJlbmRlcmVy
LCBwcmV2aW91c0VmZmVjdCwgcmVmZXJlbmNlT3BlcmF0aW9uKTsKQEAgLTM2MCw3ICszNjAsNyBA
QCBib29sIEZpbHRlckVmZmVjdFJlbmRlcmVyOjpidWlsZChSZW5kZXJFbGVtZW50KiByZW5kZXJl
ciwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucwogICAgICAgICAgICAgZWZmZWN0LT5zZXRDbGlwc1Rv
Qm91bmRzKGNvbnN1bWVyID09IEZpbHRlckZ1bmN0aW9uKTsKICAgICAgICAgICAgIGVmZmVjdC0+
c2V0T3BlcmF0aW5nQ29sb3JTcGFjZShDb2xvclNwYWNlRGV2aWNlUkdCKTsKICAgICAgICAgICAg
IAotICAgICAgICAgICAgaWYgKGZpbHRlck9wZXJhdGlvbi0+Z2V0T3BlcmF0aW9uVHlwZSgpICE9
IEZpbHRlck9wZXJhdGlvbjo6UkVGRVJFTkNFKSB7CisgICAgICAgICAgICBpZiAoZmlsdGVyT3Bl
cmF0aW9uLT50eXBlKCkgIT0gRmlsdGVyT3BlcmF0aW9uOjpSRUZFUkVOQ0UpIHsKICAgICAgICAg
ICAgICAgICBlZmZlY3QtPmlucHV0RWZmZWN0cygpLmFwcGVuZChwcmV2aW91c0VmZmVjdCk7CiAg
ICAgICAgICAgICAgICAgbV9lZmZlY3RzLmFwcGVuZChlZmZlY3QpOwogICAgICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggY2ZjMWI4Yy4uZDFj
MmJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0zNzA1
LDcgKzM3MDUsNyBAQCBib29sIFJlbmRlckxheWVyOjpzZXR1cENsaXBQYXRoKEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZgogICAgIFJlbmRlclN0eWxlKiBz
dHlsZSA9IHJlbmRlcmVyKCkuc3R5bGUoKTsKIAogICAgIEFTU0VSVChzdHlsZS0+Y2xpcFBhdGgo
KSk7Ci0gICAgaWYgKHN0eWxlLT5jbGlwUGF0aCgpLT5nZXRPcGVyYXRpb25UeXBlKCkgPT0gQ2xp
cFBhdGhPcGVyYXRpb246OlNIQVBFKSB7CisgICAgaWYgKHN0eWxlLT5jbGlwUGF0aCgpLT50eXBl
KCkgPT0gQ2xpcFBhdGhPcGVyYXRpb246OlNIQVBFKSB7CiAgICAgICAgIFNoYXBlQ2xpcFBhdGhP
cGVyYXRpb24qIGNsaXBQYXRoID0gc3RhdGljX2Nhc3Q8U2hhcGVDbGlwUGF0aE9wZXJhdGlvbio+
KHN0eWxlLT5jbGlwUGF0aCgpKTsKIAogICAgICAgICBpZiAoIXJvb3RSZWxhdGl2ZUJvdW5kc0Nv
bXB1dGVkKSB7CkBAIC0zNzE5LDcgKzM3MTksNyBAQCBib29sIFJlbmRlckxheWVyOjpzZXR1cENs
aXBQYXRoKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5ZXJQYWludGluZ0luZgog
ICAgIH0KIAogI2lmIEVOQUJMRShTVkcpCi0gICAgaWYgKHN0eWxlLT5jbGlwUGF0aCgpLT5nZXRP
cGVyYXRpb25UeXBlKCkgPT0gQ2xpcFBhdGhPcGVyYXRpb246OlJFRkVSRU5DRSkgeworICAgIGlm
IChzdHlsZS0+Y2xpcFBhdGgoKS0+dHlwZSgpID09IENsaXBQYXRoT3BlcmF0aW9uOjpSRUZFUkVO
Q0UpIHsKICAgICAgICAgUmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24qIHJlZmVyZW5jZUNsaXBQ
YXRoT3BlcmF0aW9uID0gc3RhdGljX2Nhc3Q8UmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24qPihz
dHlsZS0+Y2xpcFBhdGgoKSk7CiAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSByZW5kZXJlcigp
LmRvY3VtZW50KCkuZ2V0RWxlbWVudEJ5SWQocmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24tPmZy
YWdtZW50KCkpOwogICAgICAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LT5oYXNUYWdOYW1lKFNW
R05hbWVzOjpjbGlwUGF0aFRhZykgJiYgZWxlbWVudC0+cmVuZGVyZXIoKSkgewpAQCAtNjQxMyw3
ICs2NDEzLDcgQEAgRmlsdGVyT3BlcmF0aW9ucyBSZW5kZXJMYXllcjo6Y29tcHV0ZUZpbHRlck9w
ZXJhdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlKQogICAgIEZpbHRlck9wZXJhdGlvbnMg
b3V0cHV0RmlsdGVyczsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZpbHRlcnMuc2l6ZSgp
OyArK2kpIHsKICAgICAgICAgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gZmlsdGVyT3BlcmF0aW9u
ID0gZmlsdGVycy5vcGVyYXRpb25zKCkuYXQoaSk7Ci0gICAgICAgIGlmIChmaWx0ZXJPcGVyYXRp
b24tPmdldE9wZXJhdGlvblR5cGUoKSA9PSBGaWx0ZXJPcGVyYXRpb246OkNVU1RPTSkgeworICAg
ICAgICBpZiAoZmlsdGVyT3BlcmF0aW9uLT50eXBlKCkgPT0gRmlsdGVyT3BlcmF0aW9uOjpDVVNU
T00pIHsKICAgICAgICAgICAgIC8vIFdlIGhhdmUgdG8gd2FpdCB1bnRpbCB0aGUgcHJvZ3JhbSBv
ZiBDU1MgU2hhZGVycyBpcyBsb2FkZWQgYmVmb3JlIHNldHRpbmcgaXQgb24gdGhlIGxheWVyLgog
ICAgICAgICAgICAgLy8gTm90ZSB0aGF0IHdlIHdpbGwgaGFuZGxlIHRoZSBsb2FkaW5nIG9mIHRo
ZSBzaGFkZXJzIGFuZCByZXBhaW50aW5nIG9mIHRoZSBsYXllciBpbiB1cGRhdGVPclJlbW92ZUZp
bHRlckNsaWVudHMuCiAgICAgICAgICAgICBjb25zdCBDdXN0b21GaWx0ZXJPcGVyYXRpb24qIGN1
c3RvbU9wZXJhdGlvbiA9IHN0YXRpY19jYXN0PGNvbnN0IEN1c3RvbUZpbHRlck9wZXJhdGlvbio+
KGZpbHRlck9wZXJhdGlvbi5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckZpbHRlckluZm8uY3BwCmluZGV4IGMwNzVlY2YuLjkwYTFlNTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckZpbHRlckluZm8uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckZpbHRlckluZm8uY3Bw
CkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6RmlsdGVySW5mbzo6dXBkYXRl
UmVmZXJlbmNlRmlsdGVyQ2xpZW50cyhjb25zdCBGaWx0ZXJPcGVyYXRpb24KICAgICByZW1vdmVS
ZWZlcmVuY2VGaWx0ZXJDbGllbnRzKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBv
cGVyYXRpb25zLnNpemUoKTsgaSA8IHNpemU7ICsraSkgewogICAgICAgICBGaWx0ZXJPcGVyYXRp
b24qIGZpbHRlck9wZXJhdGlvbiA9IG9wZXJhdGlvbnMub3BlcmF0aW9ucygpW2ldLmdldCgpOwot
ICAgICAgICBpZiAoZmlsdGVyT3BlcmF0aW9uLT5nZXRPcGVyYXRpb25UeXBlKCkgIT0gRmlsdGVy
T3BlcmF0aW9uOjpSRUZFUkVOQ0UpCisgICAgICAgIGlmIChmaWx0ZXJPcGVyYXRpb24tPnR5cGUo
KSAhPSBGaWx0ZXJPcGVyYXRpb246OlJFRkVSRU5DRSkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICBSZWZlcmVuY2VGaWx0ZXJPcGVyYXRpb24qIHJlZmVyZW5jZUZpbHRlck9wZXJhdGlv
biA9IHN0YXRpY19jYXN0PFJlZmVyZW5jZUZpbHRlck9wZXJhdGlvbio+KGZpbHRlck9wZXJhdGlv
bik7CiAgICAgICAgIENhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlKiBkb2N1bWVudFJlZmVyZW5j
ZSA9IHJlZmVyZW5jZUZpbHRlck9wZXJhdGlvbi0+Y2FjaGVkU1ZHRG9jdW1lbnRSZWZlcmVuY2Uo
KTsKQEAgLTE2Niw3ICsxNjYsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpGaWx0ZXJJbmZvOjp1cGRh
dGVDdXN0b21GaWx0ZXJDbGllbnRzKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmCiAgICAgVmVjdG9y
PFJlZlB0cjxDdXN0b21GaWx0ZXJQcm9ncmFtPj4gY2FjaGVkQ3VzdG9tRmlsdGVyUHJvZ3JhbXM7
CiAgICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBvcGVyYXRpb25zLnNpemUoKTsgaSA8IHNp
emU7ICsraSkgewogICAgICAgICBjb25zdCBGaWx0ZXJPcGVyYXRpb24qIGZpbHRlck9wZXJhdGlv
biA9IG9wZXJhdGlvbnMub3BlcmF0aW9ucygpW2ldLmdldCgpOwotICAgICAgICBpZiAoZmlsdGVy
T3BlcmF0aW9uLT5nZXRPcGVyYXRpb25UeXBlKCkgIT0gRmlsdGVyT3BlcmF0aW9uOjpDVVNUT00p
CisgICAgICAgIGlmIChmaWx0ZXJPcGVyYXRpb24tPnR5cGUoKSAhPSBGaWx0ZXJPcGVyYXRpb246
OkNVU1RPTSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBjb25zdCBDdXN0b21GaWx0
ZXJPcGVyYXRpb24qIGN1c3RvbUZpbHRlck9wZXJhdGlvbiA9IHN0YXRpY19jYXN0PGNvbnN0IEN1
c3RvbUZpbHRlck9wZXJhdGlvbio+KGZpbHRlck9wZXJhdGlvbik7CiAgICAgICAgIEN1c3RvbUZp
bHRlclByb2dyYW0qIHByb2dyYW0gPSBjdXN0b21GaWx0ZXJPcGVyYXRpb24tPnByb2dyYW0oKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4
IDU2Y2JmNDAuLjMxNjc0ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcApAQCAtOTkzLDcgKzk5Myw3IEBAIGlubGluZSBib29sIHJlcXVpcmVU
cmFuc2Zvcm1PcmlnaW4oY29uc3QgVmVjdG9yPFJlZlB0cjxUcmFuc2Zvcm1PcGVyYXRpb24+PiYg
dHJhCiAKICAgICB1bnNpZ25lZCBzaXplID0gdHJhbnNmb3JtT3BlcmF0aW9ucy5zaXplKCk7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICBUcmFuc2Zv
cm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHlwZSA9IHRyYW5zZm9ybU9wZXJhdGlvbnNbaV0t
PmdldE9wZXJhdGlvblR5cGUoKTsKKyAgICAgICAgVHJhbnNmb3JtT3BlcmF0aW9uOjpPcGVyYXRp
b25UeXBlIHR5cGUgPSB0cmFuc2Zvcm1PcGVyYXRpb25zW2ldLT50eXBlKCk7CiAgICAgICAgIGlm
ICh0eXBlICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFX1gKICAgICAgICAgICAgICYm
IHR5cGUgIT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEVfWQogICAgICAgICAgICAgJiYg
dHlwZSAhPSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURSAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwCmluZGV4IDk2YWRm
NDcuLmJlNWI3NmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCB2b2lkIFNWR1JlbmRl
cmluZ0NvbnRleHQ6OnByZXBhcmVUb1JlbmRlclNWR0NvbnRlbnQoUmVuZGVyT2JqZWN0KiBvYmpl
Y3QsIFBhaW50SQogICAgIH0KIAogICAgIENsaXBQYXRoT3BlcmF0aW9uKiBjbGlwUGF0aE9wZXJh
dGlvbiA9IHN0eWxlLT5jbGlwUGF0aCgpOwotICAgIGlmIChjbGlwUGF0aE9wZXJhdGlvbiAmJiBj
bGlwUGF0aE9wZXJhdGlvbi0+Z2V0T3BlcmF0aW9uVHlwZSgpID09IENsaXBQYXRoT3BlcmF0aW9u
OjpTSEFQRSkgeworICAgIGlmIChjbGlwUGF0aE9wZXJhdGlvbiAmJiBjbGlwUGF0aE9wZXJhdGlv
bi0+dHlwZSgpID09IENsaXBQYXRoT3BlcmF0aW9uOjpTSEFQRSkgewogICAgICAgICBTaGFwZUNs
aXBQYXRoT3BlcmF0aW9uKiBjbGlwUGF0aCA9IHN0YXRpY19jYXN0PFNoYXBlQ2xpcFBhdGhPcGVy
YXRpb24qPihjbGlwUGF0aE9wZXJhdGlvbik7CiAgICAgICAgIG1fcGFpbnRJbmZvLT5jb250ZXh0
LT5jbGlwUGF0aChjbGlwUGF0aC0+cGF0aChvYmplY3QtPm9iamVjdEJvdW5kaW5nQm94KCkpLCBj
bGlwUGF0aC0+d2luZFJ1bGUoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDA2YzJlMjYuLjFjODlj
ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxOCBAQAogMjAxMy0xMC0yMiAgVGltIEhvcnRvbiAg
PHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAorICAgICAgICB7Q2xpcFBhdGhPcGVyYXRpb24s
IEZpbHRlck9wZXJhdGlvbn06OmdldE9wZXJhdGlvblR5cGUoKSBzaG91bGQgbm90IGluY2x1ZGUg
J2dldCcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
MzE3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChDb3JlSVBDOjplbmNv
ZGVGaWx0ZXJPcGVyYXRpb24pOgorICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb24ubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRleHRTdHJl
YW06Om9wZXJhdG9yPDwpOgorICAgICAgICBBZG9wdCB0aGUgbmV3IG5hbWUuCisKKzIwMTMtMTAt
MjIgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKICAgICAgICAgUmVt
b3RlIExheWVyIFRyZWU6IFN1cHBvcnQgaGFyZHdhcmUgYWNjZWxlcmF0ZWQgZmlsdGVycwogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzMTM5CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXgg
ZDk5NjBiOS4uODFlZWVkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAKQEAgLTExODIsOSArMTE4Miw5IEBAIGJvb2wgQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpVc2VyU2NyaXB0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rlciwg
V2ViQ29yCiAKIHN0YXRpYyB2b2lkIGVuY29kZUZpbHRlck9wZXJhdGlvbihBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IEZpbHRlck9wZXJhdGlvbiYgZmlsdGVyKQogewotICAgIGVuY29k
ZXIuZW5jb2RlRW51bShmaWx0ZXIuZ2V0T3BlcmF0aW9uVHlwZSgpKTsKKyAgICBlbmNvZGVyLmVu
Y29kZUVudW0oZmlsdGVyLnR5cGUoKSk7CiAKLSAgICBzd2l0Y2ggKGZpbHRlci5nZXRPcGVyYXRp
b25UeXBlKCkpIHsKKyAgICBzd2l0Y2ggKGZpbHRlci50eXBlKCkpIHsKICAgICBjYXNlIEZpbHRl
ck9wZXJhdGlvbjo6UkVGRVJFTkNFOiB7CiAgICAgICAgIGNvbnN0IGF1dG8mIHJlZmVyZW5jZUZp
bHRlciA9IHN0YXRpY19jYXN0PGNvbnN0IFJlZmVyZW5jZUZpbHRlck9wZXJhdGlvbiY+KGZpbHRl
cik7CiAgICAgICAgIGVuY29kZXIgPDwgcmVmZXJlbmNlRmlsdGVyLnVybCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5t
bSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24u
bW0KaW5kZXggNjI1YjNiYS4uMzIxMzJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCkBAIC00MTYsNyArNDE2
LDcgQEAgUmVtb3RlTGF5ZXJUcmVlVGV4dFN0cmVhbSYgUmVtb3RlTGF5ZXJUcmVlVGV4dFN0cmVh
bTo6b3BlcmF0b3I8PChjb25zdCBGaWx0ZXJPcGUKICAgICBSZW1vdGVMYXllclRyZWVUZXh0U3Ry
ZWFtJiB0cyA9ICp0aGlzOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZmlsdGVycy5zaXpl
KCk7ICsraSkgewogICAgICAgICBjb25zdCBhdXRvIGZpbHRlciA9IGZpbHRlcnMuYXQoaSk7Ci0g
ICAgICAgIHN3aXRjaCAoZmlsdGVyLT5nZXRPcGVyYXRpb25UeXBlKCkpIHsKKyAgICAgICAgc3dp
dGNoIChmaWx0ZXItPnR5cGUoKSkgewogICAgICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6UkVG
RVJFTkNFOgogICAgICAgICAgICAgdHMgPDwgInJlZmVyZW5jZSI7CiAgICAgICAgICAgICBicmVh
azsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>214891</attachid>
            <date>2013-10-22 15:14:48 -0700</date>
            <delta_ts>2013-10-22 15:22:32 -0700</delta_ts>
            <desc>stylebot</desc>
            <filename>get.diff</filename>
            <type>text/plain</type>
            <size>32146</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0Njk1MDMzLi45OTE4MDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTMtMTAtMjIgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAge0NsaXBQYXRoT3BlcmF0aW9uLCBGaWx0ZXJPcGVyYXRpb259OjpnZXRPcGVyYXRp
b25UeXBlKCkgc2hvdWxkIG5vdCBpbmNsdWRlICdnZXQnCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNzIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGp1c3QgYSByZW5hbWUuCisK
KyAgICAgICAgImdldCIgaW4gV2ViQ29yZSB0ZW5kcyB0byBtZWFuIHRoYXQgdGhlIGZ1bmN0aW9u
IGhhcyBvdXQgYXJndW1lbnRzOyB0aGVzZSBoYXZlIG5vIGFyZ3VtZW50cy4KKyAgICAgICAgUmVu
YW1lIEZpbHRlck9wZXJhdGlvbjo6Z2V0T3BlcmF0aW9uVHlwZSgpIHRvIEZpbHRlck9wZXJhdGlv
bjo6dHlwZSgpLgorICAgICAgICBJIG5vdGljZWQgdGhhdCBDbGlwUGF0aE9wZXJhdGlvbiBoYWQg
dGhlIHNhbWUgbWlzdGFrZSwgc28gSSBmaXhlZCBpdCB0aGVyZSB0b28uCisKKyAgICAgICAgUmVt
b3ZlZCBsb25nIGFuZCB1c2VsZXNzIGxpc3Qgb2YgZmlsZXMuCisKIDIwMTMtMTAtMjIgIEFudHRp
IEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBzb21lIGxpbmUg
Ym94IGZ1bmN0aW9ucyB0byBiZSBqdXN0IGFib3V0IGxpbmVzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IDg4YzBkN2MuLmQx
YmVhMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVj
bGFyYXRpb24uY3BwCkBAIC05NTIsNyArOTUyLDcgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ29t
cHV0ZWRTdHlsZUV4dHJhY3Rvcjo6dmFsdWVGb3JGaWx0ZXIoY29uc3QgUmVuZGVyT2JqZWN0Kgog
ICAgIFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9
IGZpbHRlck9wZXJhdGlvbnMub3BlcmF0aW9ucygpLmVuZCgpOwogICAgIGZvciAoVmVjdG9yPFJl
ZlB0cjxGaWx0ZXJPcGVyYXRpb24+Pjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBmaWx0ZXJPcGVyYXRp
b25zLm9wZXJhdGlvbnMoKS5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgRmls
dGVyT3BlcmF0aW9uKiBmaWx0ZXJPcGVyYXRpb24gPSAoKml0KS5nZXQoKTsKLSAgICAgICAgc3dp
dGNoIChmaWx0ZXJPcGVyYXRpb24tPmdldE9wZXJhdGlvblR5cGUoKSkgeworICAgICAgICBzd2l0
Y2ggKGZpbHRlck9wZXJhdGlvbi0+dHlwZSgpKSB7CiAgICAgICAgIGNhc2UgRmlsdGVyT3BlcmF0
aW9uOjpSRUZFUkVOQ0U6IHsKICAgICAgICAgICAgIFJlZmVyZW5jZUZpbHRlck9wZXJhdGlvbiog
cmVmZXJlbmNlT3BlcmF0aW9uID0gc3RhdGljX2Nhc3Q8UmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9u
Kj4oZmlsdGVyT3BlcmF0aW9uKTsKICAgICAgICAgICAgIGZpbHRlclZhbHVlID0gV2ViS2l0Q1NT
RmlsdGVyVmFsdWU6OmNyZWF0ZShXZWJLaXRDU1NGaWx0ZXJWYWx1ZTo6UmVmZXJlbmNlRmlsdGVy
T3BlcmF0aW9uKTsKQEAgLTI4MjgsMTAgKzI4MjgsMTAgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4g
Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6cHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3Bl
cnQKICAgICAgICAgICAgIHJldHVybiBjb3VudGVyVG9DU1NWYWx1ZShzdHlsZS5nZXQoKSwgcHJv
cGVydHlJRCk7CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRDbGlwUGF0aDoKICAgICAg
ICAgICAgIGlmIChDbGlwUGF0aE9wZXJhdGlvbiogb3BlcmF0aW9uID0gc3R5bGUtPmNsaXBQYXRo
KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAob3BlcmF0aW9uLT5nZXRPcGVyYXRpb25UeXBlKCkg
PT0gQ2xpcFBhdGhPcGVyYXRpb246OlNIQVBFKQorICAgICAgICAgICAgICAgIGlmIChvcGVyYXRp
b24tPnR5cGUoKSA9PSBDbGlwUGF0aE9wZXJhdGlvbjo6U0hBUEUpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiB2YWx1ZUZvckJhc2ljU2hhcGUoc3R5bGUuZ2V0KCksIHN0YXRpY19jYXN0PFNo
YXBlQ2xpcFBhdGhPcGVyYXRpb24qPihvcGVyYXRpb24pLT5iYXNpY1NoYXBlKCkpOwogI2lmIEVO
QUJMRShTVkcpCi0gICAgICAgICAgICAgICAgZWxzZSBpZiAob3BlcmF0aW9uLT5nZXRPcGVyYXRp
b25UeXBlKCkgPT0gQ2xpcFBhdGhPcGVyYXRpb246OlJFRkVSRU5DRSkgeworICAgICAgICAgICAg
ICAgIGlmIChvcGVyYXRpb24tPnR5cGUoKSA9PSBDbGlwUGF0aE9wZXJhdGlvbjo6UkVGRVJFTkNF
KSB7CiAgICAgICAgICAgICAgICAgICAgIFJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0aW9uKiByZWZl
cmVuY2VPcGVyYXRpb24gPSBzdGF0aWNfY2FzdDxSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbio+
KG9wZXJhdGlvbik7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1
ZTo6Y3JlYXRlKHJlZmVyZW5jZU9wZXJhdGlvbi0+dXJsKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfVVJJKTsKICAgICAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5j
cHAKaW5kZXggY2FmNTYwYi4uM2M4ZTc4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmNwcApAQCAtMzQwMSw3ICszNDAxLDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpsb2FkUGVuZGlu
Z1NWR0RvY3VtZW50cygpCiAgICAgVmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+PiYgZmls
dGVyT3BlcmF0aW9ucyA9IHN0YXRlLnN0eWxlKCktPm11dGFibGVGaWx0ZXIoKS5vcGVyYXRpb25z
KCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZpbHRlck9wZXJhdGlvbnMuc2l6ZSgp
OyArK2kpIHsKICAgICAgICAgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gZmlsdGVyT3BlcmF0aW9u
ID0gZmlsdGVyT3BlcmF0aW9ucy5hdChpKTsKLSAgICAgICAgaWYgKGZpbHRlck9wZXJhdGlvbi0+
Z2V0T3BlcmF0aW9uVHlwZSgpID09IEZpbHRlck9wZXJhdGlvbjo6UkVGRVJFTkNFKSB7CisgICAg
ICAgIGlmIChmaWx0ZXJPcGVyYXRpb24tPnR5cGUoKSA9PSBGaWx0ZXJPcGVyYXRpb246OlJFRkVS
RU5DRSkgewogICAgICAgICAgICAgUmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9uKiByZWZlcmVuY2VG
aWx0ZXIgPSBzdGF0aWNfY2FzdDxSZWZlcmVuY2VGaWx0ZXJPcGVyYXRpb24qPihmaWx0ZXJPcGVy
YXRpb24uZ2V0KCkpOwogCiAgICAgICAgICAgICBXZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlKiB2
YWx1ZSA9IHN0YXRlLnBlbmRpbmdTVkdEb2N1bWVudHMoKS5nZXQocmVmZXJlbmNlRmlsdGVyKTsK
QEAgLTM0NjQsNyArMzQ2NCw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6bG9hZFBlbmRpbmdTaGFk
ZXJzKCkKICAgICBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4+JiBmaWx0ZXJPcGVyYXRp
b25zID0gbV9zdGF0ZS5zdHlsZSgpLT5tdXRhYmxlRmlsdGVyKCkub3BlcmF0aW9ucygpOwogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmaWx0ZXJPcGVyYXRpb25zLnNpemUoKTsgKytpKSB7
CiAgICAgICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGZpbHRlck9wZXJhdGlvbiA9IGZpbHRl
ck9wZXJhdGlvbnMuYXQoaSk7Ci0gICAgICAgIGlmIChmaWx0ZXJPcGVyYXRpb24tPmdldE9wZXJh
dGlvblR5cGUoKSA9PSBGaWx0ZXJPcGVyYXRpb246OkNVU1RPTSkgeworICAgICAgICBpZiAoZmls
dGVyT3BlcmF0aW9uLT50eXBlKCkgPT0gRmlsdGVyT3BlcmF0aW9uOjpDVVNUT00pIHsKICAgICAg
ICAgICAgIEN1c3RvbUZpbHRlck9wZXJhdGlvbiogY3VzdG9tRmlsdGVyID0gc3RhdGljX2Nhc3Q8
Q3VzdG9tRmlsdGVyT3BlcmF0aW9uKj4oZmlsdGVyT3BlcmF0aW9uLmdldCgpKTsKICAgICAgICAg
ICAgIEFTU0VSVChjdXN0b21GaWx0ZXItPnByb2dyYW0oKSk7CiAgICAgICAgICAgICBTdHlsZUN1
c3RvbUZpbHRlclByb2dyYW0qIHByb2dyYW0gPSBzdGF0aWNfY2FzdDxTdHlsZUN1c3RvbUZpbHRl
clByb2dyYW0qPihjdXN0b21GaWx0ZXItPnByb2dyYW0oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKaW5kZXggZWQz
NWVjMy4uN2FkMDVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
Q1NTUHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApAQCAtMTMxLDcgKzEzMSw3IEBAIHN0YXRpYyBp
bmxpbmUgUGFzc1JlZlB0cjxDbGlwUGF0aE9wZXJhdGlvbj4gYmxlbmRGdW5jKGNvbnN0IEFuaW1h
dGlvbkJhc2UqLCBDbGlwCiAgICAgICAgIHJldHVybiB0bzsKIAogICAgIC8vIE90aGVyIGNsaXAt
cGF0aCBvcGVyYXRpb25zIHRoYW4gQmFzaWNTaGFwZXMgY2FuIG5vdCBiZSBhbmltYXRlZC4KLSAg
ICBpZiAoZnJvbS0+Z2V0T3BlcmF0aW9uVHlwZSgpICE9IENsaXBQYXRoT3BlcmF0aW9uOjpTSEFQ
RSB8fCB0by0+Z2V0T3BlcmF0aW9uVHlwZSgpICE9IENsaXBQYXRoT3BlcmF0aW9uOjpTSEFQRSkK
KyAgICBpZiAoZnJvbS0+dHlwZSgpICE9IENsaXBQYXRoT3BlcmF0aW9uOjpTSEFQRSB8fCB0by0+
dHlwZSgpICE9IENsaXBQYXRoT3BlcmF0aW9uOjpTSEFQRSkKICAgICAgICAgcmV0dXJuIHRvOwog
CiAgICAgY29uc3QgQmFzaWNTaGFwZSogZnJvbVNoYXBlID0gc3RhdGljX2Nhc3Q8U2hhcGVDbGlw
UGF0aE9wZXJhdGlvbio+KGZyb20pLT5iYXNpY1NoYXBlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDkzZDljNDMuLjJi
YWI3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuY3BwCkBAIC01MTIsNyArNTEyLDcgQEAgaW50IEdyYXBoaWNzTGF5ZXI6OnZhbGlk
YXRlVHJhbnNmb3JtT3BlcmF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdWVMaXMK
ICAgICBkb3VibGUgbWF4Um90QW5nbGUgPSAtMS4wOwogICAgICAgICAKICAgICBmb3IgKHNpemVf
dCBqID0gMDsgaiA8IGZpcnN0VmFsLm9wZXJhdGlvbnMoKS5zaXplKCk7ICsraikgewotICAgICAg
ICBUcmFuc2Zvcm1PcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgdHlwZSA9IGZpcnN0VmFsLm9wZXJh
dGlvbnMoKS5hdChqKS0+Z2V0T3BlcmF0aW9uVHlwZSgpOworICAgICAgICBUcmFuc2Zvcm1PcGVy
YXRpb246Ok9wZXJhdGlvblR5cGUgdHlwZSA9IGZpcnN0VmFsLm9wZXJhdGlvbnMoKS5hdChqKS0+
dHlwZSgpOwogICAgICAgICAKICAgICAgICAgLy8gaWYgdGhpcyBpcyBhIHJvdGF0aW9uIGVudHJ5
LCB3ZSBuZWVkIHRvIHNlZSBpZiBhbnkgYW5nbGUgZGlmZmVyZW5jZXMgYXJlID49IDE4MCBkZWcK
ICAgICAgICAgaWYgKHR5cGUgPT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpST1RBVEVfWCB8fApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXll
ckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5
ZXJDQS5jcHAKaW5kZXggMTRmNTM4Yi4uYWM3YWUyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0yMjQ3
LDcgKzIyNDcsNyBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6Y3JlYXRlQW5pbWF0aW9uRnJvbUtl
eWZyYW1lcyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsdQogCiBib29sIEdyYXBoaWNzTGF5
ZXJDQTo6YXBwZW5kVG9VbmNvbW1pdHRlZEFuaW1hdGlvbnMoY29uc3QgS2V5ZnJhbWVWYWx1ZUxp
c3QmIHZhbHVlTGlzdCwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyogb3BlcmF0aW9ucywgY29u
c3QgQW5pbWF0aW9uKiBhbmltYXRpb24sIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgY29u
c3QgSW50U2l6ZSYgYm94U2l6ZSwgaW50IGFuaW1hdGlvbkluZGV4LCBkb3VibGUgdGltZU9mZnNl
dCwgYm9vbCBpc01hdHJpeEFuaW1hdGlvbikKIHsKLSAgICBUcmFuc2Zvcm1PcGVyYXRpb246Ok9w
ZXJhdGlvblR5cGUgdHJhbnNmb3JtT3AgPSBpc01hdHJpeEFuaW1hdGlvbiA/IFRyYW5zZm9ybU9w
ZXJhdGlvbjo6TUFUUklYXzNEIDogb3BlcmF0aW9ucy0+b3BlcmF0aW9ucygpLmF0KGFuaW1hdGlv
bkluZGV4KS0+Z2V0T3BlcmF0aW9uVHlwZSgpOworICAgIFRyYW5zZm9ybU9wZXJhdGlvbjo6T3Bl
cmF0aW9uVHlwZSB0cmFuc2Zvcm1PcCA9IGlzTWF0cml4QW5pbWF0aW9uID8gVHJhbnNmb3JtT3Bl
cmF0aW9uOjpNQVRSSVhfM0QgOiBvcGVyYXRpb25zLT5vcGVyYXRpb25zKCkuYXQoYW5pbWF0aW9u
SW5kZXgpLT50eXBlKCk7CiAgICAgYm9vbCBhZGRpdGl2ZSA9IGFuaW1hdGlvbkluZGV4ID4gMDsK
ICAgICBib29sIGlzS2V5ZnJhbWUgPSB2YWx1ZUxpc3Quc2l6ZSgpID4gMjsKIApAQCAtMjM1OSw3
ICsyMzU5LDcgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmFwcGVuZFRvVW5jb21taXR0ZWRBbmlt
YXRpb25zKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWwKIHsKICAgICBib29sIGlzS2V5ZnJh
bWUgPSB2YWx1ZUxpc3Quc2l6ZSgpID4gMjsKICAgICAKLSAgICBGaWx0ZXJPcGVyYXRpb246Ok9w
ZXJhdGlvblR5cGUgZmlsdGVyT3AgPSBvcGVyYXRpb24tPmdldE9wZXJhdGlvblR5cGUoKTsKKyAg
ICBGaWx0ZXJPcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgZmlsdGVyT3AgPSBvcGVyYXRpb24tPnR5
cGUoKTsKICAgICBpbnQgbnVtQW5pbWF0ZWRQcm9wZXJ0aWVzID0gUGxhdGZvcm1DQUZpbHRlcnM6
Om51bUFuaW1hdGVkRmlsdGVyUHJvcGVydGllcyhmaWx0ZXJPcCk7CiAgICAgCiAgICAgLy8gRWFj
aCBmaWx0ZXIgbWlnaHQgbmVlZCB0byBhbmltYXRlIG11bHRpcGxlIHByb3BlcnRpZXMsIGVhY2gg
d2l0aCB0aGVpciBvd24ga2V5UGF0aC4gVGhlIGtleVBhdGggaXMgYWx3YXlzIG9mIHRoZSBmb3Jt
OgpAQCAtMjQwNyw3ICsyNDA3LDcgQEAgYm9vbCBHcmFwaGljc0xheWVyQ0E6OmNyZWF0ZUZpbHRl
ckFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXMKIAogICAgIC8v
IEZJWE1FOiBXZSBjYW4ndCBjdXJyZW50bHkgaGFyZHdhcmUgYW5pbWF0ZSBzaGFkb3dzLgogICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgbnVtQW5pbWF0aW9uczsgKytpKSB7Ci0gICAgICAgIGlmIChv
cGVyYXRpb25zLmF0KGkpLT5nZXRPcGVyYXRpb25UeXBlKCkgPT0gRmlsdGVyT3BlcmF0aW9uOjpE
Uk9QX1NIQURPVykKKyAgICAgICAgaWYgKG9wZXJhdGlvbnMuYXQoaSktPnR5cGUoKSA9PSBGaWx0
ZXJPcGVyYXRpb246OkRST1BfU0hBRE9XKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIApAQCAtMjY5OCwxMiArMjY5OCwxMiBAQCBib29sIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Rmls
dGVyQW5pbWF0aW9uRW5kcG9pbnRzKGNvbnN0IEtleWZyYW1lVmFsdWVMaXN0JiB2YWx1ZQogICAg
IEFTU0VSVChmcm9tT3BlcmF0aW9uIHx8IHRvT3BlcmF0aW9uKTsKIAogICAgIGlmICghZnJvbU9w
ZXJhdGlvbikgewotICAgICAgICBkZWZhdWx0RnJvbU9wZXJhdGlvbiA9IERlZmF1bHRGaWx0ZXJP
cGVyYXRpb246OmNyZWF0ZSh0b09wZXJhdGlvbi0+Z2V0T3BlcmF0aW9uVHlwZSgpKTsKKyAgICAg
ICAgZGVmYXVsdEZyb21PcGVyYXRpb24gPSBEZWZhdWx0RmlsdGVyT3BlcmF0aW9uOjpjcmVhdGUo
dG9PcGVyYXRpb24tPnR5cGUoKSk7CiAgICAgICAgIGZyb21PcGVyYXRpb24gPSBkZWZhdWx0RnJv
bU9wZXJhdGlvbi5nZXQoKTsKICAgICB9CiAKICAgICBpZiAoIXRvT3BlcmF0aW9uKSB7Ci0gICAg
ICAgIGRlZmF1bHRUb09wZXJhdGlvbiA9IERlZmF1bHRGaWx0ZXJPcGVyYXRpb246OmNyZWF0ZShm
cm9tT3BlcmF0aW9uLT5nZXRPcGVyYXRpb25UeXBlKCkpOworICAgICAgICBkZWZhdWx0VG9PcGVy
YXRpb24gPSBEZWZhdWx0RmlsdGVyT3BlcmF0aW9uOjpjcmVhdGUoZnJvbU9wZXJhdGlvbi0+dHlw
ZSgpKTsKICAgICAgICAgdG9PcGVyYXRpb24gPSBkZWZhdWx0VG9PcGVyYXRpb24uZ2V0KCk7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9t
YWMvUGxhdGZvcm1DQUZpbHRlcnNNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9tYWMvUGxhdGZvcm1DQUZpbHRlcnNNYWMubW0KaW5kZXggYTkxNzJkMi4uZDhkNzc1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1Bs
YXRmb3JtQ0FGaWx0ZXJzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL21hYy9QbGF0Zm9ybUNBRmlsdGVyc01hYy5tbQpAQCAtMTA1LDcgKzEwNSw3IEBAIHZv
aWQgUGxhdGZvcm1DQUZpbHRlcnM6OnNldEZpbHRlcnNPbkxheWVyKFBsYXRmb3JtTGF5ZXIqIGxh
eWVyLCBjb25zdCBGaWx0ZXJPcGVyCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGZpbHRl
cnMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgU3RyaW5nIGZpbHRlck5hbWUgPSBTdHJpbmc6OmZv
cm1hdCgiZmlsdGVyXyVkIiwgaSk7CiAgICAgICAgIGNvbnN0IEZpbHRlck9wZXJhdGlvbiogZmls
dGVyT3BlcmF0aW9uID0gZmlsdGVycy5hdChpKTsKLSAgICAgICAgc3dpdGNoIChmaWx0ZXJPcGVy
YXRpb24tPmdldE9wZXJhdGlvblR5cGUoKSkgeworICAgICAgICBzd2l0Y2ggKGZpbHRlck9wZXJh
dGlvbi0+dHlwZSgpKSB7CiAgICAgICAgIGNhc2UgRmlsdGVyT3BlcmF0aW9uOjpEUk9QX1NIQURP
VzogewogICAgICAgICAgICAgLy8gRklYTUU6IEZvciBub3cgYXNzdW1lIGRyb3Agc2hhZG93IGlz
IHRoZSBsYXN0IGZpbHRlciwgcHV0IGl0IG9uIHRoZSBsYXllci4KICAgICAgICAgICAgIC8vIDxy
ZGFyOi8vcHJvYmxlbS8xMDk1OTk2OT4gSGFuZGxlIGNhc2Ugd2hlcmUgZHJvcC1zaGFkb3cgaXMg
bm90IHRoZSBsYXN0IGZpbHRlci4KQEAgLTMzNCw3ICszMzQsNyBAQCBSZXRhaW5QdHI8TlNWYWx1
ZT4gUGxhdGZvcm1DQUZpbHRlcnM6OmZpbHRlclZhbHVlRm9yT3BlcmF0aW9uKGNvbnN0IEZpbHRl
ck9wZXJhdAogI2lmIFVTRV9DQV9GSUxURVJTCiAgICAgVU5VU0VEX1BBUkFNKGludGVybmFsRmls
dGVyUHJvcGVydHlJbmRleCk7CiAjZW5kaWYKLSAgICBGaWx0ZXJPcGVyYXRpb246Ok9wZXJhdGlv
blR5cGUgdHlwZSA9IG9wZXJhdGlvbi0+Z2V0T3BlcmF0aW9uVHlwZSgpOworICAgIEZpbHRlck9w
ZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0eXBlID0gb3BlcmF0aW9uLT50eXBlKCk7CiAgICAgUmV0
YWluUHRyPGlkPiB2YWx1ZTsKICAgICAKICAgICBzd2l0Y2ggKHR5cGUpIHsKQEAgLTUxMyw3ICs1
MTMsNyBAQCBSZXRhaW5QdHI8TlNWYWx1ZT4gUGxhdGZvcm1DQUZpbHRlcnM6OmZpbHRlclZhbHVl
Rm9yT3BlcmF0aW9uKGNvbnN0IEZpbHRlck9wZXJhdAogI2lmIFVTRV9DQV9GSUxURVJTCiBSZXRh
aW5QdHI8TlNWYWx1ZT4gUGxhdGZvcm1DQUZpbHRlcnM6OmNvbG9yTWF0cml4VmFsdWVGb3JGaWx0
ZXIoY29uc3QgRmlsdGVyT3BlcmF0aW9uJiBmaWx0ZXJPcGVyYXRpb24pCiB7Ci0gICAgc3dpdGNo
IChmaWx0ZXJPcGVyYXRpb24uZ2V0T3BlcmF0aW9uVHlwZSgpKSB7CisgICAgc3dpdGNoIChmaWx0
ZXJPcGVyYXRpb24udHlwZSgpKSB7CiAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OlNFUElBOiB7
CiAgICAgICAgIGNvbnN0IEJhc2ljQ29sb3JNYXRyaXhGaWx0ZXJPcGVyYXRpb24mIG9wID0gc3Rh
dGljX2Nhc3Q8Y29uc3QgQmFzaWNDb2xvck1hdHJpeEZpbHRlck9wZXJhdGlvbiY+KGZpbHRlck9w
ZXJhdGlvbik7CiAgICAgICAgIGRvdWJsZSB0ID0gb3AuYW1vdW50KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FM
YXllck1hYy5tbQppbmRleCAwNWNkYjEyLi5iNzM0NzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJN
YWMubW0KQEAgLTY1MSw3ICs2NTEsNyBAQCBib29sIFBsYXRmb3JtQ0FMYXllck1hYzo6ZmlsdGVy
c0NhbkJlQ29tcG9zaXRlZChjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQogICAgIAog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBmaWx0ZXJzLnNpemUoKTsgKytpKSB7CiAgICAg
ICAgIGNvbnN0IEZpbHRlck9wZXJhdGlvbiogZmlsdGVyT3BlcmF0aW9uID0gZmlsdGVycy5hdChp
KTsKLSAgICAgICAgc3dpdGNoIChmaWx0ZXJPcGVyYXRpb24tPmdldE9wZXJhdGlvblR5cGUoKSkg
eworICAgICAgICBzd2l0Y2ggKGZpbHRlck9wZXJhdGlvbi0+dHlwZSgpKSB7CiAgICAgICAgICAg
ICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6UkVGRVJFTkNFOgogI2lmIEVOQUJMRShDU1NfU0hBREVS
UykKICAgICAgICAgICAgIGNhc2UgRmlsdGVyT3BlcmF0aW9uOjpDVVNUT006CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVy
YXRpb24uaAppbmRleCAxMTI2NWQwLi40N2FkZmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9uLmgKQEAg
LTk3LDggKzk3LDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gMDsgCiAgICAgfQogCi0gICAg
dmlydHVhbCBPcGVyYXRpb25UeXBlIGdldE9wZXJhdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBt
X3R5cGU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lVHlwZShjb25zdCBGaWx0ZXJPcGVyYXRp
b24mIG8pIGNvbnN0IHsgcmV0dXJuIG8uZ2V0T3BlcmF0aW9uVHlwZSgpID09IG1fdHlwZTsgfQor
ICAgIHZpcnR1YWwgT3BlcmF0aW9uVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9
CisgICAgdmlydHVhbCBib29sIGlzU2FtZVR5cGUoY29uc3QgRmlsdGVyT3BlcmF0aW9uJiBvKSBj
b25zdCB7IHJldHVybiBvLnR5cGUoKSA9PSBtX3R5cGU7IH0KICAgICAKICAgICB2aXJ0dWFsIGJv
b2wgaXNEZWZhdWx0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb25zLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0
aW9ucy5jcHAKaW5kZXggZGI2NTk0My4uYTI4NTM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb25zLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlck9wZXJhdGlvbnMu
Y3BwCkBAIC05MSw3ICs5MSw3IEBAIGJvb2wgRmlsdGVyT3BlcmF0aW9uczo6b3BlcmF0aW9uc01h
dGNoKGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIG90aGVyKSBjb25zdAogYm9vbCBGaWx0ZXJPcGVy
YXRpb25zOjpoYXNDdXN0b21GaWx0ZXIoKSBjb25zdAogewogICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9vcGVyYXRpb25zLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIEZpbHRlck9wZXJhdGlv
bjo6T3BlcmF0aW9uVHlwZSB0eXBlID0gbV9vcGVyYXRpb25zLmF0KGkpLT5nZXRPcGVyYXRpb25U
eXBlKCk7CisgICAgICAgIEZpbHRlck9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSB0eXBlID0gbV9v
cGVyYXRpb25zLmF0KGkpLT50eXBlKCk7CiAgICAgICAgIGlmICh0eXBlID09IEZpbHRlck9wZXJh
dGlvbjo6Q1VTVE9NIHx8IHR5cGUgPT0gRmlsdGVyT3BlcmF0aW9uOjpWQUxJREFURURfQ1VTVE9N
KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtMTAyLDcgKzEwMiw3IEBAIGJv
b2wgRmlsdGVyT3BlcmF0aW9uczo6aGFzQ3VzdG9tRmlsdGVyKCkgY29uc3QKIGJvb2wgRmlsdGVy
T3BlcmF0aW9uczo6aGFzUmVmZXJlbmNlRmlsdGVyKCkgY29uc3QKIHsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG1fb3BlcmF0aW9ucy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAobV9v
cGVyYXRpb25zLmF0KGkpLT5nZXRPcGVyYXRpb25UeXBlKCkgPT0gRmlsdGVyT3BlcmF0aW9uOjpS
RUZFUkVOQ0UpCisgICAgICAgIGlmIChtX29wZXJhdGlvbnMuYXQoaSktPnR5cGUoKSA9PSBGaWx0
ZXJPcGVyYXRpb246OlJFRkVSRU5DRSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMTEsNyArMTExLDcgQEAgYm9vbCBGaWx0ZXJPcGVyYXRp
b25zOjpoYXNSZWZlcmVuY2VGaWx0ZXIoKSBjb25zdAogYm9vbCBGaWx0ZXJPcGVyYXRpb25zOjpo
YXNPdXRzZXRzKCkgY29uc3QKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fb3BlcmF0
aW9ucy5zaXplKCk7ICsraSkgewotICAgICAgICBGaWx0ZXJPcGVyYXRpb246Ok9wZXJhdGlvblR5
cGUgb3BlcmF0aW9uVHlwZSA9IG1fb3BlcmF0aW9ucy5hdChpKS5nZXQoKS0+Z2V0T3BlcmF0aW9u
VHlwZSgpOworICAgICAgICBGaWx0ZXJPcGVyYXRpb246Ok9wZXJhdGlvblR5cGUgb3BlcmF0aW9u
VHlwZSA9IG1fb3BlcmF0aW9ucy5hdChpKS5nZXQoKS0+dHlwZSgpOwogICAgICAgICBpZiAob3Bl
cmF0aW9uVHlwZSA9PSBGaWx0ZXJPcGVyYXRpb246OkJMVVIgfHwgb3BlcmF0aW9uVHlwZSA9PSBG
aWx0ZXJPcGVyYXRpb246OkRST1BfU0hBRE9XKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQpAQCAtMTIzLDcgKzEyMyw3IEBAIEZpbHRlck91dHNldHMgRmlsdGVyT3BlcmF0aW9uczo6
b3V0c2V0cygpIGNvbnN0CiAgICAgRmlsdGVyT3V0c2V0cyB0b3RhbE91dHNldHM7CiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBtX29wZXJhdGlvbnMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAg
RmlsdGVyT3BlcmF0aW9uKiBmaWx0ZXJPcGVyYXRpb24gPSBtX29wZXJhdGlvbnMuYXQoaSkuZ2V0
KCk7Ci0gICAgICAgIHN3aXRjaCAoZmlsdGVyT3BlcmF0aW9uLT5nZXRPcGVyYXRpb25UeXBlKCkp
IHsKKyAgICAgICAgc3dpdGNoIChmaWx0ZXJPcGVyYXRpb24tPnR5cGUoKSkgewogICAgICAgICBj
YXNlIEZpbHRlck9wZXJhdGlvbjo6QkxVUjogewogICAgICAgICAgICAgQmx1ckZpbHRlck9wZXJh
dGlvbiogYmx1ck9wZXJhdGlvbiA9IHN0YXRpY19jYXN0PEJsdXJGaWx0ZXJPcGVyYXRpb24qPihm
aWx0ZXJPcGVyYXRpb24pOwogICAgICAgICAgICAgZmxvYXQgc3RkRGV2aWF0aW9uID0gZmxvYXRW
YWx1ZUZvckxlbmd0aChibHVyT3BlcmF0aW9uLT5zdGREZXZpYXRpb24oKSwgMCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0lkZW50aXR5
VHJhbnNmb3JtT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL0lkZW50aXR5VHJhbnNmb3JtT3BlcmF0aW9uLmgKaW5kZXggZTNlY2NjMS4uYzFm
N2Y0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9JZGVudGl0eVRyYW5zZm9ybU9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvSWRlbnRpdHlUcmFuc2Zvcm1PcGVyYXRpb24uaApA
QCAtMzgsOCArMzgsOCBAQCBwdWJsaWM6CiAgICAgICAgIAogcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGJvb2wgaXNJZGVudGl0eSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIE9w
ZXJhdGlvblR5cGUgZ2V0T3BlcmF0aW9uVHlwZSgpIGNvbnN0IHsgcmV0dXJuIElERU5USVRZOyB9
Ci0gICAgdmlydHVhbCBib29sIGlzU2FtZVR5cGUoY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBv
KSBjb25zdCB7IHJldHVybiBvLmdldE9wZXJhdGlvblR5cGUoKSA9PSBJREVOVElUWTsgfQorICAg
IHZpcnR1YWwgT3BlcmF0aW9uVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gSURFTlRJVFk7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lVHlwZShjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24mIG8p
IGNvbnN0IHsgcmV0dXJuIG8udHlwZSgpID09IElERU5USVRZOyB9CiAKICAgICB2aXJ0dWFsIGJv
b2wgb3BlcmF0b3I9PShjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24mIG8pIGNvbnN0CiAgICAgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9N
YXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oCmluZGV4IGIwNTc3
YTYuLjg4OWMyYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0
aW9uLmgKQEAgLTQyLDggKzQyLDggQEAgcHVibGljOgogcHJpdmF0ZTogICAgCiAgICAgdmlydHVh
bCBib29sIGlzSWRlbnRpdHkoKSBjb25zdCB7IHJldHVybiBtX21hdHJpeC5pc0lkZW50aXR5KCk7
IH0KIAotICAgIHZpcnR1YWwgT3BlcmF0aW9uVHlwZSBnZXRPcGVyYXRpb25UeXBlKCkgY29uc3Qg
eyByZXR1cm4gTUFUUklYXzNEOyB9Ci0gICAgdmlydHVhbCBib29sIGlzU2FtZVR5cGUoY29uc3Qg
VHJhbnNmb3JtT3BlcmF0aW9uJiBvKSBjb25zdCB7IHJldHVybiBvLmdldE9wZXJhdGlvblR5cGUo
KSA9PSBNQVRSSVhfM0Q7IH0KKyAgICB2aXJ0dWFsIE9wZXJhdGlvblR5cGUgdHlwZSgpIGNvbnN0
IHsgcmV0dXJuIE1BVFJJWF8zRDsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1NhbWVUeXBlKGNvbnN0
IFRyYW5zZm9ybU9wZXJhdGlvbiYgbykgY29uc3QgeyByZXR1cm4gby50eXBlKCkgPT0gTUFUUklY
XzNEOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBUcmFuc2Zvcm1PcGVy
YXRpb24mIG8pIGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4VHJhbnNmb3JtT3Bl
cmF0aW9uLmgKaW5kZXggNDVmOWVhNy4uNzZjNWRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9NYXRyaXhUcmFuc2Zvcm1PcGVyYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL01hdHJp
eFRyYW5zZm9ybU9wZXJhdGlvbi5oCkBAIC00Nyw4ICs0Nyw4IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgdmlydHVhbCBib29sIGlzSWRlbnRpdHkoKSBjb25zdCB7IHJldHVybiBtX2EgPT0gMSAm
JiBtX2IgPT0gMCAmJiBtX2MgPT0gMCAmJiBtX2QgPT0gMSAmJiBtX2UgPT0gMCAmJiBtX2YgPT0g
MDsgfQogCi0gICAgdmlydHVhbCBPcGVyYXRpb25UeXBlIGdldE9wZXJhdGlvblR5cGUoKSBjb25z
dCB7IHJldHVybiBNQVRSSVg7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lVHlwZShjb25zdCBU
cmFuc2Zvcm1PcGVyYXRpb24mIG8pIGNvbnN0IHsgcmV0dXJuIG8uZ2V0T3BlcmF0aW9uVHlwZSgp
ID09IE1BVFJJWDsgfQorICAgIHZpcnR1YWwgT3BlcmF0aW9uVHlwZSB0eXBlKCkgY29uc3QgeyBy
ZXR1cm4gTUFUUklYOyB9CisgICAgdmlydHVhbCBib29sIGlzU2FtZVR5cGUoY29uc3QgVHJhbnNm
b3JtT3BlcmF0aW9uJiBvKSBjb25zdCB7IHJldHVybiBvLnR5cGUoKSA9PSBNQVRSSVg7IH0KIAog
ICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiYgbykg
Y29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL1BlcnNwZWN0aXZlVHJhbnNmb3JtT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1BlcnNwZWN0aXZlVHJhbnNmb3JtT3Bl
cmF0aW9uLmgKaW5kZXggMzczMGQ0Mi4uNzNhYTY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9QZXJzcGVjdGl2ZVRyYW5zZm9ybU9wZXJh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMv
UGVyc3BlY3RpdmVUcmFuc2Zvcm1PcGVyYXRpb24uaApAQCAtNDMsOCArNDMsOCBAQCBwdWJsaWM6
CiAgICAgCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0lkZW50aXR5KCkgY29uc3QgeyBy
ZXR1cm4gIWZsb2F0VmFsdWVGb3JMZW5ndGgobV9wLCAxKTsgfQotICAgIHZpcnR1YWwgT3BlcmF0
aW9uVHlwZSBnZXRPcGVyYXRpb25UeXBlKCkgY29uc3QgeyByZXR1cm4gUEVSU1BFQ1RJVkU7IH0K
LSAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lVHlwZShjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24mIG8p
IGNvbnN0IHsgcmV0dXJuIG8uZ2V0T3BlcmF0aW9uVHlwZSgpID09IFBFUlNQRUNUSVZFOyB9Cisg
ICAgdmlydHVhbCBPcGVyYXRpb25UeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBQRVJTUEVDVElW
RTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1NhbWVUeXBlKGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlv
biYgbykgY29uc3QgeyByZXR1cm4gby50eXBlKCkgPT0gUEVSU1BFQ1RJVkU7IH0KIAogICAgIHZp
cnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiYgbykgY29uc3QK
ICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9Sb3RhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaAppbmRleCAw
ZDQ5NWM1Li5mNDdhNTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL1JvdGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvUm90YXRlVHJhbnNmb3JtT3BlcmF0
aW9uLmgKQEAgLTQ5LDggKzQ5LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJv
b2wgaXNJZGVudGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5nbGUgPT0gMDsgfQogCi0gICAgdmly
dHVhbCBPcGVyYXRpb25UeXBlIGdldE9wZXJhdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5
cGU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lVHlwZShjb25zdCBUcmFuc2Zvcm1PcGVyYXRp
b24mIG8pIGNvbnN0IHsgcmV0dXJuIG8uZ2V0T3BlcmF0aW9uVHlwZSgpID09IG1fdHlwZTsgfQor
ICAgIHZpcnR1YWwgT3BlcmF0aW9uVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9
CisgICAgdmlydHVhbCBib29sIGlzU2FtZVR5cGUoY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBv
KSBjb25zdCB7IHJldHVybiBvLnR5cGUoKSA9PSBtX3R5cGU7IH0KIAogICAgIHZpcnR1YWwgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiYgbykgY29uc3QKICAgICB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1Nj
YWxlVHJhbnNmb3JtT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL1NjYWxlVHJhbnNmb3JtT3BlcmF0aW9uLmgKaW5kZXggNzM0M2QwOS4uNjJi
ZWIyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9TY2FsZVRyYW5zZm9ybU9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2NhbGVUcmFuc2Zvcm1PcGVyYXRpb24uaApAQCAtNDgs
OCArNDgsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0lkZW50aXR5
KCkgY29uc3QgeyByZXR1cm4gbV94ID09IDEgJiYgIG1feSA9PSAxICYmICBtX3ogPT0gMTsgfQog
Ci0gICAgdmlydHVhbCBPcGVyYXRpb25UeXBlIGdldE9wZXJhdGlvblR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTYW1lVHlwZShjb25zdCBUcmFuc2Zv
cm1PcGVyYXRpb24mIG8pIGNvbnN0IHsgcmV0dXJuIG8uZ2V0T3BlcmF0aW9uVHlwZSgpID09IG1f
dHlwZTsgfQorICAgIHZpcnR1YWwgT3BlcmF0aW9uVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4g
bV90eXBlOyB9CisgICAgdmlydHVhbCBib29sIGlzU2FtZVR5cGUoY29uc3QgVHJhbnNmb3JtT3Bl
cmF0aW9uJiBvKSBjb25zdCB7IHJldHVybiBvLnR5cGUoKSA9PSBtX3R5cGU7IH0KIAogICAgIHZp
cnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbiYgbykgY29uc3QK
ICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL1NrZXdUcmFuc2Zvcm1PcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oCmluZGV4IGRkZGU5
ODYuLmU5ZjBjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5oCkBA
IC00MSw4ICs0MSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNJ
ZGVudGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5nbGVYID09IDAgJiYgbV9hbmdsZVkgPT0gMDsg
fQotICAgIHZpcnR1YWwgT3BlcmF0aW9uVHlwZSBnZXRPcGVyYXRpb25UeXBlKCkgY29uc3QgeyBy
ZXR1cm4gbV90eXBlOyB9Ci0gICAgdmlydHVhbCBib29sIGlzU2FtZVR5cGUoY29uc3QgVHJhbnNm
b3JtT3BlcmF0aW9uJiBvKSBjb25zdCB7IHJldHVybiBvLmdldE9wZXJhdGlvblR5cGUoKSA9PSBt
X3R5cGU7IH0KKyAgICB2aXJ0dWFsIE9wZXJhdGlvblR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1NhbWVUeXBlKGNvbnN0IFRyYW5zZm9ybU9w
ZXJhdGlvbiYgbykgY29uc3QgeyByZXR1cm4gby50eXBlKCkgPT0gbV90eXBlOyB9CiAKICAgICB2
aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24mIG8pIGNvbnN0
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9uLmgKaW5kZXggMWU3ZWJiMC4uZjlm
OTc1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNm
b3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbi5oCkBAIC02MywxMiArNjMsMTIg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRyYW5zZm9ybU9wZXJhdGlvbj4g
YmxlbmQoY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uKiBmcm9tLCBkb3VibGUgcHJvZ3Jlc3MsIGJv
b2wgYmxlbmRUb0lkZW50aXR5ID0gZmFsc2UpID0gMDsKIAotICAgIHZpcnR1YWwgT3BlcmF0aW9u
VHlwZSBnZXRPcGVyYXRpb25UeXBlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgT3BlcmF0aW9u
VHlwZSB0eXBlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc1NhbWVUeXBlKGNvbnN0
IFRyYW5zZm9ybU9wZXJhdGlvbiYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgCiAgICAg
Ym9vbCBpczNET3BlcmF0aW9uKCkgY29uc3QKICAgICB7Ci0gICAgICAgIE9wZXJhdGlvblR5cGUg
b3BUeXBlID0gZ2V0T3BlcmF0aW9uVHlwZSgpOworICAgICAgICBPcGVyYXRpb25UeXBlIG9wVHlw
ZSA9IHR5cGUoKTsKICAgICAgICAgcmV0dXJuIG9wVHlwZSA9PSBTQ0FMRV9aIHx8CiAgICAgICAg
ICAgICAgICBvcFR5cGUgPT0gU0NBTEVfM0QgfHwKICAgICAgICAgICAgICAgIG9wVHlwZSA9PSBU
UkFOU0xBVEVfWiB8fApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0
aW9uLmgKaW5kZXggZmMyYmMxZi4uNjNjZjU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5z
bGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oCkBAIC01NCw4ICs1NCw4IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgdmlydHVhbCBib29sIGlzSWRlbnRpdHkoKSBjb25zdCB7IHJldHVybiAhZmxvYXRW
YWx1ZUZvckxlbmd0aChtX3gsIDEpICYmICFmbG9hdFZhbHVlRm9yTGVuZ3RoKG1feSwgMSkgJiYg
IWZsb2F0VmFsdWVGb3JMZW5ndGgobV96LCAxKTsgfQogCi0gICAgdmlydHVhbCBPcGVyYXRpb25U
eXBlIGdldE9wZXJhdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KLSAgICB2aXJ0
dWFsIGJvb2wgaXNTYW1lVHlwZShjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb24mIG8pIGNvbnN0IHsg
cmV0dXJuIG8uZ2V0T3BlcmF0aW9uVHlwZSgpID09IG1fdHlwZTsgfQorICAgIHZpcnR1YWwgT3Bl
cmF0aW9uVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CisgICAgdmlydHVhbCBi
b29sIGlzU2FtZVR5cGUoY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9uJiBvKSBjb25zdCB7IHJldHVy
biBvLnR5cGUoKSA9PSBtX3R5cGU7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IFRyYW5zZm9ybU9wZXJhdGlvbiYgbykgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5oCmluZGV4IGQwZDQyMTFjLi42YWI4ODUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRpb24uaApAQCAtNTEs
OCArNTEsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgQ2xp
cFBhdGhPcGVyYXRpb24mKSBjb25zdCA9IDA7CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IENs
aXBQYXRoT3BlcmF0aW9uJiBvKSBjb25zdCB7IHJldHVybiAhKCp0aGlzID09IG8pOyB9CiAKLSAg
ICB2aXJ0dWFsIE9wZXJhdGlvblR5cGUgZ2V0T3BlcmF0aW9uVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NhbWVUeXBlKGNvbnN0IENsaXBQYXRoT3Bl
cmF0aW9uJiBvKSBjb25zdCB7IHJldHVybiBvLmdldE9wZXJhdGlvblR5cGUoKSA9PSBtX3R5cGU7
IH0KKyAgICB2aXJ0dWFsIE9wZXJhdGlvblR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlw
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1NhbWVUeXBlKGNvbnN0IENsaXBQYXRoT3BlcmF0aW9u
JiBvKSBjb25zdCB7IHJldHVybiBvLnR5cGUoKSA9PSBtX3R5cGU7IH0KIAogcHJvdGVjdGVkOgog
ICAgIGV4cGxpY2l0IENsaXBQYXRoT3BlcmF0aW9uKE9wZXJhdGlvblR5cGUgdHlwZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwCmluZGV4
IDFkYTdmMDQuLmQ1YTQ3ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9G
aWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zp
bHRlckVmZmVjdFJlbmRlcmVyLmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIGJvb2wgRmlsdGVyRWZm
ZWN0UmVuZGVyZXI6OmJ1aWxkKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBjb25zdCBGaWx0ZXJP
cGVyYXRpb25zCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvcGVyYXRpb25zLm9wZXJhdGlv
bnMoKS5zaXplKCk7ICsraSkgewogICAgICAgICBSZWZQdHI8RmlsdGVyRWZmZWN0PiBlZmZlY3Q7
CiAgICAgICAgIEZpbHRlck9wZXJhdGlvbiogZmlsdGVyT3BlcmF0aW9uID0gb3BlcmF0aW9ucy5v
cGVyYXRpb25zKCkuYXQoaSkuZ2V0KCk7Ci0gICAgICAgIHN3aXRjaCAoZmlsdGVyT3BlcmF0aW9u
LT5nZXRPcGVyYXRpb25UeXBlKCkpIHsKKyAgICAgICAgc3dpdGNoIChmaWx0ZXJPcGVyYXRpb24t
PnR5cGUoKSkgewogICAgICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6UkVGRVJFTkNFOiB7CiAg
ICAgICAgICAgICBSZWZlcmVuY2VGaWx0ZXJPcGVyYXRpb24qIHJlZmVyZW5jZU9wZXJhdGlvbiA9
IHN0YXRpY19jYXN0PFJlZmVyZW5jZUZpbHRlck9wZXJhdGlvbio+KGZpbHRlck9wZXJhdGlvbik7
CiAgICAgICAgICAgICBlZmZlY3QgPSBidWlsZFJlZmVyZW5jZUZpbHRlcihyZW5kZXJlciwgcHJl
dmlvdXNFZmZlY3QsIHJlZmVyZW5jZU9wZXJhdGlvbik7CkBAIC0zNjAsNyArMzYwLDcgQEAgYm9v
bCBGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6YnVpbGQoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNv
bnN0IEZpbHRlck9wZXJhdGlvbnMKICAgICAgICAgICAgIGVmZmVjdC0+c2V0Q2xpcHNUb0JvdW5k
cyhjb25zdW1lciA9PSBGaWx0ZXJGdW5jdGlvbik7CiAgICAgICAgICAgICBlZmZlY3QtPnNldE9w
ZXJhdGluZ0NvbG9yU3BhY2UoQ29sb3JTcGFjZURldmljZVJHQik7CiAgICAgICAgICAgICAKLSAg
ICAgICAgICAgIGlmIChmaWx0ZXJPcGVyYXRpb24tPmdldE9wZXJhdGlvblR5cGUoKSAhPSBGaWx0
ZXJPcGVyYXRpb246OlJFRkVSRU5DRSkgeworICAgICAgICAgICAgaWYgKGZpbHRlck9wZXJhdGlv
bi0+dHlwZSgpICE9IEZpbHRlck9wZXJhdGlvbjo6UkVGRVJFTkNFKSB7CiAgICAgICAgICAgICAg
ICAgZWZmZWN0LT5pbnB1dEVmZmVjdHMoKS5hcHBlbmQocHJldmlvdXNFZmZlY3QpOwogICAgICAg
ICAgICAgICAgIG1fZWZmZWN0cy5hcHBlbmQoZWZmZWN0KTsKICAgICAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IGNmYzFiOGMuLmQxYzJiYTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzcwNSw3ICsz
NzA1LDcgQEAgYm9vbCBSZW5kZXJMYXllcjo6c2V0dXBDbGlwUGF0aChHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpbmdJbmYKICAgICBSZW5kZXJTdHlsZSogc3R5bGUg
PSByZW5kZXJlcigpLnN0eWxlKCk7CiAKICAgICBBU1NFUlQoc3R5bGUtPmNsaXBQYXRoKCkpOwot
ICAgIGlmIChzdHlsZS0+Y2xpcFBhdGgoKS0+Z2V0T3BlcmF0aW9uVHlwZSgpID09IENsaXBQYXRo
T3BlcmF0aW9uOjpTSEFQRSkgeworICAgIGlmIChzdHlsZS0+Y2xpcFBhdGgoKS0+dHlwZSgpID09
IENsaXBQYXRoT3BlcmF0aW9uOjpTSEFQRSkgewogICAgICAgICBTaGFwZUNsaXBQYXRoT3BlcmF0
aW9uKiBjbGlwUGF0aCA9IHN0YXRpY19jYXN0PFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24qPihzdHls
ZS0+Y2xpcFBhdGgoKSk7CiAKICAgICAgICAgaWYgKCFyb290UmVsYXRpdmVCb3VuZHNDb21wdXRl
ZCkgewpAQCAtMzcxOSw3ICszNzE5LDcgQEAgYm9vbCBSZW5kZXJMYXllcjo6c2V0dXBDbGlwUGF0
aChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IExheWVyUGFpbnRpbmdJbmYKICAgICB9
CiAKICNpZiBFTkFCTEUoU1ZHKQotICAgIGlmIChzdHlsZS0+Y2xpcFBhdGgoKS0+Z2V0T3BlcmF0
aW9uVHlwZSgpID09IENsaXBQYXRoT3BlcmF0aW9uOjpSRUZFUkVOQ0UpIHsKKyAgICBpZiAoc3R5
bGUtPmNsaXBQYXRoKCktPnR5cGUoKSA9PSBDbGlwUGF0aE9wZXJhdGlvbjo6UkVGRVJFTkNFKSB7
CiAgICAgICAgIFJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0aW9uKiByZWZlcmVuY2VDbGlwUGF0aE9w
ZXJhdGlvbiA9IHN0YXRpY19jYXN0PFJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0aW9uKj4oc3R5bGUt
PmNsaXBQYXRoKCkpOwogICAgICAgICBFbGVtZW50KiBlbGVtZW50ID0gcmVuZGVyZXIoKS5kb2N1
bWVudCgpLmdldEVsZW1lbnRCeUlkKHJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0aW9uLT5mcmFnbWVu
dCgpKTsKICAgICAgICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC0+aGFzVGFnTmFtZShTVkdOYW1l
czo6Y2xpcFBhdGhUYWcpICYmIGVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKQEAgLTY0MTMsNyArNjQx
Myw3IEBAIEZpbHRlck9wZXJhdGlvbnMgUmVuZGVyTGF5ZXI6OmNvbXB1dGVGaWx0ZXJPcGVyYXRp
b25zKGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSkKICAgICBGaWx0ZXJPcGVyYXRpb25zIG91dHB1
dEZpbHRlcnM7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmaWx0ZXJzLnNpemUoKTsgKytp
KSB7CiAgICAgICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGZpbHRlck9wZXJhdGlvbiA9IGZp
bHRlcnMub3BlcmF0aW9ucygpLmF0KGkpOwotICAgICAgICBpZiAoZmlsdGVyT3BlcmF0aW9uLT5n
ZXRPcGVyYXRpb25UeXBlKCkgPT0gRmlsdGVyT3BlcmF0aW9uOjpDVVNUT00pIHsKKyAgICAgICAg
aWYgKGZpbHRlck9wZXJhdGlvbi0+dHlwZSgpID09IEZpbHRlck9wZXJhdGlvbjo6Q1VTVE9NKSB7
CiAgICAgICAgICAgICAvLyBXZSBoYXZlIHRvIHdhaXQgdW50aWwgdGhlIHByb2dyYW0gb2YgQ1NT
IFNoYWRlcnMgaXMgbG9hZGVkIGJlZm9yZSBzZXR0aW5nIGl0IG9uIHRoZSBsYXllci4KICAgICAg
ICAgICAgIC8vIE5vdGUgdGhhdCB3ZSB3aWxsIGhhbmRsZSB0aGUgbG9hZGluZyBvZiB0aGUgc2hh
ZGVycyBhbmQgcmVwYWludGluZyBvZiB0aGUgbGF5ZXIgaW4gdXBkYXRlT3JSZW1vdmVGaWx0ZXJD
bGllbnRzLgogICAgICAgICAgICAgY29uc3QgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uKiBjdXN0b21P
cGVyYXRpb24gPSBzdGF0aWNfY2FzdDxjb25zdCBDdXN0b21GaWx0ZXJPcGVyYXRpb24qPihmaWx0
ZXJPcGVyYXRpb24uZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyRmlsdGVySW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJGaWx0ZXJJbmZvLmNwcAppbmRleCBjMDc1ZWNmLi45MGExZTUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJGaWx0ZXJJbmZvLmNwcApAQCAt
MTExLDcgKzExMSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OkZpbHRlckluZm86OnVwZGF0ZVJlZmVy
ZW5jZUZpbHRlckNsaWVudHMoY29uc3QgRmlsdGVyT3BlcmF0aW9uCiAgICAgcmVtb3ZlUmVmZXJl
bmNlRmlsdGVyQ2xpZW50cygpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0gb3BlcmF0
aW9ucy5zaXplKCk7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgRmlsdGVyT3BlcmF0aW9uKiBm
aWx0ZXJPcGVyYXRpb24gPSBvcGVyYXRpb25zLm9wZXJhdGlvbnMoKVtpXS5nZXQoKTsKLSAgICAg
ICAgaWYgKGZpbHRlck9wZXJhdGlvbi0+Z2V0T3BlcmF0aW9uVHlwZSgpICE9IEZpbHRlck9wZXJh
dGlvbjo6UkVGRVJFTkNFKQorICAgICAgICBpZiAoZmlsdGVyT3BlcmF0aW9uLT50eXBlKCkgIT0g
RmlsdGVyT3BlcmF0aW9uOjpSRUZFUkVOQ0UpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgUmVmZXJlbmNlRmlsdGVyT3BlcmF0aW9uKiByZWZlcmVuY2VGaWx0ZXJPcGVyYXRpb24gPSBz
dGF0aWNfY2FzdDxSZWZlcmVuY2VGaWx0ZXJPcGVyYXRpb24qPihmaWx0ZXJPcGVyYXRpb24pOwog
ICAgICAgICBDYWNoZWRTVkdEb2N1bWVudFJlZmVyZW5jZSogZG9jdW1lbnRSZWZlcmVuY2UgPSBy
ZWZlcmVuY2VGaWx0ZXJPcGVyYXRpb24tPmNhY2hlZFNWR0RvY3VtZW50UmVmZXJlbmNlKCk7CkBA
IC0xNjYsNyArMTY2LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6RmlsdGVySW5mbzo6dXBkYXRlQ3Vz
dG9tRmlsdGVyQ2xpZW50cyhjb25zdCBGaWx0ZXJPcGVyYXRpb25zJgogICAgIFZlY3RvcjxSZWZQ
dHI8Q3VzdG9tRmlsdGVyUHJvZ3JhbT4+IGNhY2hlZEN1c3RvbUZpbHRlclByb2dyYW1zOwogICAg
IGZvciAoc2l6ZV90IGkgPSAwLCBzaXplID0gb3BlcmF0aW9ucy5zaXplKCk7IGkgPCBzaXplOyAr
K2kpIHsKICAgICAgICAgY29uc3QgRmlsdGVyT3BlcmF0aW9uKiBmaWx0ZXJPcGVyYXRpb24gPSBv
cGVyYXRpb25zLm9wZXJhdGlvbnMoKVtpXS5nZXQoKTsKLSAgICAgICAgaWYgKGZpbHRlck9wZXJh
dGlvbi0+Z2V0T3BlcmF0aW9uVHlwZSgpICE9IEZpbHRlck9wZXJhdGlvbjo6Q1VTVE9NKQorICAg
ICAgICBpZiAoZmlsdGVyT3BlcmF0aW9uLT50eXBlKCkgIT0gRmlsdGVyT3BlcmF0aW9uOjpDVVNU
T00pCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgY29uc3QgQ3VzdG9tRmlsdGVyT3Bl
cmF0aW9uKiBjdXN0b21GaWx0ZXJPcGVyYXRpb24gPSBzdGF0aWNfY2FzdDxjb25zdCBDdXN0b21G
aWx0ZXJPcGVyYXRpb24qPihmaWx0ZXJPcGVyYXRpb24pOwogICAgICAgICBDdXN0b21GaWx0ZXJQ
cm9ncmFtKiBwcm9ncmFtID0gY3VzdG9tRmlsdGVyT3BlcmF0aW9uLT5wcm9ncmFtKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA1NmNi
ZjQwLi4zMTY3NGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAKQEAgLTk5Myw3ICs5OTMsNyBAQCBpbmxpbmUgYm9vbCByZXF1aXJlVHJhbnNm
b3JtT3JpZ2luKGNvbnN0IFZlY3RvcjxSZWZQdHI8VHJhbnNmb3JtT3BlcmF0aW9uPj4mIHRyYQog
CiAgICAgdW5zaWduZWQgc2l6ZSA9IHRyYW5zZm9ybU9wZXJhdGlvbnMuc2l6ZSgpOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgVHJhbnNmb3JtT3Bl
cmF0aW9uOjpPcGVyYXRpb25UeXBlIHR5cGUgPSB0cmFuc2Zvcm1PcGVyYXRpb25zW2ldLT5nZXRP
cGVyYXRpb25UeXBlKCk7CisgICAgICAgIFRyYW5zZm9ybU9wZXJhdGlvbjo6T3BlcmF0aW9uVHlw
ZSB0eXBlID0gdHJhbnNmb3JtT3BlcmF0aW9uc1tpXS0+dHlwZSgpOwogICAgICAgICBpZiAodHlw
ZSAhPSBUcmFuc2Zvcm1PcGVyYXRpb246OlRSQU5TTEFURV9YCiAgICAgICAgICAgICAmJiB0eXBl
ICE9IFRyYW5zZm9ybU9wZXJhdGlvbjo6VFJBTlNMQVRFX1kKICAgICAgICAgICAgICYmIHR5cGUg
IT0gVHJhbnNmb3JtT3BlcmF0aW9uOjpUUkFOU0xBVEUgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCA5NmFkZjQ3Li5i
ZTViNzZlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5k
ZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jl
bmRlcmluZ0NvbnRleHQuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAgdm9pZCBTVkdSZW5kZXJpbmdD
b250ZXh0OjpwcmVwYXJlVG9SZW5kZXJTVkdDb250ZW50KFJlbmRlck9iamVjdCogb2JqZWN0LCBQ
YWludEkKICAgICB9CiAKICAgICBDbGlwUGF0aE9wZXJhdGlvbiogY2xpcFBhdGhPcGVyYXRpb24g
PSBzdHlsZS0+Y2xpcFBhdGgoKTsKLSAgICBpZiAoY2xpcFBhdGhPcGVyYXRpb24gJiYgY2xpcFBh
dGhPcGVyYXRpb24tPmdldE9wZXJhdGlvblR5cGUoKSA9PSBDbGlwUGF0aE9wZXJhdGlvbjo6U0hB
UEUpIHsKKyAgICBpZiAoY2xpcFBhdGhPcGVyYXRpb24gJiYgY2xpcFBhdGhPcGVyYXRpb24tPnR5
cGUoKSA9PSBDbGlwUGF0aE9wZXJhdGlvbjo6U0hBUEUpIHsKICAgICAgICAgU2hhcGVDbGlwUGF0
aE9wZXJhdGlvbiogY2xpcFBhdGggPSBzdGF0aWNfY2FzdDxTaGFwZUNsaXBQYXRoT3BlcmF0aW9u
Kj4oY2xpcFBhdGhPcGVyYXRpb24pOwogICAgICAgICBtX3BhaW50SW5mby0+Y29udGV4dC0+Y2xp
cFBhdGgoY2xpcFBhdGgtPnBhdGgob2JqZWN0LT5vYmplY3RCb3VuZGluZ0JveCgpKSwgY2xpcFBh
dGgtPndpbmRSdWxlKCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwNmMyZTI2Li4xYzg5Y2ZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDUgKzEsMTggQEAKIDIwMTMtMTAtMjIgIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKKyAgICAgICAge0NsaXBQYXRoT3BlcmF0aW9uLCBGaWx0
ZXJPcGVyYXRpb259OjpnZXRPcGVyYXRpb25UeXBlKCkgc2hvdWxkIG5vdCBpbmNsdWRlICdnZXQn
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMxNzIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoQ29yZUlQQzo6ZW5jb2RlRmls
dGVyT3BlcmF0aW9uKToKKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUZXh0U3RyZWFtOjpv
cGVyYXRvcjw8KToKKyAgICAgICAgQWRvcHQgdGhlIG5ldyBuYW1lLgorCisyMDEzLTEwLTIyICBU
aW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCiAgICAgICAgIFJlbW90ZSBM
YXllciBUcmVlOiBTdXBwb3J0IGhhcmR3YXJlIGFjY2VsZXJhdGVkIGZpbHRlcnMKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzEzOQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGQ5OTYw
YjkuLjgxZWVlZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwCkBAIC0xMTgyLDkgKzExODIsOSBAQCBib29sIEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6VXNlclNjcmlwdD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYkNv
cgogCiBzdGF0aWMgdm9pZCBlbmNvZGVGaWx0ZXJPcGVyYXRpb24oQXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBGaWx0ZXJPcGVyYXRpb24mIGZpbHRlcikKIHsKLSAgICBlbmNvZGVyLmVu
Y29kZUVudW0oZmlsdGVyLmdldE9wZXJhdGlvblR5cGUoKSk7CisgICAgZW5jb2Rlci5lbmNvZGVF
bnVtKGZpbHRlci50eXBlKCkpOwogCi0gICAgc3dpdGNoIChmaWx0ZXIuZ2V0T3BlcmF0aW9uVHlw
ZSgpKSB7CisgICAgc3dpdGNoIChmaWx0ZXIudHlwZSgpKSB7CiAgICAgY2FzZSBGaWx0ZXJPcGVy
YXRpb246OlJFRkVSRU5DRTogewogICAgICAgICBjb25zdCBhdXRvJiByZWZlcmVuY2VGaWx0ZXIg
PSBzdGF0aWNfY2FzdDxjb25zdCBSZWZlcmVuY2VGaWx0ZXJPcGVyYXRpb24mPihmaWx0ZXIpOwog
ICAgICAgICBlbmNvZGVyIDw8IHJlZmVyZW5jZUZpbHRlci51cmwoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0gYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCmlu
ZGV4IDYyNWIzYmEuLjMyMTMyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9t
YWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQpAQCAtNDE2LDcgKzQxNiw3IEBA
IFJlbW90ZUxheWVyVHJlZVRleHRTdHJlYW0mIFJlbW90ZUxheWVyVHJlZVRleHRTdHJlYW06Om9w
ZXJhdG9yPDwoY29uc3QgRmlsdGVyT3BlCiAgICAgUmVtb3RlTGF5ZXJUcmVlVGV4dFN0cmVhbSYg
dHMgPSAqdGhpczsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZpbHRlcnMuc2l6ZSgpOyAr
K2kpIHsKICAgICAgICAgY29uc3QgYXV0byBmaWx0ZXIgPSBmaWx0ZXJzLmF0KGkpOwotICAgICAg
ICBzd2l0Y2ggKGZpbHRlci0+Z2V0T3BlcmF0aW9uVHlwZSgpKSB7CisgICAgICAgIHN3aXRjaCAo
ZmlsdGVyLT50eXBlKCkpIHsKICAgICAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246OlJFRkVSRU5D
RToKICAgICAgICAgICAgIHRzIDw8ICJyZWZlcmVuY2UiOwogICAgICAgICAgICAgYnJlYWs7Cg==
</data>
<flag name="review"
          id="237503"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>