Received: by 2002:ab2:6a05:0:b0:1f8:1780:a4ed with SMTP id w5csp113654lqo; Thu, 9 May 2024 14:28:38 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCUardl+AaG4xdKQurjVhbOBf+MwxDt1yN9x8zYbqdgYK5MAF5KrU5cpu0hdD9oAaSgGTbYmLhYJb+ql32MmlsKYEXa30UAJwTtIaLNiUQ== X-Google-Smtp-Source: AGHT+IFw8NXcCEs21H6NX6koQ+9UJFTz+2GizXXfHlTk4d+KjiazdZnUuJwU4D7/Z7rGAhKf4nLy X-Received: by 2002:a17:90a:db97:b0:2b2:7e94:4073 with SMTP id 98e67ed59e1d1-2b6cc76d73cmr821034a91.14.1715290118521; Thu, 09 May 2024 14:28:38 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1715290118; cv=pass; d=google.com; s=arc-20160816; b=n91GiEPZOQJOhUSreRWwR2+gid0uXmhZ6dpg/Ub43RLqGZd69ojFTZWvg73JYkzISv aWprsOPxK+1ADUzw/MzxxrIPRaoxyso3lm3xXaD6XWhK++SHvLSHktRua26Garwsz5/k JmuNvMNGwG2G7vqulofSXORaDFSkcCRU+bSwcsqa3thx/dQQ9VWVxC/Lo09OZpkq5rP8 agrvqFAESGyuLm++N0+/v5ku/LSKFGCx0beDUaBPERDcjc1kV+JrqmCPwZuXtkXINgYn uGUBKpQ9SettH+Sg4hQVKK8AmkCitNSwoZSkzz7TwpdPP66YfHbLxDY7Yf/z6I8inglY P3qg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=reply-to:references:in-reply-to:subject:to:from:mime-version :list-unsubscribe:list-subscribe:list-id:precedence:date:message-id :dkim-signature; bh=8dgUjmIeHFBXnv6Z6oIZ8VlNfWlTt3S6O46YL0yHFj4=; fh=ZW+214j3OunD6HG9TuvYqsXtO0zRpUGCsehnqGKvGpY=; b=f/obheOiB+tUWzX7mFz2r0FxSm3VY5KywJYIiq3ys6VTBwIaogQpPGVpFefoV3ebUQ 4pNvsUJak8ui5XGHsoNw/2tMs1EZ1MYEvIM/YWO9D0/5AjgXR4XCGslawe75Gcd6auMs sP1DiJjmP+hpZ7Oh2Kz2jue7eLeTYH+7PkHH3v3RwZ8/nnx1mAQbyBVca++/FaWgbv6z NrWcXnus4ixNdUx091r0lJFezV70CN8AvAnPAI5utyBog7AZj2EhAsQfMHEC1JzJv0Nu S0I2f+JTU8+jWvOl2ghIuavLy9Uktw0Diwvy5W05JL5Biqh3s+G9tpxarCs/7BWEawCc abSg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b="B/v52QPe"; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-bluetooth+bounces-4434-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-bluetooth+bounces-4434-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [2604:1380:40f1:3f00::1]) by mx.google.com with ESMTPS id 98e67ed59e1d1-2b670e35093si2252130a91.38.2024.05.09.14.28.37 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 May 2024 14:28:38 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth+bounces-4434-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) client-ip=2604:1380:40f1:3f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b="B/v52QPe"; arc=pass (i=1 spf=pass spfdomain=gmail.com dkim=pass dkdomain=gmail.com dmarc=pass fromdomain=gmail.com); spf=pass (google.com: domain of linux-bluetooth+bounces-4434-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-bluetooth+bounces-4434-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 2A521B21B54 for ; Thu, 9 May 2024 21:28:36 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 402CB8624B; Thu, 9 May 2024 21:28:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="B/v52QPe" X-Original-To: linux-bluetooth@vger.kernel.org Received: from mail-qk1-f169.google.com (mail-qk1-f169.google.com [209.85.222.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 53BD886244 for ; Thu, 9 May 2024 21:28:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.169 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715290108; cv=none; b=T/uIDkW88SUHx5ZHZ19NTrDYkORazEOR4wvGTE1cc8lrofZXfxnZAfFRMA4x8Guyd1yr2l+/pBeukeAse89Lpxg1zJdN8XkmOmDwW+ifrxPzHgGkU10OX3wPphKgWHL4yFs0UnpadXLo2GuuCIXewNifC8TVNAFBytEkhIYIFOY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715290108; c=relaxed/simple; bh=8dgUjmIeHFBXnv6Z6oIZ8VlNfWlTt3S6O46YL0yHFj4=; h=Message-ID:Date:Content-Type:MIME-Version:From:To:Subject: In-Reply-To:References; b=Z2U+bHwwJDIQ1mR3wiT7aS3sVCPW35JAy63FPyS9qMBOeZkVw6mt0vNB2b3smobTJnIhY4GWVDWC8uWvfLyQ060bRpxG5dXawH8J99wB4cZ9VPl+THANPHiIXLXlboGXGQoU3peDIJXwdNVxzWcrOQkLZXCtKSlQlrlQfZP1Iqs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=B/v52QPe; arc=none smtp.client-ip=209.85.222.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-qk1-f169.google.com with SMTP id af79cd13be357-792b8d98a56so112957185a.2 for ; Thu, 09 May 2024 14:28:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715290105; x=1715894905; darn=vger.kernel.org; h=reply-to:references:in-reply-to:subject:to:from:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=8dgUjmIeHFBXnv6Z6oIZ8VlNfWlTt3S6O46YL0yHFj4=; b=B/v52QPe/CevilFc8rn82wNa5iBMbV03+i5h+Lu1nqhdAoW/CV8u2veUGvTRdc1vuP 79Q5tyM2AwfXm0+JhPwuWnOev4OOursXfX3sGaqSAtFseQapswL/tMQkhduPywFt8Qdg D6A4XGA5L4JSqJCW0IHAYmgBtxb6BfCf5sHq8LSbhcmu3e0EDdhboOx5TjpuJ+S9O0MC AcZlBGq4qB+1er8F98jcIhIbJyfhhWkgtlC8ReWaqso0uUE2hymj4tPj+7RH/40yh4OE TsxX6NDV5GWSO9ghnMRdyaWTMQ0dmmu/AxxVisTo9zcVWpKsHkICptW/b5rOX7A2y+AL KcLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715290105; x=1715894905; h=reply-to:references:in-reply-to:subject:to:from:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=8dgUjmIeHFBXnv6Z6oIZ8VlNfWlTt3S6O46YL0yHFj4=; b=gK7ky8e3YSmis0Biy7p1GHwS1jP3cYa1ce0mTaArcPpOLX1zLC/W8eNHPQF+3oBvVy Vi/aHLwnYZDyxBMbP8r7ZXKiUgU1YFDS8P/qlt+bZaTs9RBJ7O1siItPRfOFWnPuRfKp Uxjivy43NrSXbhTWBIf6HJ4lVTaFB09ha/daM3EjHt5Z6fSVn6alYGF2R6xLNj9m1DBe tUz4snC8+idZdlaxpysp6REsGs5KtFgeVgp8WdIKNUNyYC4cYLereaG5Et+nM8o9jQdV 22K+tnBhapzT6BeSibo1aea8bK/3YH/TyKGkNNwh+pT4EnVTD0wrFTqy7/IV5jJjB/yz Q7vw== X-Gm-Message-State: AOJu0Yw/f0+/ZNK+w5hs6ROnTRS3kxyqjStJyWRYas+2rVhmDKVhTxjB pLPdU9HSeMDtBuvSDntx4O1ZkoupthhLXbtQKy4US67radqfu2gtoYysRQ== X-Received: by 2002:a05:622a:1491:b0:43a:b9e1:3891 with SMTP id d75a77b69052e-43dfdb68f74mr8064981cf.51.1715290104783; Thu, 09 May 2024 14:28:24 -0700 (PDT) Received: from [172.17.0.2] ([40.76.106.63]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-43df56d0396sm12558371cf.86.2024.05.09.14.28.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 09 May 2024 14:28:24 -0700 (PDT) Message-ID: <663d3ff8.c80a0220.b064a.3a6c@mx.google.com> Date: Thu, 09 May 2024 14:28:24 -0700 (PDT) Content-Type: multipart/mixed; boundary="===============7697056603400269836==" Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: bluez.test.bot@gmail.com To: linux-bluetooth@vger.kernel.org, luiz.dentz@gmail.com Subject: RE: [RFC,v1] Bluetooth: MGMT: Make MGMT_OP_LOAD_CONN_PARAM update existing connection In-Reply-To: <20240509205904.1275416-1-luiz.dentz@gmail.com> References: <20240509205904.1275416-1-luiz.dentz@gmail.com> Reply-To: linux-bluetooth@vger.kernel.org --===============7697056603400269836== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhdXRvbWF0ZWQgZW1haWwgYW5kIHBsZWFzZSBkbyBub3QgcmVwbHkgdG8gdGhpcyBl bWFpbCEKCkRlYXIgc3VibWl0dGVyLAoKVGhhbmsgeW91IGZvciBzdWJtaXR0aW5nIHRoZSBwYXRj aGVzIHRvIHRoZSBsaW51eCBibHVldG9vdGggbWFpbGluZyBsaXN0LgpUaGlzIGlzIGEgQ0kgdGVz dCByZXN1bHRzIHdpdGggeW91ciBwYXRjaCBzZXJpZXM6ClBXIExpbms6aHR0cHM6Ly9wYXRjaHdv cmsua2VybmVsLm9yZy9wcm9qZWN0L2JsdWV0b290aC9saXN0Lz9zZXJpZXM9ODUyMDQ0CgotLS1U ZXN0IHJlc3VsdC0tLQoKVGVzdCBTdW1tYXJ5OgpDaGVja1BhdGNoICAgICAgICAgICAgICAgICAg ICBQQVNTICAgICAgMC44NyBzZWNvbmRzCkdpdExpbnQgICAgICAgICAgICAgICAgICAgICAgIEZB SUwgICAgICAwLjQ5IHNlY29uZHMKU3ViamVjdFByZWZpeCAgICAgICAgICAgICAgICAgUEFTUyAg ICAgIDAuMTIgc2Vjb25kcwpCdWlsZEtlcm5lbCAgICAgICAgICAgICAgICAgICBGQUlMICAgICAg MjIuNDIgc2Vjb25kcwpDaGVja0FsbFdhcm5pbmcgICAgICAgICAgICAgICBGQUlMICAgICAgMjQu NzYgc2Vjb25kcwpDaGVja1NwYXJzZSAgICAgICAgICAgICAgICAgICBGQUlMICAgICAgMjguMzIg c2Vjb25kcwpDaGVja1NtYXRjaCAgICAgICAgICAgICAgICAgICBGQUlMICAgICAgMzYuMDggc2Vj b25kcwpCdWlsZEtlcm5lbDMyICAgICAgICAgICAgICAgICBGQUlMICAgICAgMjEuMzYgc2Vjb25k cwpUZXN0UnVubmVyU2V0dXAgICAgICAgICAgICAgICBGQUlMICAgICAgNDk0LjI5IHNlY29uZHMK VGVzdFJ1bm5lcl9sMmNhcC10ZXN0ZXIgICAgICAgRkFJTCAgICAgIDAuMTQgc2Vjb25kcwpUZXN0 UnVubmVyX2lzby10ZXN0ZXIgICAgICAgICBGQUlMICAgICAgMC4xMyBzZWNvbmRzClRlc3RSdW5u ZXJfYm5lcC10ZXN0ZXIgICAgICAgIEZBSUwgICAgICAwLjMzIHNlY29uZHMKVGVzdFJ1bm5lcl9t Z210LXRlc3RlciAgICAgICAgRkFJTCAgICAgIDAuMTQgc2Vjb25kcwpUZXN0UnVubmVyX3JmY29t bS10ZXN0ZXIgICAgICBGQUlMICAgICAgMC4xNCBzZWNvbmRzClRlc3RSdW5uZXJfc2NvLXRlc3Rl ciAgICAgICAgIEZBSUwgICAgICAwLjE0IHNlY29uZHMKVGVzdFJ1bm5lcl9pb2N0bC10ZXN0ZXIg ICAgICAgRkFJTCAgICAgIDAuMTQgc2Vjb25kcwpUZXN0UnVubmVyX21lc2gtdGVzdGVyICAgICAg ICBGQUlMICAgICAgMC4xNCBzZWNvbmRzClRlc3RSdW5uZXJfc21wLXRlc3RlciAgICAgICAgIEZB SUwgICAgICAwLjE0IHNlY29uZHMKVGVzdFJ1bm5lcl91c2VyY2hhbi10ZXN0ZXIgICAgRkFJTCAg ICAgIDAuMTUgc2Vjb25kcwpJbmNyZW1lbnRhbEJ1aWxkICAgICAgICAgICAgICBGQUlMICAgICAg MjQuOTMgc2Vjb25kcwoKRGV0YWlscwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVz dDogR2l0TGludCAtIEZBSUwKRGVzYzogUnVuIGdpdGxpbnQKT3V0cHV0OgpbUkZDLHYxXSBCbHVl dG9vdGg6IE1HTVQ6IE1ha2UgTUdNVF9PUF9MT0FEX0NPTk5fUEFSQU0gdXBkYXRlIGV4aXN0aW5n IGNvbm5lY3Rpb24KCldBUk5JTkc6IEkzIC0gaWdub3JlLWJvZHktbGluZXM6IGdpdGxpbnQgd2ls bCBiZSBzd2l0Y2hpbmcgZnJvbSB1c2luZyBQeXRob24gcmVnZXggJ21hdGNoJyAobWF0Y2ggYmVn aW5uaW5nKSB0byAnc2VhcmNoJyAobWF0Y2ggYW55d2hlcmUpIHNlbWFudGljcy4gUGxlYXNlIHJl dmlldyB5b3VyIGlnbm9yZS1ib2R5LWxpbmVzLnJlZ2V4IG9wdGlvbiBhY2NvcmRpbmdseS4gVG8g cmVtb3ZlIHRoaXMgd2FybmluZywgc2V0IGdlbmVyYWwucmVnZXgtc3R5bGUtc2VhcmNoPVRydWUu IE1vcmUgZGV0YWlsczogaHR0cHM6Ly9qb3Jpc3Jvb3ZlcnMuZ2l0aHViLmlvL2dpdGxpbnQvY29u ZmlndXJhdGlvbi8jcmVnZXgtc3R5bGUtc2VhcmNoCjE6IFQxIFRpdGxlIGV4Y2VlZHMgbWF4IGxl bmd0aCAoODE+ODApOiAiW1JGQyx2MV0gQmx1ZXRvb3RoOiBNR01UOiBNYWtlIE1HTVRfT1BfTE9B RF9DT05OX1BBUkFNIHVwZGF0ZSBleGlzdGluZyBjb25uZWN0aW9uIgojIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKVGVzdDogQnVpbGRLZXJuZWwgLSBGQUlMCkRlc2M6IEJ1aWxkIEtlcm5l bCBmb3IgQmx1ZXRvb3RoCk91dHB1dDoKCm5ldC9ibHVldG9vdGgvbWdtdC5jOiBJbiBmdW5jdGlv biDigJhjb25uX3VwZGF0ZV9zeW5j4oCZOgpuZXQvYmx1ZXRvb3RoL21nbXQuYzo3ODgxOjI6IGVy cm9yOiDigJhjb25u4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKQog Nzg4MSB8ICBjb25uID0gaGNpX2Nvbm5faGFzaF9sb29rdXBfbGUoaGRldiwgcGFyYW1zLT5hZGRy LmJkYWRkciwKICAgICAgfCAgXn5+fgpuZXQvYmx1ZXRvb3RoL21nbXQuYzo3ODgxOjI6IG5vdGU6 IGVhY2ggdW5kZWNsYXJlZCBpZGVudGlmaWVyIGlzIHJlcG9ydGVkIG9ubHkgb25jZSBmb3IgZWFj aCBmdW5jdGlvbiBpdCBhcHBlYXJzIGluCm5ldC9ibHVldG9vdGgvbWdtdC5jOjc4ODE6NTE6IGVy cm9yOiDigJhiZGFkZHJfdOKAmSB7YWthIOKAmHN0cnVjdCA8YW5vbnltb3VzPuKAmX0gaGFzIG5v IG1lbWJlciBuYW1lZCDigJhiZGFkZHLigJkKIDc4ODEgfCAgY29ubiA9IGhjaV9jb25uX2hhc2hf bG9va3VwX2xlKGhkZXYsIHBhcmFtcy0+YWRkci5iZGFkZHIsCiAgICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCm5ldC9ibHVldG9vdGgvbWdt dC5jOjc4ODY6MjogZXJyb3I6IGV4cGVjdGVkIOKAmDvigJkgYmVmb3JlIOKAmHJldHVybuKAmQog Nzg4NiB8ICByZXR1cm4gaGNpX2xlX2Nvbm5fdXBkYXRlX3N5bmMoaGRldiwgY29ubiwgcGFyYW1z KTsKICAgICAgfCAgXn5+fn5+Cm5ldC9ibHVldG9vdGgvbWdtdC5jOiBJbiBmdW5jdGlvbiDigJhs b2FkX2Nvbm5fcGFyYW3igJk6Cm5ldC9ibHVldG9vdGgvbWdtdC5jOjc5NjA6MTM6IGVycm9yOiDi gJhwYXJhbXPigJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pOyBkaWQg eW91IG1lYW4g4oCYcGFyYW3igJk/CiA3OTYwIHwgICBpZiAoIWkgJiYgcGFyYW1zID09IDEpIHsK ICAgICAgfCAgICAgICAgICAgICBefn5+fn4KICAgICAgfCAgICAgICAgICAgICBwYXJhbQpuZXQv Ymx1ZXRvb3RoL21nbXQuYzo3OTkyOjE1OiBlcnJvcjog4oCYc3RydWN0IGhjaV9jb25u4oCZIGhh cyBubyBtZW1iZXIgbmFtZWQg4oCYbGVfc3VwZXJ2aXNpb25fdGltZW91dOKAmTsgZGlkIHlvdSBt ZWFuIOKAmGxlX3N1cHZfdGltZW91dOKAmT8KIDc5OTIgfCAgICAgICAgIGNvbm4tPmxlX3N1cGVy dmlzaW9uX3RpbWVvdXQgIT0gdGltZW91dCkpCiAgICAgIHwgICAgICAgICAgICAgICBefn5+fn5+ fn5+fn5+fn5+fn5+fn5+CiAgICAgIHwgICAgICAgICAgICAgICBsZV9zdXB2X3RpbWVvdXQKbmV0 L2JsdWV0b290aC9tZ210LmM6Nzk5NDoxMDogZXJyb3I6IOKAmGhjaV9wYXJhbXPigJkgdW5kZWNs YXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pOyBkaWQgeW91IG1lYW4g4oCYaGNpX3Bh cmFt4oCZPwogNzk5NCB8ICAgICAgICAgIGhjaV9wYXJhbXMsIE5VTEwpOwogICAgICB8ICAgICAg ICAgIF5+fn5+fn5+fn4KICAgICAgfCAgICAgICAgICBoY2lfcGFyYW0KSW4gZmlsZSBpbmNsdWRl ZCBmcm9tIG5ldC9ibHVldG9vdGgvbWdtdC5jOjMxOgpuZXQvYmx1ZXRvb3RoL21nbXQuYzogQXQg dG9wIGxldmVsOgouL2luY2x1ZGUvbmV0L2JsdWV0b290aC9oY2lfY29yZS5oOjE2MTU6NDA6IGVy cm9yOiBleHBlY3RlZCBkZWNsYXJhdGlvbiBzcGVjaWZpZXJzIG9yIOKAmC4uLuKAmSBiZWZvcmUg 4oCYJuKAmSB0b2tlbgogMTYxNSB8ICNkZWZpbmUgaGNpX2Rldl91bmxvY2soZCkgbXV0ZXhfdW5s b2NrKCZkLT5sb2NrKQogICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KbmV0L2JsdWV0b290aC9tZ210LmM6Nzk5OToyOiBub3RlOiBpbiBleHBhbnNpb24gb2Yg bWFjcm8g4oCYaGNpX2Rldl91bmxvY2vigJkKIDc5OTkgfCAgaGNpX2Rldl91bmxvY2soaGRldik7 CiAgICAgIHwgIF5+fn5+fn5+fn5+fn5+Cm5ldC9ibHVldG9vdGgvbWdtdC5jOjgwMDE6MjogZXJy b3I6IGV4cGVjdGVkIGlkZW50aWZpZXIgb3Ig4oCYKOKAmSBiZWZvcmUg4oCYcmV0dXJu4oCZCiA4 MDAxIHwgIHJldHVybiBtZ210X2NtZF9jb21wbGV0ZShzaywgaGRldi0+aWQsIE1HTVRfT1BfTE9B RF9DT05OX1BBUkFNLCAwLAogICAgICB8ICBefn5+fn4KbmV0L2JsdWV0b290aC9tZ210LmM6ODAw MzoxOiBlcnJvcjogZXhwZWN0ZWQgaWRlbnRpZmllciBvciDigJgo4oCZIGJlZm9yZSDigJh94oCZ IHRva2VuCiA4MDAzIHwgfQogICAgICB8IF4KbmV0L2JsdWV0b290aC9tZ210LmM6IEluIGZ1bmN0 aW9uIOKAmGxvYWRfY29ubl9wYXJhbeKAmToKbmV0L2JsdWV0b290aC9tZ210LmM6Nzk5NzoyOiBl cnJvcjogY29udHJvbCByZWFjaGVzIGVuZCBvZiBub24tdm9pZCBmdW5jdGlvbiBbLVdlcnJvcj1y ZXR1cm4tdHlwZV0KIDc5OTcgfCAgfQogICAgICB8ICBeCmNjMTogc29tZSB3YXJuaW5ncyBiZWlu ZyB0cmVhdGVkIGFzIGVycm9ycwptYWtlWzRdOiAqKiogW3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQ6 MjQ0OiBuZXQvYmx1ZXRvb3RoL21nbXQub10gRXJyb3IgMQptYWtlWzNdOiAqKiogW3NjcmlwdHMv TWFrZWZpbGUuYnVpbGQ6NDg1OiBuZXQvYmx1ZXRvb3RoXSBFcnJvciAyCm1ha2VbMl06ICoqKiBb c2NyaXB0cy9NYWtlZmlsZS5idWlsZDo0ODU6IG5ldF0gRXJyb3IgMgptYWtlWzJdOiAqKiogV2Fp dGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgptYWtlWzFdOiAqKiogWy9naXRodWIvd29ya3Nw YWNlL3NyYy9zcmMvTWFrZWZpbGU6MTkxOTogLl0gRXJyb3IgMgptYWtlOiAqKiogW01ha2VmaWxl OjI0MDogX19zdWItbWFrZV0gRXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK VGVzdDogQ2hlY2tBbGxXYXJuaW5nIC0gRkFJTApEZXNjOiBSdW4gbGludXgga2VybmVsIHdpdGgg YWxsIHdhcm5pbmcgZW5hYmxlZApPdXRwdXQ6CgpuZXQvYmx1ZXRvb3RoL21nbXQuYzogSW4gZnVu Y3Rpb24g4oCYY29ubl91cGRhdGVfc3luY+KAmToKbmV0L2JsdWV0b290aC9tZ210LmM6Nzg4MToy OiBlcnJvcjog4oCYY29ubuKAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlv bikKIDc4ODEgfCAgY29ubiA9IGhjaV9jb25uX2hhc2hfbG9va3VwX2xlKGhkZXYsIHBhcmFtcy0+ YWRkci5iZGFkZHIsCiAgICAgIHwgIF5+fn4KbmV0L2JsdWV0b290aC9tZ210LmM6Nzg4MToyOiBu b3RlOiBlYWNoIHVuZGVjbGFyZWQgaWRlbnRpZmllciBpcyByZXBvcnRlZCBvbmx5IG9uY2UgZm9y IGVhY2ggZnVuY3Rpb24gaXQgYXBwZWFycyBpbgpuZXQvYmx1ZXRvb3RoL21nbXQuYzo3ODgxOjUx OiBlcnJvcjog4oCYYmRhZGRyX3TigJkge2FrYSDigJhzdHJ1Y3QgPGFub255bW91cz7igJl9IGhh cyBubyBtZW1iZXIgbmFtZWQg4oCYYmRhZGRy4oCZCiA3ODgxIHwgIGNvbm4gPSBoY2lfY29ubl9o YXNoX2xvb2t1cF9sZShoZGV2LCBwYXJhbXMtPmFkZHIuYmRhZGRyLAogICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpuZXQvYmx1ZXRvb3Ro L21nbXQuYzo3ODg2OjI6IGVycm9yOiBleHBlY3RlZCDigJg74oCZIGJlZm9yZSDigJhyZXR1cm7i gJkKIDc4ODYgfCAgcmV0dXJuIGhjaV9sZV9jb25uX3VwZGF0ZV9zeW5jKGhkZXYsIGNvbm4sIHBh cmFtcyk7CiAgICAgIHwgIF5+fn5+fgpuZXQvYmx1ZXRvb3RoL21nbXQuYzogSW4gZnVuY3Rpb24g 4oCYbG9hZF9jb25uX3BhcmFt4oCZOgpuZXQvYmx1ZXRvb3RoL21nbXQuYzo3OTYwOjEzOiBlcnJv cjog4oCYcGFyYW1z4oCZIHVuZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKTsg ZGlkIHlvdSBtZWFuIOKAmHBhcmFt4oCZPwogNzk2MCB8ICAgaWYgKCFpICYmIHBhcmFtcyA9PSAx KSB7CiAgICAgIHwgICAgICAgICAgICAgXn5+fn5+CiAgICAgIHwgICAgICAgICAgICAgcGFyYW0K bmV0L2JsdWV0b290aC9tZ210LmM6Nzk5MjoxNTogZXJyb3I6IOKAmHN0cnVjdCBoY2lfY29ubuKA mSBoYXMgbm8gbWVtYmVyIG5hbWVkIOKAmGxlX3N1cGVydmlzaW9uX3RpbWVvdXTigJk7IGRpZCB5 b3UgbWVhbiDigJhsZV9zdXB2X3RpbWVvdXTigJk/CiA3OTkyIHwgICAgICAgICBjb25uLT5sZV9z dXBlcnZpc2lvbl90aW1lb3V0ICE9IHRpbWVvdXQpKQogICAgICB8ICAgICAgICAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgogICAgICB8ICAgICAgICAgICAgICAgbGVfc3Vwdl90aW1lb3V0 Cm5ldC9ibHVldG9vdGgvbWdtdC5jOjc5OTQ6MTA6IGVycm9yOiDigJhoY2lfcGFyYW1z4oCZIHVu ZGVjbGFyZWQgKGZpcnN0IHVzZSBpbiB0aGlzIGZ1bmN0aW9uKTsgZGlkIHlvdSBtZWFuIOKAmGhj aV9wYXJhbeKAmT8KIDc5OTQgfCAgICAgICAgICBoY2lfcGFyYW1zLCBOVUxMKTsKICAgICAgfCAg ICAgICAgICBefn5+fn5+fn5+CiAgICAgIHwgICAgICAgICAgaGNpX3BhcmFtCkluIGZpbGUgaW5j bHVkZWQgZnJvbSBuZXQvYmx1ZXRvb3RoL21nbXQuYzozMToKbmV0L2JsdWV0b290aC9tZ210LmM6 IEF0IHRvcCBsZXZlbDoKLi9pbmNsdWRlL25ldC9ibHVldG9vdGgvaGNpX2NvcmUuaDoxNjE1OjQw OiBlcnJvcjogZXhwZWN0ZWQgZGVjbGFyYXRpb24gc3BlY2lmaWVycyBvciDigJguLi7igJkgYmVm b3JlIOKAmCbigJkgdG9rZW4KIDE2MTUgfCAjZGVmaW5lIGhjaV9kZXZfdW5sb2NrKGQpIG11dGV4 X3VubG9jaygmZC0+bG9jaykKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCm5ldC9ibHVldG9vdGgvbWdtdC5jOjc5OTk6Mjogbm90ZTogaW4gZXhwYW5zaW9u IG9mIG1hY3JvIOKAmGhjaV9kZXZfdW5sb2Nr4oCZCiA3OTk5IHwgIGhjaV9kZXZfdW5sb2NrKGhk ZXYpOwogICAgICB8ICBefn5+fn5+fn5+fn5+fgpuZXQvYmx1ZXRvb3RoL21nbXQuYzo4MDAxOjI6 IGVycm9yOiBleHBlY3RlZCBpZGVudGlmaWVyIG9yIOKAmCjigJkgYmVmb3JlIOKAmHJldHVybuKA mQogODAwMSB8ICByZXR1cm4gbWdtdF9jbWRfY29tcGxldGUoc2ssIGhkZXYtPmlkLCBNR01UX09Q X0xPQURfQ09OTl9QQVJBTSwgMCwKICAgICAgfCAgXn5+fn5+Cm5ldC9ibHVldG9vdGgvbWdtdC5j OjgwMDM6MTogZXJyb3I6IGV4cGVjdGVkIGlkZW50aWZpZXIgb3Ig4oCYKOKAmSBiZWZvcmUg4oCY feKAmSB0b2tlbgogODAwMyB8IH0KICAgICAgfCBeCm5ldC9ibHVldG9vdGgvbWdtdC5jOiBJbiBm dW5jdGlvbiDigJhsb2FkX2Nvbm5fcGFyYW3igJk6Cm5ldC9ibHVldG9vdGgvbWdtdC5jOjc5OTc6 MjogZXJyb3I6IGNvbnRyb2wgcmVhY2hlcyBlbmQgb2Ygbm9uLXZvaWQgZnVuY3Rpb24gWy1XZXJy b3I9cmV0dXJuLXR5cGVdCiA3OTk3IHwgIH0KICAgICAgfCAgXgpjYzE6IHNvbWUgd2FybmluZ3Mg YmVpbmcgdHJlYXRlZCBhcyBlcnJvcnMKbWFrZVs0XTogKioqIFtzY3JpcHRzL01ha2VmaWxlLmJ1 aWxkOjI0NDogbmV0L2JsdWV0b290aC9tZ210Lm9dIEVycm9yIDEKbWFrZVszXTogKioqIFtzY3Jp cHRzL01ha2VmaWxlLmJ1aWxkOjQ4NTogbmV0L2JsdWV0b290aF0gRXJyb3IgMgptYWtlWzJdOiAq KiogW3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQ6NDg1OiBuZXRdIEVycm9yIDIKbWFrZVsyXTogKioq IFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KbWFrZVsxXTogKioqIFsvZ2l0aHViL3dv cmtzcGFjZS9zcmMvc3JjL01ha2VmaWxlOjE5MTk6IC5dIEVycm9yIDIKbWFrZTogKioqIFtNYWtl ZmlsZToyNDA6IF9fc3ViLW1ha2VdIEVycm9yIDIKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjClRlc3Q6IENoZWNrU3BhcnNlIC0gRkFJTApEZXNjOiBSdW4gc3BhcnNlIHRvb2wgd2l0aCBs aW51eCBrZXJuZWwKT3V0cHV0OgoKbmV0L2JsdWV0b290aC9hZl9ibHVldG9vdGguYzoyMjY6MjU6 IHdhcm5pbmc6IGNvbnRleHQgaW1iYWxhbmNlIGluICdidF9hY2NlcHRfZW5xdWV1ZScgLSBkaWZm ZXJlbnQgbG9jayBjb250ZXh0cyBmb3IgYmFzaWMgYmxvY2sKZHJpdmVycy9ibHVldG9vdGgvaGNp X2FnNnh4LmM6MjU3OjI0OiB3YXJuaW5nOiByZXN0cmljdGVkIF9fbGUzMiBkZWdyYWRlcyB0byBp bnRlZ2VyCmRyaXZlcnMvYmx1ZXRvb3RoL2hjaV9tcnZsLmM6MTcwOjIzOiB3YXJuaW5nOiByZXN0 cmljdGVkIF9fbGUxNiBkZWdyYWRlcyB0byBpbnRlZ2VyCmRyaXZlcnMvYmx1ZXRvb3RoL2hjaV9t cnZsLmM6MjAzOjIzOiB3YXJuaW5nOiByZXN0cmljdGVkIF9fbGUxNiBkZWdyYWRlcyB0byBpbnRl Z2VyCm5ldC9ibHVldG9vdGgvaGNpX2V2ZW50LmM6IG5vdGU6IGluIGluY2x1ZGVkIGZpbGUgKHRo cm91Z2ggaW5jbHVkZS9uZXQvYmx1ZXRvb3RoL2hjaV9jb3JlLmgpOgouL2luY2x1ZGUvbmV0L2Js dWV0b290aC9oY2kuaDoyNTg1OjQ3OiB3YXJuaW5nOiBhcnJheSBvZiBmbGV4aWJsZSBzdHJ1Y3R1 cmVzCi4vaW5jbHVkZS9uZXQvYmx1ZXRvb3RoL2hjaS5oOjI2NzE6NDM6IHdhcm5pbmc6IGFycmF5 IG9mIGZsZXhpYmxlIHN0cnVjdHVyZXMKbmV0L2JsdWV0b290aC9tZ210LmM6IEluIGZ1bmN0aW9u IOKAmGNvbm5fdXBkYXRlX3N5bmPigJk6Cm5ldC9ibHVldG9vdGgvbWdtdC5jOjc4ODE6MjogZXJy b3I6IOKAmGNvbm7igJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiA3 ODgxIHwgIGNvbm4gPSBoY2lfY29ubl9oYXNoX2xvb2t1cF9sZShoZGV2LCBwYXJhbXMtPmFkZHIu YmRhZGRyLAogICAgICB8ICBefn5+Cm5ldC9ibHVldG9vdGgvbWdtdC5jOjc4ODE6Mjogbm90ZTog ZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNo IGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KbmV0L2JsdWV0b290aC9tZ210LmM6Nzg4MTo1MTogZXJy b3I6IOKAmGJkYWRkcl904oCZIHtha2Eg4oCYc3RydWN0IDxhbm9ueW1vdXM+4oCZfSBoYXMgbm8g bWVtYmVyIG5hbWVkIOKAmGJkYWRkcuKAmQogNzg4MSB8ICBjb25uID0gaGNpX2Nvbm5faGFzaF9s b29rdXBfbGUoaGRldiwgcGFyYW1zLT5hZGRyLmJkYWRkciwKICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KbmV0L2JsdWV0b290aC9tZ210 LmM6Nzg4NjoyOiBlcnJvcjogZXhwZWN0ZWQg4oCYO+KAmSBiZWZvcmUg4oCYcmV0dXJu4oCZCiA3 ODg2IHwgIHJldHVybiBoY2lfbGVfY29ubl91cGRhdGVfc3luYyhoZGV2LCBjb25uLCBwYXJhbXMp OwogICAgICB8ICBefn5+fn4KbmV0L2JsdWV0b290aC9tZ210LmM6IEluIGZ1bmN0aW9uIOKAmGxv YWRfY29ubl9wYXJhbeKAmToKbmV0L2JsdWV0b290aC9tZ210LmM6Nzk2MDoxMzogZXJyb3I6IOKA mHBhcmFtc+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbik7IGRpZCB5 b3UgbWVhbiDigJhwYXJhbeKAmT8KIDc5NjAgfCAgIGlmICghaSAmJiBwYXJhbXMgPT0gMSkgewog ICAgICB8ICAgICAgICAgICAgIF5+fn5+fgogICAgICB8ICAgICAgICAgICAgIHBhcmFtCm5ldC9i bHVldG9vdGgvbWdtdC5jOjc5OTI6MTU6IGVycm9yOiDigJhzdHJ1Y3QgaGNpX2Nvbm7igJkgaGFz IG5vIG1lbWJlciBuYW1lZCDigJhsZV9zdXBlcnZpc2lvbl90aW1lb3V04oCZOyBkaWQgeW91IG1l YW4g4oCYbGVfc3Vwdl90aW1lb3V04oCZPwogNzk5MiB8ICAgICAgICAgY29ubi0+bGVfc3VwZXJ2 aXNpb25fdGltZW91dCAhPSB0aW1lb3V0KSkKICAgICAgfCAgICAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+fn4KICAgICAgfCAgICAgICAgICAgICAgIGxlX3N1cHZfdGltZW91dApuZXQv Ymx1ZXRvb3RoL21nbXQuYzo3OTk0OjEwOiBlcnJvcjog4oCYaGNpX3BhcmFtc+KAmSB1bmRlY2xh cmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbik7IGRpZCB5b3UgbWVhbiDigJhoY2lfcGFy YW3igJk/CiA3OTk0IHwgICAgICAgICAgaGNpX3BhcmFtcywgTlVMTCk7CiAgICAgIHwgICAgICAg ICAgXn5+fn5+fn5+fgogICAgICB8ICAgICAgICAgIGhjaV9wYXJhbQpJbiBmaWxlIGluY2x1ZGVk IGZyb20gbmV0L2JsdWV0b290aC9tZ210LmM6MzE6Cm5ldC9ibHVldG9vdGgvbWdtdC5jOiBBdCB0 b3AgbGV2ZWw6Ci4vaW5jbHVkZS9uZXQvYmx1ZXRvb3RoL2hjaV9jb3JlLmg6MTYxNTo0MDogZXJy b3I6IGV4cGVjdGVkIGRlY2xhcmF0aW9uIHNwZWNpZmllcnMgb3Ig4oCYLi4u4oCZIGJlZm9yZSDi gJgm4oCZIHRva2VuCiAxNjE1IHwgI2RlZmluZSBoY2lfZGV2X3VubG9jayhkKSBtdXRleF91bmxv Y2soJmQtPmxvY2spCiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgpuZXQvYmx1ZXRvb3RoL21nbXQuYzo3OTk5OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBt YWNybyDigJhoY2lfZGV2X3VubG9ja+KAmQogNzk5OSB8ICBoY2lfZGV2X3VubG9jayhoZGV2KTsK ICAgICAgfCAgXn5+fn5+fn5+fn5+fn4KbmV0L2JsdWV0b290aC9tZ210LmM6ODAwMToyOiBlcnJv cjogZXhwZWN0ZWQgaWRlbnRpZmllciBvciDigJgo4oCZIGJlZm9yZSDigJhyZXR1cm7igJkKIDgw MDEgfCAgcmV0dXJuIG1nbXRfY21kX2NvbXBsZXRlKHNrLCBoZGV2LT5pZCwgTUdNVF9PUF9MT0FE X0NPTk5fUEFSQU0sIDAsCiAgICAgIHwgIF5+fn5+fgpuZXQvYmx1ZXRvb3RoL21nbXQuYzo4MDAz OjE6IGVycm9yOiBleHBlY3RlZCBpZGVudGlmaWVyIG9yIOKAmCjigJkgYmVmb3JlIOKAmH3igJkg dG9rZW4KIDgwMDMgfCB9CiAgICAgIHwgXgpuZXQvYmx1ZXRvb3RoL21nbXQuYzogSW4gZnVuY3Rp b24g4oCYbG9hZF9jb25uX3BhcmFt4oCZOgpuZXQvYmx1ZXRvb3RoL21nbXQuYzo3OTk3OjI6IGVy cm9yOiBjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5vbi12b2lkIGZ1bmN0aW9uIFstV2Vycm9yPXJl dHVybi10eXBlXQogNzk5NyB8ICB9CiAgICAgIHwgIF4KY2MxOiBzb21lIHdhcm5pbmdzIGJlaW5n IHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2VbNF06ICoqKiBbc2NyaXB0cy9NYWtlZmlsZS5idWlsZDoy NDQ6IG5ldC9ibHVldG9vdGgvbWdtdC5vXSBFcnJvciAxCm1ha2VbM106ICoqKiBbc2NyaXB0cy9N YWtlZmlsZS5idWlsZDo0ODU6IG5ldC9ibHVldG9vdGhdIEVycm9yIDIKbWFrZVsyXTogKioqIFtz Y3JpcHRzL01ha2VmaWxlLmJ1aWxkOjQ4NTogbmV0XSBFcnJvciAyCm1ha2VbMl06ICoqKiBXYWl0 aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCmRyaXZlcnMvYmx1ZXRvb3RoL2hjaV9ub2tpYS5j OjI4NDoyMzogd2FybmluZzogaW5jb3JyZWN0IHR5cGUgaW4gYXNzaWdubWVudCAoZGlmZmVyZW50 IGJhc2UgdHlwZXMpCmRyaXZlcnMvYmx1ZXRvb3RoL2hjaV9ub2tpYS5jOjI4NDoyMzogICAgZXhw ZWN0ZWQgdW5zaWduZWQgc2hvcnQgW3VzZXJ0eXBlXSBiYXVkCmRyaXZlcnMvYmx1ZXRvb3RoL2hj aV9ub2tpYS5jOjI4NDoyMzogICAgZ290IHJlc3RyaWN0ZWQgX19sZTE2IFt1c2VydHlwZV0KZHJp dmVycy9ibHVldG9vdGgvaGNpX25va2lhLmM6Mjg3OjI2OiB3YXJuaW5nOiBpbmNvcnJlY3QgdHlw ZSBpbiBhc3NpZ25tZW50IChkaWZmZXJlbnQgYmFzZSB0eXBlcykKZHJpdmVycy9ibHVldG9vdGgv aGNpX25va2lhLmM6Mjg3OjI2OiAgICBleHBlY3RlZCB1bnNpZ25lZCBzaG9ydCBbdXNlcnR5cGVd IHN5c19jbGsKZHJpdmVycy9ibHVldG9vdGgvaGNpX25va2lhLmM6Mjg3OjI2OiAgICBnb3QgcmVz dHJpY3RlZCBfX2xlMTYgW3VzZXJ0eXBlXQptYWtlWzFdOiAqKiogWy9naXRodWIvd29ya3NwYWNl L3NyYy9zcmMvTWFrZWZpbGU6MTkxOTogLl0gRXJyb3IgMgptYWtlOiAqKiogW01ha2VmaWxlOjI0 MDogX19zdWItbWFrZV0gRXJyb3IgMgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVz dDogQ2hlY2tTbWF0Y2ggLSBGQUlMCkRlc2M6IFJ1biBzbWF0Y2ggdG9vbCB3aXRoIHNvdXJjZQpP dXRwdXQ6CgpTZWdtZW50YXRpb24gZmF1bHQgKGNvcmUgZHVtcGVkKQptYWtlWzRdOiAqKiogW3Nj cmlwdHMvTWFrZWZpbGUuYnVpbGQ6MjQ0OiBuZXQvYmx1ZXRvb3RoL2hjaV9jb3JlLm9dIEVycm9y IDEzOQptYWtlWzRdOiAqKiogRGVsZXRpbmcgZmlsZSAnbmV0L2JsdWV0b290aC9oY2lfY29yZS5v JwptYWtlWzNdOiAqKiogW3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQ6NDg1OiBuZXQvYmx1ZXRvb3Ro XSBFcnJvciAyCm1ha2VbMl06ICoqKiBbc2NyaXB0cy9NYWtlZmlsZS5idWlsZDo0ODU6IG5ldF0g RXJyb3IgMgptYWtlWzJdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgpTZWdt ZW50YXRpb24gZmF1bHQgKGNvcmUgZHVtcGVkKQptYWtlWzRdOiAqKiogW3NjcmlwdHMvTWFrZWZp bGUuYnVpbGQ6MjQ0OiBkcml2ZXJzL2JsdWV0b290aC9iY20yMDN4Lm9dIEVycm9yIDEzOQptYWtl WzRdOiAqKiogRGVsZXRpbmcgZmlsZSAnZHJpdmVycy9ibHVldG9vdGgvYmNtMjAzeC5vJwptYWtl WzRdOiAqKiogV2FpdGluZyBmb3IgdW5maW5pc2hlZCBqb2JzLi4uLgpTZWdtZW50YXRpb24gZmF1 bHQgKGNvcmUgZHVtcGVkKQptYWtlWzRdOiAqKiogW3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQ6MjQ0 OiBkcml2ZXJzL2JsdWV0b290aC9icGExMHgub10gRXJyb3IgMTM5Cm1ha2VbNF06ICoqKiBEZWxl dGluZyBmaWxlICdkcml2ZXJzL2JsdWV0b290aC9icGExMHgubycKbWFrZVszXTogKioqIFtzY3Jp cHRzL01ha2VmaWxlLmJ1aWxkOjQ4NTogZHJpdmVycy9ibHVldG9vdGhdIEVycm9yIDIKbWFrZVsy XTogKioqIFtzY3JpcHRzL01ha2VmaWxlLmJ1aWxkOjQ4NTogZHJpdmVyc10gRXJyb3IgMgptYWtl WzFdOiAqKiogWy9naXRodWIvd29ya3NwYWNlL3NyYy9zcmMvTWFrZWZpbGU6MTkxOTogLl0gRXJy b3IgMgptYWtlOiAqKiogW01ha2VmaWxlOjI0MDogX19zdWItbWFrZV0gRXJyb3IgMgojIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogQnVpbGRLZXJuZWwzMiAtIEZBSUwKRGVzYzog QnVpbGQgMzJiaXQgS2VybmVsIGZvciBCbHVldG9vdGgKT3V0cHV0OgoKbmV0L2JsdWV0b290aC9t Z210LmM6IEluIGZ1bmN0aW9uIOKAmGNvbm5fdXBkYXRlX3N5bmPigJk6Cm5ldC9ibHVldG9vdGgv bWdtdC5jOjc4ODE6MjogZXJyb3I6IOKAmGNvbm7igJkgdW5kZWNsYXJlZCAoZmlyc3QgdXNlIGlu IHRoaXMgZnVuY3Rpb24pCiA3ODgxIHwgIGNvbm4gPSBoY2lfY29ubl9oYXNoX2xvb2t1cF9sZSho ZGV2LCBwYXJhbXMtPmFkZHIuYmRhZGRyLAogICAgICB8ICBefn5+Cm5ldC9ibHVldG9vdGgvbWdt dC5jOjc4ODE6Mjogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMgcmVwb3J0ZWQg b25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KbmV0L2JsdWV0b290aC9t Z210LmM6Nzg4MTo1MTogZXJyb3I6IOKAmGJkYWRkcl904oCZIHtha2Eg4oCYc3RydWN0IDxhbm9u eW1vdXM+4oCZfSBoYXMgbm8gbWVtYmVyIG5hbWVkIOKAmGJkYWRkcuKAmQogNzg4MSB8ICBjb25u ID0gaGNpX2Nvbm5faGFzaF9sb29rdXBfbGUoaGRldiwgcGFyYW1zLT5hZGRyLmJkYWRkciwKICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K bmV0L2JsdWV0b290aC9tZ210LmM6Nzg4NjoyOiBlcnJvcjogZXhwZWN0ZWQg4oCYO+KAmSBiZWZv cmUg4oCYcmV0dXJu4oCZCiA3ODg2IHwgIHJldHVybiBoY2lfbGVfY29ubl91cGRhdGVfc3luYyho ZGV2LCBjb25uLCBwYXJhbXMpOwogICAgICB8ICBefn5+fn4KbmV0L2JsdWV0b290aC9tZ210LmM6 IEluIGZ1bmN0aW9uIOKAmGxvYWRfY29ubl9wYXJhbeKAmToKbmV0L2JsdWV0b290aC9tZ210LmM6 Nzk2MDoxMzogZXJyb3I6IOKAmHBhcmFtc+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhp cyBmdW5jdGlvbik7IGRpZCB5b3UgbWVhbiDigJhwYXJhbeKAmT8KIDc5NjAgfCAgIGlmICghaSAm JiBwYXJhbXMgPT0gMSkgewogICAgICB8ICAgICAgICAgICAgIF5+fn5+fgogICAgICB8ICAgICAg ICAgICAgIHBhcmFtCm5ldC9ibHVldG9vdGgvbWdtdC5jOjc5OTI6MTU6IGVycm9yOiDigJhzdHJ1 Y3QgaGNpX2Nvbm7igJkgaGFzIG5vIG1lbWJlciBuYW1lZCDigJhsZV9zdXBlcnZpc2lvbl90aW1l b3V04oCZOyBkaWQgeW91IG1lYW4g4oCYbGVfc3Vwdl90aW1lb3V04oCZPwogNzk5MiB8ICAgICAg ICAgY29ubi0+bGVfc3VwZXJ2aXNpb25fdGltZW91dCAhPSB0aW1lb3V0KSkKICAgICAgfCAgICAg ICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAgICAgfCAgICAgICAgICAgICAgIGxl X3N1cHZfdGltZW91dApuZXQvYmx1ZXRvb3RoL21nbXQuYzo3OTk0OjEwOiBlcnJvcjog4oCYaGNp X3BhcmFtc+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbik7IGRpZCB5 b3UgbWVhbiDigJhoY2lfcGFyYW3igJk/CiA3OTk0IHwgICAgICAgICAgaGNpX3BhcmFtcywgTlVM TCk7CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fgogICAgICB8ICAgICAgICAgIGhjaV9wYXJh bQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gbmV0L2JsdWV0b290aC9tZ210LmM6MzE6Cm5ldC9ibHVl dG9vdGgvbWdtdC5jOiBBdCB0b3AgbGV2ZWw6Ci4vaW5jbHVkZS9uZXQvYmx1ZXRvb3RoL2hjaV9j b3JlLmg6MTYxNTo0MDogZXJyb3I6IGV4cGVjdGVkIGRlY2xhcmF0aW9uIHNwZWNpZmllcnMgb3Ig 4oCYLi4u4oCZIGJlZm9yZSDigJgm4oCZIHRva2VuCiAxNjE1IHwgI2RlZmluZSBoY2lfZGV2X3Vu bG9jayhkKSBtdXRleF91bmxvY2soJmQtPmxvY2spCiAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgpuZXQvYmx1ZXRvb3RoL21nbXQuYzo3OTk5OjI6IG5vdGU6 IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhoY2lfZGV2X3VubG9ja+KAmQogNzk5OSB8ICBoY2lf ZGV2X3VubG9jayhoZGV2KTsKICAgICAgfCAgXn5+fn5+fn5+fn5+fn4KbmV0L2JsdWV0b290aC9t Z210LmM6ODAwMToyOiBlcnJvcjogZXhwZWN0ZWQgaWRlbnRpZmllciBvciDigJgo4oCZIGJlZm9y ZSDigJhyZXR1cm7igJkKIDgwMDEgfCAgcmV0dXJuIG1nbXRfY21kX2NvbXBsZXRlKHNrLCBoZGV2 LT5pZCwgTUdNVF9PUF9MT0FEX0NPTk5fUEFSQU0sIDAsCiAgICAgIHwgIF5+fn5+fgpuZXQvYmx1 ZXRvb3RoL21nbXQuYzo4MDAzOjE6IGVycm9yOiBleHBlY3RlZCBpZGVudGlmaWVyIG9yIOKAmCji gJkgYmVmb3JlIOKAmH3igJkgdG9rZW4KIDgwMDMgfCB9CiAgICAgIHwgXgpuZXQvYmx1ZXRvb3Ro L21nbXQuYzogSW4gZnVuY3Rpb24g4oCYbG9hZF9jb25uX3BhcmFt4oCZOgpuZXQvYmx1ZXRvb3Ro L21nbXQuYzo3OTk3OjI6IGVycm9yOiBjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5vbi12b2lkIGZ1 bmN0aW9uIFstV2Vycm9yPXJldHVybi10eXBlXQogNzk5NyB8ICB9CiAgICAgIHwgIF4KY2MxOiBz b21lIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2VbNF06ICoqKiBbc2NyaXB0 cy9NYWtlZmlsZS5idWlsZDoyNDQ6IG5ldC9ibHVldG9vdGgvbWdtdC5vXSBFcnJvciAxCm1ha2Vb M106ICoqKiBbc2NyaXB0cy9NYWtlZmlsZS5idWlsZDo0ODU6IG5ldC9ibHVldG9vdGhdIEVycm9y IDIKbWFrZVsyXTogKioqIFtzY3JpcHRzL01ha2VmaWxlLmJ1aWxkOjQ4NTogbmV0XSBFcnJvciAy Cm1ha2VbMl06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1ha2VbMV06ICoq KiBbL2dpdGh1Yi93b3Jrc3BhY2Uvc3JjL3NyYy9NYWtlZmlsZToxOTE5OiAuXSBFcnJvciAyCm1h a2U6ICoqKiBbTWFrZWZpbGU6MjQwOiBfX3N1Yi1tYWtlXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBUZXN0UnVubmVyU2V0dXAgLSBGQUlMCkRlc2M6IFNldHVw IGtlcm5lbCBhbmQgYmx1ZXogZm9yIHRlc3QtcnVubmVyCk91dHB1dDoKS2VybmVsOiAKbmV0L2Js dWV0b290aC9tZ210LmM6IEluIGZ1bmN0aW9uIOKAmGNvbm5fdXBkYXRlX3N5bmPigJk6Cm5ldC9i bHVldG9vdGgvbWdtdC5jOjc4ODE6MjogZXJyb3I6IOKAmGNvbm7igJkgdW5kZWNsYXJlZCAoZmly c3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiA3ODgxIHwgIGNvbm4gPSBoY2lfY29ubl9oYXNoX2xv b2t1cF9sZShoZGV2LCBwYXJhbXMtPmFkZHIuYmRhZGRyLAogICAgICB8ICBefn5+Cm5ldC9ibHVl dG9vdGgvbWdtdC5jOjc4ODE6Mjogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZpZXIgaXMg cmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4KbmV0L2Js dWV0b290aC9tZ210LmM6Nzg4MTo1MTogZXJyb3I6IOKAmGJkYWRkcl904oCZIHtha2Eg4oCYc3Ry dWN0IDxhbm9ueW1vdXM+4oCZfSBoYXMgbm8gbWVtYmVyIG5hbWVkIOKAmGJkYWRkcuKAmQogNzg4 MSB8ICBjb25uID0gaGNpX2Nvbm5faGFzaF9sb29rdXBfbGUoaGRldiwgcGFyYW1zLT5hZGRyLmJk YWRkciwKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KbmV0L2JsdWV0b290aC9tZ210LmM6Nzg4NjoyOiBlcnJvcjogZXhwZWN0ZWQg4oCY O+KAmSBiZWZvcmUg4oCYcmV0dXJu4oCZCiA3ODg2IHwgIHJldHVybiBoY2lfbGVfY29ubl91cGRh dGVfc3luYyhoZGV2LCBjb25uLCBwYXJhbXMpOwogICAgICB8ICBefn5+fn4KbmV0L2JsdWV0b290 aC9tZ210LmM6IEluIGZ1bmN0aW9uIOKAmGxvYWRfY29ubl9wYXJhbeKAmToKbmV0L2JsdWV0b290 aC9tZ210LmM6Nzk2MDoxMzogZXJyb3I6IOKAmHBhcmFtc+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1 c2UgaW4gdGhpcyBmdW5jdGlvbik7IGRpZCB5b3UgbWVhbiDigJhwYXJhbeKAmT8KIDc5NjAgfCAg IGlmICghaSAmJiBwYXJhbXMgPT0gMSkgewogICAgICB8ICAgICAgICAgICAgIF5+fn5+fgogICAg ICB8ICAgICAgICAgICAgIHBhcmFtCm5ldC9ibHVldG9vdGgvbWdtdC5jOjc5OTI6MTU6IGVycm9y OiDigJhzdHJ1Y3QgaGNpX2Nvbm7igJkgaGFzIG5vIG1lbWJlciBuYW1lZCDigJhsZV9zdXBlcnZp c2lvbl90aW1lb3V04oCZOyBkaWQgeW91IG1lYW4g4oCYbGVfc3Vwdl90aW1lb3V04oCZPwogNzk5 MiB8ICAgICAgICAgY29ubi0+bGVfc3VwZXJ2aXNpb25fdGltZW91dCAhPSB0aW1lb3V0KSkKICAg ICAgfCAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAgICAgfCAgICAgICAg ICAgICAgIGxlX3N1cHZfdGltZW91dApuZXQvYmx1ZXRvb3RoL21nbXQuYzo3OTk0OjEwOiBlcnJv cjog4oCYaGNpX3BhcmFtc+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlv bik7IGRpZCB5b3UgbWVhbiDigJhoY2lfcGFyYW3igJk/CiA3OTk0IHwgICAgICAgICAgaGNpX3Bh cmFtcywgTlVMTCk7CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fgogICAgICB8ICAgICAgICAg IGhjaV9wYXJhbQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gbmV0L2JsdWV0b290aC9tZ210LmM6MzE6 Cm5ldC9ibHVldG9vdGgvbWdtdC5jOiBBdCB0b3AgbGV2ZWw6Ci4vaW5jbHVkZS9uZXQvYmx1ZXRv b3RoL2hjaV9jb3JlLmg6MTYxNTo0MDogZXJyb3I6IGV4cGVjdGVkIGRlY2xhcmF0aW9uIHNwZWNp ZmllcnMgb3Ig4oCYLi4u4oCZIGJlZm9yZSDigJgm4oCZIHRva2VuCiAxNjE1IHwgI2RlZmluZSBo Y2lfZGV2X3VubG9jayhkKSBtdXRleF91bmxvY2soJmQtPmxvY2spCiAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpuZXQvYmx1ZXRvb3RoL21nbXQuYzo3OTk5 OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhoY2lfZGV2X3VubG9ja+KAmQogNzk5 OSB8ICBoY2lfZGV2X3VubG9jayhoZGV2KTsKICAgICAgfCAgXn5+fn5+fn5+fn5+fn4KbmV0L2Js dWV0b290aC9tZ210LmM6ODAwMToyOiBlcnJvcjogZXhwZWN0ZWQgaWRlbnRpZmllciBvciDigJgo 4oCZIGJlZm9yZSDigJhyZXR1cm7igJkKIDgwMDEgfCAgcmV0dXJuIG1nbXRfY21kX2NvbXBsZXRl KHNrLCBoZGV2LT5pZCwgTUdNVF9PUF9MT0FEX0NPTk5fUEFSQU0sIDAsCiAgICAgIHwgIF5+fn5+ fgpuZXQvYmx1ZXRvb3RoL21nbXQuYzo4MDAzOjE6IGVycm9yOiBleHBlY3RlZCBpZGVudGlmaWVy IG9yIOKAmCjigJkgYmVmb3JlIOKAmH3igJkgdG9rZW4KIDgwMDMgfCB9CiAgICAgIHwgXgpuZXQv Ymx1ZXRvb3RoL21nbXQuYzogSW4gZnVuY3Rpb24g4oCYbG9hZF9jb25uX3BhcmFt4oCZOgpuZXQv Ymx1ZXRvb3RoL21nbXQuYzo3OTk3OjI6IGVycm9yOiBjb250cm9sIHJlYWNoZXMgZW5kIG9mIG5v bi12b2lkIGZ1bmN0aW9uIFstV2Vycm9yPXJldHVybi10eXBlXQogNzk5NyB8ICB9CiAgICAgIHwg IF4KY2MxOiBzb21lIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2VbNF06ICoq KiBbc2NyaXB0cy9NYWtlZmlsZS5idWlsZDoyNDQ6IG5ldC9ibHVldG9vdGgvbWdtdC5vXSBFcnJv ciAxCm1ha2VbNF06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1ha2VbM106 ICoqKiBbc2NyaXB0cy9NYWtlZmlsZS5idWlsZDo0ODU6IG5ldC9ibHVldG9vdGhdIEVycm9yIDIK bWFrZVszXTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4uLi4KbWFrZVsyXTogKioq IFtzY3JpcHRzL01ha2VmaWxlLmJ1aWxkOjQ4NTogbmV0XSBFcnJvciAyCm1ha2VbMl06ICoqKiBX YWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1ha2VbMV06ICoqKiBbL2dpdGh1Yi93b3Jr c3BhY2Uvc3JjL3NyYy9NYWtlZmlsZToxOTE5OiAuXSBFcnJvciAyCm1ha2U6ICoqKiBbTWFrZWZp bGU6MjQwOiBfX3N1Yi1tYWtlXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IwpUZXN0OiBUZXN0UnVubmVyX2wyY2FwLXRlc3RlciAtIEZBSUwKRGVzYzogUnVuIGwyY2FwLXRl c3RlciB3aXRoIHRlc3QtcnVubmVyCk91dHB1dDoKCkNvdWxkIG5vdCBhY2Nlc3MgS1ZNIGtlcm5l bCBtb2R1bGU6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKcWVtdS1zeXN0ZW0teDg2XzY0OiBm YWlsZWQgdG8gaW5pdGlhbGl6ZSBLVk06IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKcWVtdS1z eXN0ZW0teDg2XzY0OiBCYWNrIHRvIHRjZyBhY2NlbGVyYXRvcgpxZW11OiBjb3VsZCBub3Qgb3Bl biBrZXJuZWwgZmlsZSAnL2dpdGh1Yi93b3Jrc3BhY2Uvc3JjL3NyYy9hcmNoL3g4Ni9ib290L2J6 SW1hZ2UnOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwpUZXN0OiBUZXN0UnVubmVyX2lzby10ZXN0ZXIgLSBGQUlMCkRlc2M6IFJ1biBpc28t dGVzdGVyIHdpdGggdGVzdC1ydW5uZXIKT3V0cHV0OgoKQ291bGQgbm90IGFjY2VzcyBLVk0ga2Vy bmVsIG1vZHVsZTogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpxZW11LXN5c3RlbS14ODZfNjQ6 IGZhaWxlZCB0byBpbml0aWFsaXplIEtWTTogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpxZW11 LXN5c3RlbS14ODZfNjQ6IEJhY2sgdG8gdGNnIGFjY2VsZXJhdG9yCnFlbXU6IGNvdWxkIG5vdCBv cGVuIGtlcm5lbCBmaWxlICcvZ2l0aHViL3dvcmtzcGFjZS9zcmMvc3JjL2FyY2gveDg2L2Jvb3Qv YnpJbWFnZSc6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjClRlc3Q6IFRlc3RSdW5uZXJfYm5lcC10ZXN0ZXIgLSBGQUlMCkRlc2M6IFJ1biBi bmVwLXRlc3RlciB3aXRoIHRlc3QtcnVubmVyCk91dHB1dDoKCkNvdWxkIG5vdCBhY2Nlc3MgS1ZN IGtlcm5lbCBtb2R1bGU6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKcWVtdS1zeXN0ZW0teDg2 XzY0OiBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBLVk06IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkK cWVtdS1zeXN0ZW0teDg2XzY0OiBCYWNrIHRvIHRjZyBhY2NlbGVyYXRvcgpxZW11OiBjb3VsZCBu b3Qgb3BlbiBrZXJuZWwgZmlsZSAnL2dpdGh1Yi93b3Jrc3BhY2Uvc3JjL3NyYy9hcmNoL3g4Ni9i b290L2J6SW1hZ2UnOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIwpUZXN0OiBUZXN0UnVubmVyX21nbXQtdGVzdGVyIC0gRkFJTApEZXNjOiBS dW4gbWdtdC10ZXN0ZXIgd2l0aCB0ZXN0LXJ1bm5lcgpPdXRwdXQ6CgpDb3VsZCBub3QgYWNjZXNz IEtWTSBrZXJuZWwgbW9kdWxlOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CnFlbXUtc3lzdGVt LXg4Nl82NDogZmFpbGVkIHRvIGluaXRpYWxpemUgS1ZNOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0 b3J5CnFlbXUtc3lzdGVtLXg4Nl82NDogQmFjayB0byB0Y2cgYWNjZWxlcmF0b3IKcWVtdTogY291 bGQgbm90IG9wZW4ga2VybmVsIGZpbGUgJy9naXRodWIvd29ya3NwYWNlL3NyYy9zcmMvYXJjaC94 ODYvYm9vdC9iekltYWdlJzogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQojIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogVGVzdFJ1bm5lcl9yZmNvbW0tdGVzdGVyIC0gRkFJTApE ZXNjOiBSdW4gcmZjb21tLXRlc3RlciB3aXRoIHRlc3QtcnVubmVyCk91dHB1dDoKCkNvdWxkIG5v dCBhY2Nlc3MgS1ZNIGtlcm5lbCBtb2R1bGU6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKcWVt dS1zeXN0ZW0teDg2XzY0OiBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBLVk06IE5vIHN1Y2ggZmlsZSBv ciBkaXJlY3RvcnkKcWVtdS1zeXN0ZW0teDg2XzY0OiBCYWNrIHRvIHRjZyBhY2NlbGVyYXRvcgpx ZW11OiBjb3VsZCBub3Qgb3BlbiBrZXJuZWwgZmlsZSAnL2dpdGh1Yi93b3Jrc3BhY2Uvc3JjL3Ny Yy9hcmNoL3g4Ni9ib290L2J6SW1hZ2UnOiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5CiMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBUZXN0UnVubmVyX3Njby10ZXN0ZXIgLSBG QUlMCkRlc2M6IFJ1biBzY28tdGVzdGVyIHdpdGggdGVzdC1ydW5uZXIKT3V0cHV0OgoKQ291bGQg bm90IGFjY2VzcyBLVk0ga2VybmVsIG1vZHVsZTogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpx ZW11LXN5c3RlbS14ODZfNjQ6IGZhaWxlZCB0byBpbml0aWFsaXplIEtWTTogTm8gc3VjaCBmaWxl IG9yIGRpcmVjdG9yeQpxZW11LXN5c3RlbS14ODZfNjQ6IEJhY2sgdG8gdGNnIGFjY2VsZXJhdG9y CnFlbXU6IGNvdWxkIG5vdCBvcGVuIGtlcm5lbCBmaWxlICcvZ2l0aHViL3dvcmtzcGFjZS9zcmMv c3JjL2FyY2gveDg2L2Jvb3QvYnpJbWFnZSc6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IFRlc3RSdW5uZXJfaW9jdGwtdGVzdGVy IC0gRkFJTApEZXNjOiBSdW4gaW9jdGwtdGVzdGVyIHdpdGggdGVzdC1ydW5uZXIKT3V0cHV0OgoK Q291bGQgbm90IGFjY2VzcyBLVk0ga2VybmVsIG1vZHVsZTogTm8gc3VjaCBmaWxlIG9yIGRpcmVj dG9yeQpxZW11LXN5c3RlbS14ODZfNjQ6IGZhaWxlZCB0byBpbml0aWFsaXplIEtWTTogTm8gc3Vj aCBmaWxlIG9yIGRpcmVjdG9yeQpxZW11LXN5c3RlbS14ODZfNjQ6IEJhY2sgdG8gdGNnIGFjY2Vs ZXJhdG9yCnFlbXU6IGNvdWxkIG5vdCBvcGVuIGtlcm5lbCBmaWxlICcvZ2l0aHViL3dvcmtzcGFj ZS9zcmMvc3JjL2FyY2gveDg2L2Jvb3QvYnpJbWFnZSc6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3Rv cnkKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IFRlc3RSdW5uZXJfbWVzaC10 ZXN0ZXIgLSBGQUlMCkRlc2M6IFJ1biBtZXNoLXRlc3RlciB3aXRoIHRlc3QtcnVubmVyCk91dHB1 dDoKCkNvdWxkIG5vdCBhY2Nlc3MgS1ZNIGtlcm5lbCBtb2R1bGU6IE5vIHN1Y2ggZmlsZSBvciBk aXJlY3RvcnkKcWVtdS1zeXN0ZW0teDg2XzY0OiBmYWlsZWQgdG8gaW5pdGlhbGl6ZSBLVk06IE5v IHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKcWVtdS1zeXN0ZW0teDg2XzY0OiBCYWNrIHRvIHRjZyBh Y2NlbGVyYXRvcgpxZW11OiBjb3VsZCBub3Qgb3BlbiBrZXJuZWwgZmlsZSAnL2dpdGh1Yi93b3Jr c3BhY2Uvc3JjL3NyYy9hcmNoL3g4Ni9ib290L2J6SW1hZ2UnOiBObyBzdWNoIGZpbGUgb3IgZGly ZWN0b3J5CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBUZXN0UnVubmVyX3Nt cC10ZXN0ZXIgLSBGQUlMCkRlc2M6IFJ1biBzbXAtdGVzdGVyIHdpdGggdGVzdC1ydW5uZXIKT3V0 cHV0OgoKQ291bGQgbm90IGFjY2VzcyBLVk0ga2VybmVsIG1vZHVsZTogTm8gc3VjaCBmaWxlIG9y IGRpcmVjdG9yeQpxZW11LXN5c3RlbS14ODZfNjQ6IGZhaWxlZCB0byBpbml0aWFsaXplIEtWTTog Tm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpxZW11LXN5c3RlbS14ODZfNjQ6IEJhY2sgdG8gdGNn IGFjY2VsZXJhdG9yCnFlbXU6IGNvdWxkIG5vdCBvcGVuIGtlcm5lbCBmaWxlICcvZ2l0aHViL3dv cmtzcGFjZS9zcmMvc3JjL2FyY2gveDg2L2Jvb3QvYnpJbWFnZSc6IE5vIHN1Y2ggZmlsZSBvciBk aXJlY3RvcnkKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6IFRlc3RSdW5uZXJf dXNlcmNoYW4tdGVzdGVyIC0gRkFJTApEZXNjOiBSdW4gdXNlcmNoYW4tdGVzdGVyIHdpdGggdGVz dC1ydW5uZXIKT3V0cHV0OgoKQ291bGQgbm90IGFjY2VzcyBLVk0ga2VybmVsIG1vZHVsZTogTm8g c3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpxZW11LXN5c3RlbS14ODZfNjQ6IGZhaWxlZCB0byBpbml0 aWFsaXplIEtWTTogTm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQpxZW11LXN5c3RlbS14ODZfNjQ6 IEJhY2sgdG8gdGNnIGFjY2VsZXJhdG9yCnFlbXU6IGNvdWxkIG5vdCBvcGVuIGtlcm5lbCBmaWxl ICcvZ2l0aHViL3dvcmtzcGFjZS9zcmMvc3JjL2FyY2gveDg2L2Jvb3QvYnpJbWFnZSc6IE5vIHN1 Y2ggZmlsZSBvciBkaXJlY3RvcnkKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjClRlc3Q6 IEluY3JlbWVudGFsQnVpbGQgLSBGQUlMCkRlc2M6IEluY3JlbWVudGFsIGJ1aWxkIHdpdGggdGhl IHBhdGNoZXMgaW4gdGhlIHNlcmllcwpPdXRwdXQ6CltSRkMsdjFdIEJsdWV0b290aDogTUdNVDog TWFrZSBNR01UX09QX0xPQURfQ09OTl9QQVJBTSB1cGRhdGUgZXhpc3RpbmcgY29ubmVjdGlvbgoK bmV0L2JsdWV0b290aC9tZ210LmM6IEluIGZ1bmN0aW9uIOKAmGNvbm5fdXBkYXRlX3N5bmPigJk6 Cm5ldC9ibHVldG9vdGgvbWdtdC5jOjc4ODE6MjogZXJyb3I6IOKAmGNvbm7igJkgdW5kZWNsYXJl ZCAoZmlyc3QgdXNlIGluIHRoaXMgZnVuY3Rpb24pCiA3ODgxIHwgIGNvbm4gPSBoY2lfY29ubl9o YXNoX2xvb2t1cF9sZShoZGV2LCBwYXJhbXMtPmFkZHIuYmRhZGRyLAogICAgICB8ICBefn5+Cm5l dC9ibHVldG9vdGgvbWdtdC5jOjc4ODE6Mjogbm90ZTogZWFjaCB1bmRlY2xhcmVkIGlkZW50aWZp ZXIgaXMgcmVwb3J0ZWQgb25seSBvbmNlIGZvciBlYWNoIGZ1bmN0aW9uIGl0IGFwcGVhcnMgaW4K bmV0L2JsdWV0b290aC9tZ210LmM6Nzg4MTo1MTogZXJyb3I6IOKAmGJkYWRkcl904oCZIHtha2Eg 4oCYc3RydWN0IDxhbm9ueW1vdXM+4oCZfSBoYXMgbm8gbWVtYmVyIG5hbWVkIOKAmGJkYWRkcuKA mQogNzg4MSB8ICBjb25uID0gaGNpX2Nvbm5faGFzaF9sb29rdXBfbGUoaGRldiwgcGFyYW1zLT5h ZGRyLmJkYWRkciwKICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4KbmV0L2JsdWV0b290aC9tZ210LmM6Nzg4NjoyOiBlcnJvcjogZXhwZWN0 ZWQg4oCYO+KAmSBiZWZvcmUg4oCYcmV0dXJu4oCZCiA3ODg2IHwgIHJldHVybiBoY2lfbGVfY29u bl91cGRhdGVfc3luYyhoZGV2LCBjb25uLCBwYXJhbXMpOwogICAgICB8ICBefn5+fn4KbmV0L2Js dWV0b290aC9tZ210LmM6IEluIGZ1bmN0aW9uIOKAmGxvYWRfY29ubl9wYXJhbeKAmToKbmV0L2Js dWV0b290aC9tZ210LmM6Nzk2MDoxMzogZXJyb3I6IOKAmHBhcmFtc+KAmSB1bmRlY2xhcmVkIChm aXJzdCB1c2UgaW4gdGhpcyBmdW5jdGlvbik7IGRpZCB5b3UgbWVhbiDigJhwYXJhbeKAmT8KIDc5 NjAgfCAgIGlmICghaSAmJiBwYXJhbXMgPT0gMSkgewogICAgICB8ICAgICAgICAgICAgIF5+fn5+ fgogICAgICB8ICAgICAgICAgICAgIHBhcmFtCm5ldC9ibHVldG9vdGgvbWdtdC5jOjc5OTI6MTU6 IGVycm9yOiDigJhzdHJ1Y3QgaGNpX2Nvbm7igJkgaGFzIG5vIG1lbWJlciBuYW1lZCDigJhsZV9z dXBlcnZpc2lvbl90aW1lb3V04oCZOyBkaWQgeW91IG1lYW4g4oCYbGVfc3Vwdl90aW1lb3V04oCZ PwogNzk5MiB8ICAgICAgICAgY29ubi0+bGVfc3VwZXJ2aXNpb25fdGltZW91dCAhPSB0aW1lb3V0 KSkKICAgICAgfCAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAgICAgfCAg ICAgICAgICAgICAgIGxlX3N1cHZfdGltZW91dApuZXQvYmx1ZXRvb3RoL21nbXQuYzo3OTk0OjEw OiBlcnJvcjog4oCYaGNpX3BhcmFtc+KAmSB1bmRlY2xhcmVkIChmaXJzdCB1c2UgaW4gdGhpcyBm dW5jdGlvbik7IGRpZCB5b3UgbWVhbiDigJhoY2lfcGFyYW3igJk/CiA3OTk0IHwgICAgICAgICAg aGNpX3BhcmFtcywgTlVMTCk7CiAgICAgIHwgICAgICAgICAgXn5+fn5+fn5+fgogICAgICB8ICAg ICAgICAgIGhjaV9wYXJhbQpJbiBmaWxlIGluY2x1ZGVkIGZyb20gbmV0L2JsdWV0b290aC9tZ210 LmM6MzE6Cm5ldC9ibHVldG9vdGgvbWdtdC5jOiBBdCB0b3AgbGV2ZWw6Ci4vaW5jbHVkZS9uZXQv Ymx1ZXRvb3RoL2hjaV9jb3JlLmg6MTYxNTo0MDogZXJyb3I6IGV4cGVjdGVkIGRlY2xhcmF0aW9u IHNwZWNpZmllcnMgb3Ig4oCYLi4u4oCZIGJlZm9yZSDigJgm4oCZIHRva2VuCiAxNjE1IHwgI2Rl ZmluZSBoY2lfZGV2X3VubG9jayhkKSBtdXRleF91bmxvY2soJmQtPmxvY2spCiAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgpuZXQvYmx1ZXRvb3RoL21nbXQu Yzo3OTk5OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyDigJhoY2lfZGV2X3VubG9ja+KA mQogNzk5OSB8ICBoY2lfZGV2X3VubG9jayhoZGV2KTsKICAgICAgfCAgXn5+fn5+fn5+fn5+fn4K bmV0L2JsdWV0b290aC9tZ210LmM6ODAwMToyOiBlcnJvcjogZXhwZWN0ZWQgaWRlbnRpZmllciBv ciDigJgo4oCZIGJlZm9yZSDigJhyZXR1cm7igJkKIDgwMDEgfCAgcmV0dXJuIG1nbXRfY21kX2Nv bXBsZXRlKHNrLCBoZGV2LT5pZCwgTUdNVF9PUF9MT0FEX0NPTk5fUEFSQU0sIDAsCiAgICAgIHwg IF5+fn5+fgpuZXQvYmx1ZXRvb3RoL21nbXQuYzo4MDAzOjE6IGVycm9yOiBleHBlY3RlZCBpZGVu dGlmaWVyIG9yIOKAmCjigJkgYmVmb3JlIOKAmH3igJkgdG9rZW4KIDgwMDMgfCB9CiAgICAgIHwg XgpuZXQvYmx1ZXRvb3RoL21nbXQuYzogSW4gZnVuY3Rpb24g4oCYbG9hZF9jb25uX3BhcmFt4oCZ OgpuZXQvYmx1ZXRvb3RoL21nbXQuYzo3OTk3OjI6IGVycm9yOiBjb250cm9sIHJlYWNoZXMgZW5k IG9mIG5vbi12b2lkIGZ1bmN0aW9uIFstV2Vycm9yPXJldHVybi10eXBlXQogNzk5NyB8ICB9CiAg ICAgIHwgIF4KY2MxOiBzb21lIHdhcm5pbmdzIGJlaW5nIHRyZWF0ZWQgYXMgZXJyb3JzCm1ha2Vb NF06ICoqKiBbc2NyaXB0cy9NYWtlZmlsZS5idWlsZDoyNDQ6IG5ldC9ibHVldG9vdGgvbWdtdC5v XSBFcnJvciAxCm1ha2VbM106ICoqKiBbc2NyaXB0cy9NYWtlZmlsZS5idWlsZDo0ODU6IG5ldC9i bHVldG9vdGhdIEVycm9yIDIKbWFrZVsyXTogKioqIFtzY3JpcHRzL01ha2VmaWxlLmJ1aWxkOjQ4 NTogbmV0XSBFcnJvciAyCm1ha2VbMl06ICoqKiBXYWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMu Li4uCm1ha2VbMV06ICoqKiBbL2dpdGh1Yi93b3Jrc3BhY2Uvc3JjL3NyYy9NYWtlZmlsZToxOTE5 OiAuXSBFcnJvciAyCm1ha2U6ICoqKiBbTWFrZWZpbGU6MjQwOiBfX3N1Yi1tYWtlXSBFcnJvciAy CgoKLS0tClJlZ2FyZHMsCkxpbnV4IEJsdWV0b290aAoK --===============7697056603400269836==--