From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id CNHyJDY8hWEQRwAAgWs5BA (envelope-from ) for ; Fri, 05 Nov 2021 15:14:14 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id wEamIDY8hWGRNgAAB5/wlQ (envelope-from ) for ; Fri, 05 Nov 2021 14:14:14 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id E33BB1C61 for ; Fri, 5 Nov 2021 15:14:13 +0100 (CET) Received: from localhost ([::1]:52976 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mizyv-0001N1-0Q for larch@yhetil.org; Fri, 05 Nov 2021 10:14:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:42660) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mixYd-0004G1-Vx for guix-devel@gnu.org; Fri, 05 Nov 2021 07:39:01 -0400 Received: from smtprelay07.ispgateway.de ([134.119.228.97]:59335) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mixYb-0000jm-SV for guix-devel@gnu.org; Fri, 05 Nov 2021 07:38:55 -0400 Received: from [93.195.162.153] (helo=motorball) by smtprelay07.ispgateway.de with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1mixXV-0001IU-M7 for guix-devel@gnu.org; Fri, 05 Nov 2021 12:37:45 +0100 From: Simon Streit To: guix-devel@gnu.org Subject: Announcing Samba Service for Guix Gcc: nnfolder+archive:sent.2021-11 Date: Fri, 05 Nov 2021 12:38:48 +0100 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Df-Sender: bGlzdHNAbmV0cGFuaWMub3Jn Received-SPF: none client-ip=134.119.228.97; envelope-from=simon@netpanic.org; helo=smtprelay07.ispgateway.de X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Fri, 05 Nov 2021 10:13:58 -0400 X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1636121654; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:list-id:list-help:list-unsubscribe: list-subscribe:list-post; bh=lbseWtQ+2OVesW/t5S7bmFEo5ZORIRQ1i0B6ZrHOqXo=; b=RG9cOSDgN5eFph7QxkQJ36iTgbnzQsFguodOg9E6nsU+yW/D4IOnA4QU3jKmgxrtFu9mX0 5bubqUpelxTbzax5jy/0Zs9BeY/yH/azLCLDbWomUfBDthqC6WesGNOFA9TLkroj0UJOAa YsxDZFJeuXLYD4gi0800ZUzcmpFyukyNlami5eNlAoFQrxSocj5S8uFX5929medwftyQR2 ++ioa+M9Ev+33OoQjBOHcO/mFr9Qz0FfGjGXyOThRyLZru5d3Nv9qmHwpQqIJY/Aat6onB kxSbtk47tjQ/ZjytFYYyWiLp3o0qm7z9Fet84rL9QkDfEbbpvnF7lInMABsRwg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1636121654; a=rsa-sha256; cv=none; b=WbJ1F6TWgkGgkMeoaUAkgD8SC9UZq4kffOvSILVcofKeOMMzetr+gd2T756+iWtM9DTEBq GdIknHn1xrU7xUDsTE51OkMZwtw8Yfy7UPDZs0FPj0dgZtXoHv6sG8aAx/70HHajayWQKS kY+jSQpOOrCrgDpZEnwUTt4FG2rdSEA3WcC11er2POp4sYNP8DMR+s416cDEMCLiXyFqSb 32Mcf1EFfTtkIHyneu6SprQ44NNwZ4uY7onWDdcmppGan7GzIK9475qNlS/ud6Iknf6KRD XGs+V3ujY00gM87za8FXbGEIkJNHDLuxVXWydFeokBV5rst2ra3XQO1CBeI9sA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Spam-Score: -2.42 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Migadu-Queue-Id: E33BB1C61 X-Spam-Score: -2.42 X-Migadu-Scanner: scn0.migadu.com X-TUID: FBm1NPh7QioR --=-=-= Content-Type: text/plain Hello! I am happy to announce the development of a Samba service for Guix. Currently I am attending a technical college for informatics where I am working on my final thesis that is due to be completed by February next year. Hence I have already proposed to develop and document the process extending Guix. So far I have managed to write a service that can control nmbd, smbd and winbindd with default configuration options provided by [1]. I have attached said service. It is not intended for production use yet, and needs to be extended to make more use of Samba's capabilities. The daemon samba itself has not been touched yet since it expects to be a DC. It would need extra services too, especially kerberos, and extensive scripting to run. Printing has not been looked at either. Documentation for info is missing. I am not sure if the configuration system I butchered from other service definitions is worthwhile or could be done in an entirely different way. Samba's configuration system is extensive and flexible. There are some extra package definitions I want to write too. I have not decided yet how far to go or how much of Samba should be implemented as a service. To implement the complete Samba suite would exceed the scope of my assignment and will need proper testing until it can be provided in Guix. Hence I would like to implement sections of it in such a way that can easily be extended at a later point, should there be a need for it. It is a little over a year already since I have installed my first Guix system. So far I have only been randomly handing in patches every now and then with various success for new package definitions while trying to learn more Scheme. Preparing this service has been a lot more educational than writing packages so far. Kind regards, Simon [1] https://git.samba.org/samba.git/?p=samba.git;a=blob_plain;f=examples/smb.conf.default;hb=HEAD --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=samba.scm Content-Transfer-Encoding: base64 Ozs7IEdOVSBHdWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCjs7 OyBDb3B5cmlnaHQgwqkgMjAyMSBTaW1vbiBTdHJlaXQgPHNpbW9uQG5ldHBhbmljLm9yZz4KOzs7 Cjs7OyBUaGlzIGZpbGUgaXMgTk9UIHBhcnQgb2YgR05VIEd1aXguCjs7Owo7OzsgR05VIEd1aXgg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBp dAo7OzsgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkKOzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdAo7OzsgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXJzaW9uLgo7OzsKOzs7IEdOVSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAo7OzsgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo7OzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQo7OzsgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KOzs7Cjs7OyBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQo7OzsgYWxv bmcgd2l0aCBHTlUgR3VpeC4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5z ZXMvPi4KCihkZWZpbmUtbW9kdWxlIChzZXJ2aWNlcyBzYW1iYSkKICAjOnVzZS1tb2R1bGUgKGdu dSBzZXJ2aWNlcykKICAjOnVzZS1tb2R1bGUgKGdudSBzZXJ2aWNlcyBjb25maWd1cmF0aW9uKQog ICM6dXNlLW1vZHVsZSAoZ251IHNlcnZpY2VzIHNoZXBoZXJkKQogICM6dXNlLW1vZHVsZSAoZ251 IHNlcnZpY2VzIGJhc2UpCiAgIzp1c2UtbW9kdWxlIChnbnUgc3lzdGVtIHNoYWRvdykKCiAgIzp1 c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgYWRtaW4pCiAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2Fn ZXMgc2FtYmEpCgogICM6dXNlLW1vZHVsZSAoZ3VpeCBnZXhwKQogICM6dXNlLW1vZHVsZSAoZ3Vp eCBwYWNrYWdlcykKICAjOnVzZS1tb2R1bGUgKGd1aXggbW9kdWxlcykKICAjOnVzZS1tb2R1bGUg KGd1aXggcmVjb3JkcykKCiAgIzp1c2UtbW9kdWxlIChpY2UtOSBmb3JtYXQpCiAgIzp1c2UtbW9k dWxlIChpY2UtOSBtYXRjaCkKICAjOnVzZS1tb2R1bGUgKGljZS05IHRleHR1YWwtcG9ydHMpCiAg Izp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkKICAjOmV4cG9ydCAoc2FtYmEtc2VydmljZQogICAg ICAgICAgICBzYW1iYS1zZXJ2aWNlLXR5cGUKICAgICAgICAgICAgc2FtYmEtY29uZmlndXJhdGlv bgogICAgICAgICAgICBzYW1iYS1jb25maWd1cmF0aW9uPwogICAgICAgICAgICBzYW1iYS1jb25m aWd1cmF0aW9uLXBhY2thZ2UKICAgICAgICAgICAgc2FtYmEtY29uZmlndXJhdGlvbi1jb25maWct ZmlsZQogICAgICAgICAgICBzYW1iYS1jb25maWd1cmF0aW9uLWVuYWJsZS1zYW1iYT8KICAgICAg ICAgICAgc2FtYmEtY29uZmlndXJhdGlvbi1lbmFibGUtc21iZD8KICAgICAgICAgICAgc2FtYmEt Y29uZmlndXJhdGlvbi1lbmFibGUtbm1iZD8KICAgICAgICAgICAgc2FtYmEtY29uZmlndXJhdGlv bi1lbmFibGUtd2luYmluZGQ/CiAgICAgICAgICAgIHNhbWJhLWNvbmZpZ3VyYXRpb24tZ2xvYmFs LWV4dHJhLWNvbmZpZwogICAgICAgICAgICBzYW1iYS1jb25maWd1cmF0aW9uLXdvcmtncm91cAog ICAgICAgICAgICBzYW1iYS1jb25maWd1cmF0aW9uLXNlcnZlci1zdHJpbmcKICAgICAgICAgICAg c2FtYmEtY29uZmlndXJhdGlvbi1zZXJ2ZXItcm9sZQogICAgICAgICAgICBzYW1iYS1jb25maWd1 cmF0aW9uLWJpbmQtaW50ZXJmYWNlcy1vbmx5PwogICAgICAgICAgICBzYW1iYS1jb25maWd1cmF0 aW9uLWludGVyZmFjZXMKICAgICAgICAgICAgc2FtYmEtY29uZmlndXJhdGlvbi1ob3N0cy1hbGxv dwogICAgICAgICAgICBzYW1iYS1jb25maWd1cmF0aW9uLWd1ZXN0LWFjY291bnQKICAgICAgICAg ICAgc2FtYmEtY29uZmlndXJhdGlvbi1sb2ctZmlsZQogICAgICAgICAgICBzYW1iYS1jb25maWd1 cmF0aW9uLWxvZ2dpbgogICAgICAgICAgICBzYW1iYS1jb25maWd1cmF0aW9uLXJlYWxtCiAgICAg ICAgICAgIHNhbWJhLWNvbmZpZ3VyYXRpb24tcGFzc2RiLWJhY2tlbmQKICAgICAgICAgICAgc2Ft YmEtY29uZmlndXJhdGlvbi1pbmNsdWRlLWNvbmZpZwogICAgICAgICAgICBzYW1iYS1jb25maWd1 cmF0aW9uLWxvZ29uLXBhdGgKICAgICAgICAgICAgc2FtYmEtY29uZmlndXJhdGlvbi13aW5zLXN1 cHBvcnQ/CiAgICAgICAgICAgIHNhbWJhLWNvbmZpZ3VyYXRpb24td2lucy1zZXJ2ZXIKICAgICAg ICAgICAgc2FtYmEtY29uZmlndXJhdGlvbi13aW5zLXByb3h5PwogICAgICAgICAgICBzYW1iYS1j b25maWd1cmF0aW9uLWRucy1wcm94eT8KCiAgICAgICAgICAgIDs7IHRlbXAhCiAgICAgICAgICAg IHNhbWJhLWNvbmZpZ3VyYXRpb24tZGVmYXVsdC1jb25maWctZmlsZQogICAgICAgICAgICApKQoK Ozs7IENvbW1lbnRhcnk6Cjs7Owo7OzsgV2luZG93cyBuZXR3b3JrIHNlcnZpY2VzLgo7OzsKOzs7 IENvZGU6CgooZGVmaW5lLXJlY29yZC10eXBlKiA8c2FtYmEtY29uZmlndXJhdGlvbj4KICBzYW1i YS1jb25maWd1cmF0aW9uCiAgbWFrZS1zYW1iYS1jb25maWd1cmF0aW9uCiAgc2FtYmEtY29uZmln dXJhdGlvbj8KCiAgKHBhY2thZ2UgICAgICAgICAgICAgIHNhbWJhLWNvbmZpZ3VyYXRpb24tcGFj a2FnZQogICAgICAgICAgICAgICAgICAgICAgICAoZGVmYXVsdCBzYW1iYSkpCiAgKGNvbmZpZy1m aWxlICAgICAgICAgIHNhbWJhLWNvbmZpZ3VyYXRpb24tY29uZmlnLWZpbGUKICAgICAgICAgICAg ICAgICAgICAgICAgKGRlZmF1bHQgI2YpKQogIChlbmFibGUtc2FtYmE/ICAgICAgICBzYW1iYS1j b25maWd1cmF0aW9uLWVuYWJsZS1zYW1iYT8KICAgICAgICAgICAgICAgICAgICAgICAgKGRlZmF1 bHQgI2YpKQogIChlbmFibGUtc21iZD8gICAgICAgICBzYW1iYS1jb25maWd1cmF0aW9uLWVuYWJs ZS1zbWJkPwogICAgICAgICAgICAgICAgICAgICAgICAoZGVmYXVsdCAjdCkpCiAgKGVuYWJsZS1u bWJkPyAgICAgICAgIHNhbWJhLWNvbmZpZ3VyYXRpb24tZW5hYmxlLW5tYmQ/CiAgICAgICAgICAg ICAgICAgICAgICAgIChkZWZhdWx0ICN0KSkKICAoZW5hYmxlLXdpbmJpbmRkPyAgICAgc2FtYmEt Y29uZmlndXJhdGlvbi1lbmFibGUtd2luYmluZGQ/CiAgICAgICAgICAgICAgICAgICAgICAgIChk ZWZhdWx0ICNmKSkKCiAgOzsgRnJvbSBoZXJlIG9uIGFueXRoaW5nIGdvZXMgdG8gc21iLmNvbmYK CiAgOzsgVGhpcyBsaW5lIHdpbGwgYmUgcHV0IGF0IHRoZSBlbmQgb2YgW2dsb2JhbF0uCiAgKGds b2JhbC1leHRyYS1jb25maWcgICBzYW1iYS1jb25maWd1cmF0aW9uLWdsb2JhbC1leHRyYS1jb25m aWcKICAgICAgICAgICAgICAgICAgICAgICAgIChkZWZhdWx0ICNmKSkKICAod29ya2dyb3VwICAg ICAgICAgICAgIHNhbWJhLWNvbmZpZ3VyYXRpb24td29ya2dyb3VwCiAgICAgICAgICAgICAgICAg ICAgICAgICAoZGVmYXVsdCAiV09SS0dST1VQIikpCiAgKHNlcnZlci1zdHJpbmcgICAgICAgICBz YW1iYS1jb25maWd1cmF0aW9uLXNlcnZlci1zdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAg IChkZWZhdWx0ICJTYW1iYSBTZXJ2ZXIiKSkKICAoc2VydmVyLXJvbGUgICAgICAgICAgIHNhbWJh LWNvbmZpZ3VyYXRpb24tc2VydmVyLXJvbGUKICAgICAgICAgICAgICAgICAgICAgICAgIChkZWZh dWx0ICJzdGFuZGFsb25lIHNlcnZlciIpKQogIChiaW5kLWludGVyZmFjZXMtb25seT8gc2FtYmEt Y29uZmlndXJhdGlvbi1iaW5kLWludGVyZmFjZXMtb25seT8KICAgICAgICAgICAgICAgICAgICAg ICAgIChkZWZhdWx0ICNmKSkKICAoaW50ZXJmYWNlcyAgICAgICAgICAgIHNhbWJhLWNvbmZpZ3Vy YXRpb24taW50ZXJmYWNlcwogICAgICAgICAgICAgICAgICAgICAgICAgKGRlZmF1bHQgJygpKSkK ICAoaG9zdHMtYWxsb3cgICAgICAgICAgIHNhbWJhLWNvbmZpZ3VyYXRpb24taG9zdHMtYWxsb3cK ICAgICAgICAgICAgICAgICAgICAgICAgIChkZWZhdWx0ICcoKSkpCiAgKGd1ZXN0LWFjY291bnQg ICAgICAgICBzYW1iYS1jb25maWd1cmF0aW9uLWd1ZXN0LWFjY291bnQKICAgICAgICAgICAgICAg ICAgICAgICAgIChkZWZhdWx0ICNmKSkKICAobG9nLWZpbGUgICAgICAgICAgICAgIHNhbWJhLWNv bmZpZ3VyYXRpb24tbG9nLWZpbGUKICAgICAgICAgICAgICAgICAgICAgICAgIChkZWZhdWx0ICIv dmFyL2xvZy9zYW1iYS9sb2cuJW0iKSkKICAobG9nZ2luZyAgICAgICAgICAgICAgIHNhbWJhLWNv bmZpZ3VyYXRpb24tbG9nZ2luCiAgICAgICAgICAgICAgICAgICAgICAgICAoZGVmYXVsdCAiZmls ZSIpKQogIChyZWFsbSAgICAgICAgICAgICAgICAgc2FtYmEtY29uZmlndXJhdGlvbi1yZWFsbQog ICAgICAgICAgICAgICAgICAgICAgICAgKGRlZmF1bHQgI2YpKQogIChwYXNzZGItYmFja2VuZCAg ICAgICAgc2FtYmEtY29uZmlndXJhdGlvbi1wYXNzZGItYmFja2VuZAogICAgICAgICAgICAgICAg ICAgICAgICAgKGRlZmF1bHQgI2YpKQogIChpbmNsdWRlLWNvbmZpZyAgICAgICAgc2FtYmEtY29u ZmlndXJhdGlvbi1pbmNsdWRlLWNvbmZpZwogICAgICAgICAgICAgICAgICAgICAgICAgKGRlZmF1 bHQgI2YpKQogIChsb2dvbi1wYXRoICAgICAgICAgICAgc2FtYmEtY29uZmlndXJhdGlvbi1sb2dv bi1wYXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAoZGVmYXVsdCAjZikpCiAgKHdpbnMtc3Vw cG9ydD8gICAgICAgICBzYW1iYS1jb25maWd1cmF0aW9uLXdpbnMtc3VwcG9ydD8KICAgICAgICAg ICAgICAgICAgICAgICAgIChkZWZhdWx0ICNmKSkKICAod2lucy1zZXJ2ZXIgICAgICAgICAgIHNh bWJhLWNvbmZpZ3VyYXRpb24td2lucy1zZXJ2ZXIKICAgICAgICAgICAgICAgICAgICAgICAgIChk ZWZhdWx0ICNmKSkKICAod2lucy1wcm94eT8gICAgICAgICAgIHNhbWJhLWNvbmZpZ3VyYXRpb24t d2lucy1wcm94eT8KICAgICAgICAgICAgICAgICAgICAgICAgIChkZWZhdWx0ICNmKSkKICAoZG5z LXByb3h5PyAgICAgICAgICAgIHNhbWJhLWNvbmZpZ3VyYXRpb24tZG5zLXByb3h5PwogICAgICAg ICAgICAgICAgICAgICAgICAgKGRlZmF1bHQgI2YpKQogIDs7ICggIHNhbWJhLWNvbmZpZ3VyYXRp b24tCiAgOzsgICAgICAgICAgICAgICAgICAgICAgIChkZWZhdWx0ICkpCiAgKQoKKGRlZmluZSAo c2FtYmEtY29uZmlndXJhdGlvbi1jb25maWctZmlsZSBnbG9iYWwtZXh0cmEtY29uZmlnCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya2dyb3VwCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyLXN0cmluZwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlci1yb2xlCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgYmluZC1pbnRlcmZhY2VzLW9ubHk/CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlcwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3RzLWFsbG93CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ3Vlc3QtYWNjb3VudAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxvZy1maWxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbG9nZ2luZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJlYWxtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2Ri LWJhY2tlbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRl LWNvbmZpZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ29uLXBh dGgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5zLXN1cHBvcnQ/ CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lucy1zZXJ2ZXIKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5zLXByb3h5PwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRucy1wcm94eT8pCiAgKG1peGVkLXRl eHQtZmlsZQogICAic21iLmNvbmYiCiAgICIjIEdlbmVyYXRlZCBieSBzYW1iYS1zZXJ2aWNlLgpb Z2xvYmFsXQoiIChpZiB3b3JrZ3JvdXAKICAgICAgKHN0cmluZy1hcHBlbmQgIiAgICB3b3JrZ3Jv dXAgPSAiIHdvcmtncm91cCAiXG4iKSAiIikKKGlmIHNlcnZlci1zdHJpbmcKICAgIChzdHJpbmct YXBwZW5kICIgICAgc2VydmVyIHN0cmluZyA9ICIgc2VydmVyLXN0cmluZyAiXG4iKSAiIikKKGlm IHNlcnZlci1yb2xlCiAgICAoc3RyaW5nLWFwcGVuZCAiICAgIHNlcnZlciByb2xlID0gIiBzZXJ2 ZXItcm9sZSAiXG4iKSAiIikKKGlmIGJpbmQtaW50ZXJmYWNlcy1vbmx5PyAiICAgIGJpbmQgaW50 ZXJmYWNlcyBvbmx5ID0gWWVzXG4iICIiKQooaWYgKG5vdCAobnVsbD8gaW50ZXJmYWNlcykpCiAg ICAoc3RyaW5nLWFwcGVuZCAiICAgIGludGVyZmFjZXMgPSAiIChzdHJpbmctam9pbiBpbnRlcmZh Y2VzKSAiXG4iKSAiIikKKGlmIChub3QgKG51bGw/IGhvc3RzLWFsbG93KSkKICAgIChzdHJpbmct YXBwZW5kICIgICAgaG9zdHMgYWxsb3cgPSAiIChzdHJpbmctam9pbiBob3N0cy1hbGxvdykgIlxu IikgIiIpCihpZiBndWVzdC1hY2NvdW50CiAgICAoc3RyaW5nLWFwcGVuZCAiICAgIGd1ZXN0IGFj Y291bnQgPSAiIGd1ZXN0LWFjY291bnQgIlxuIikgIiIpCihpZiBsb2ctZmlsZQogICAgKHN0cmlu Zy1hcHBlbmQgIiAgICBsb2cgZmlsZSA9ICIgbG9nLWZpbGUgIlxuIikgIiIpCihpZiBsb2dnaW5n CiAgICAoc3RyaW5nLWFwcGVuZCAiICAgIGxvZ2dpbmcgPSAiIGxvZ2dpbmcgIlxuIikgIiIpCihp ZiByZWFsbQogICAgKHN0cmluZy1hcHBlbmQgIiAgICByZWFsbSA9ICIgcmVhbG0gIlxuIikgIiIp CihpZiBwYXNzZGItYmFja2VuZAogICAgKHN0cmluZy1hcHBlbmQgIiAgICBwYXNzZGIgYmFja2Vu ZCA9ICIgcGFzc2RiLWJhY2tlbmQgIlxuIikgIiIpCihpZiBpbmNsdWRlLWNvbmZpZwogICAgKHN0 cmluZy1hcHBlbmQgIiAgICBpbmNsdWRlIGNvbmZpZyA9ICIgaW5jbHVkZS1jb25maWcgIlxuIikg IiIpCihpZiBsb2dvbi1wYXRoCiAgICAoc3RyaW5nLWFwcGVuZCAiICAgIGxvZ29uIHBhdGggPSAi IGxvZ29uLXBhdGggIlxuIikgIiIpCihpZiB3aW5zLXN1cHBvcnQ/ICIgICAgd2lucyBzdXBwb3J0 ID0gWWVzIiAiIikKKGlmIHdpbnMtc2VydmVyCiAgICAoc3RyaW5nLWFwcGVuZCAiICAgIHdpbnMg c2VydmVyID0gIiB3aW5zLXNlcnZlciAiXG4iKSAiIikKKGlmIHdpbnMtcHJveHk/ICIgICAgd2lu cyBwcm94eSA9IFllc1xuIiAiIikKKGlmIGRucy1wcm94eT8gIiAgICBkbnMgcHJveHkgPSBZZXNc biIgIiIpCihpZiBnbG9iYWwtZXh0cmEtY29uZmlnCiAgICAoc3RyaW5nLWFwcGVuZAogICAgICJc biNFeHRyYSBvcHRpb25zIHByb3ZpZGVkIGJ5IOKAmGdsb2JhbC1leHRyYS1jb25maWfigJk6XG4i CiAgICAgZ2xvYmFsLWV4dHJhLWNvbmZpZyAiXG4iKSAiIikpKQoKKGRlZmluZSBzYW1iYS1hY3Rp dmF0aW9uCiAgKG1hdGNoLWxhbWJkYQogICAgKCgkIDxzYW1iYS1jb25maWd1cmF0aW9uPiBwYWNr YWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy1maWxlCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDs7IGVuYWJsZS1zYW1iYT8gZW5hYmxlLXNtYmQ/IGVuYWJsZS1u bWJkPyBlbmFibGUtd2luYmluZGQ/CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8gXyBf IF8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2xvYmFsLWV4dHJhLWNvbmZpZwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JrZ3JvdXAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyLXN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2 ZXItcm9sZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5kLWludGVyZmFjZXMtb25s eT8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlcwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBob3N0cy1hbGxvdwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBndWVzdC1hY2NvdW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZy1maWxlCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dpbmcKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmVhbG0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2RiLWJhY2tl bmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZS1jb25maWcKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgbG9nb24tcGF0aAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB3aW5zLXN1cHBvcnQ/CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbnMtc2Vy dmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbnMtcHJveHk/CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRucy1wcm94eT8KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKQogICAgICh3aXRoLWltcG9ydGVkLW1vZHVsZXMgJygoZ3VpeCBidWlsZCB1dGlscykpCiAg ICAgICAobGV0ICgoY29uZmlnLWZpbGUKICAgICAgICAgICAgICAob3IgY29uZmlnLWZpbGUKICAg ICAgICAgICAgICAgICAgKHNhbWJhLWNvbmZpZ3VyYXRpb24tY29uZmlnLWZpbGUgZ2xvYmFsLWV4 dHJhLWNvbmZpZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB3b3JrZ3JvdXAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyLXN0cmluZwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZXJ2ZXItcm9sZQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBiaW5kLWludGVyZmFjZXMtb25seT8KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlcwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0cy1hbGxvdwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWVzdC1h Y2NvdW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxvZy1maWxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxvZ2dpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmVhbG0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGFzc2RiLWJhY2tlbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaW5jbHVkZS1jb25maWcKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbG9nb24tcGF0aAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW5zLXN1cHBvcnQ/CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbnMtc2VydmVyCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbnMtcHJveHk/CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRucy1wcm94 eT8pKSkKICAgICAgICAgICAgIChsaWItZGlyZWN0b3J5ICIvdmFyL2xpYi9zYW1iYSIpCiAgICAg ICAgICAgICAobG9nLWRpcmVjdG9yeSAiL3Zhci9sb2cvc2FtYmEiKQogICAgICAgICAgICAgKHJ1 bi1kaXJlY3RvcnkgIi92YXIvcnVuL3NhbWJhIikKICAgICAgICAgICAgIChzbWIuY29uZiAiL2V0 Yy9zYW1iYS9zbWIuY29uZiIpKQogICAgICAgICAjfihiZWdpbgogICAgICAgICAgICAgKHVzZS1t b2R1bGVzIChndWl4IGJ1aWxkIHV0aWxzKSkKICAgICAgICAgICAgIChta2Rpci1wICMkbG9nLWRp cmVjdG9yeSkKICAgICAgICAgICAgIChta2Rpci1wICMkcnVuLWRpcmVjdG9yeSkKICAgICAgICAg ICAgIChta2Rpci1wIChzdHJpbmctYXBwZW5kICMkbGliLWRpcmVjdG9yeSAiL3ByaXZhdGUiKSkK CiAgICAgICAgICAgICA7OyBJJ2QgbGlrZSB0byBwbGFjZSBzbWIuY29uZiB0byAvZXRjL3NhbWJh LiAgSXQgbWlnaHQKICAgICAgICAgICAgIDs7IG1ha2Ugc2Vuc2UsIHNpbmNlIHRoZXJlIHdpbGwg YmUgb3RoZXIgZGFlbW9ucyB3YW50aW5nCiAgICAgICAgICAgICA7OyB0byBhY2Nlc3MgaXQuCgog ICAgICAgICAgICAgKG1rZGlyLXAgIi9ldGMvc2FtYmEiKQogICAgICAgICAgICAgKGNvcHktZmls ZSAjJGNvbmZpZy1maWxlICMkc21iLmNvbmYpCgogICAgICAgICAgICAgOzsgVGVzdCBjb25maWcK ICAgICAgICAgICAgIChzeXN0ZW0qIChzdHJpbmctYXBwZW5kICMkc2FtYmEgIi9iaW4vdGVzdHBh cm0iKQogICAgICAgICAgICAgICAgICAgICAgIi0tc3VwcHJlc3MtcHJvbXB0IikKCiAgICAgICAg ICAgICA7OyAoZGlzcGxheSAjJChzdHJpbmctYXBwZW5kIGxpYi1kaXJlY3RvcnkgIi9wcml2YXRl XG4iKSkKICAgICAgICAgICAgIDs7IChkaXNwbGF5IChzdHJpbmctYXBwZW5kICMkKGZpbGUtYXBw ZW5kIHNhbWJhICIvc2Jpbi9zbWJkIikKICAgICAgICAgICAgIDs7ICAgICAgICAgICAgICAgICAg ICAgICAgIChzdHJpbmctYXBwZW5kICItLWNvbmZpZ2ZpbGU9IgogICAgICAgICAgICAgOzsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyRjb25maWctZmlsZSkKICAgICAg ICAgICAgIDs7ICAgICAgICAgICAgICAgICAgICAgICAgICItLWZvcmVncm91bmQiCiAgICAgICAg ICAgICA7OyAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiLS1sb2ctYmFz ZW5hbWU9IgogICAgICAgICAgICAgOzsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIyRsb2ctZGlyZWN0b3J5KQogICAgICAgICAgICAgOzsgICAgICAgICAgICAgICAgICAg ICAgICAgIi0tbm8tcHJvY2Vzcy1ncm91cCIpKQogICAgICAgICAgICAgKSkpKSkpCgooZGVmaW5l IHNhbWJhLXNoZXBoZXJkLXNlcnZpY2UKICAobWF0Y2gtbGFtYmRhCiAgICAoKCQgPHNhbWJhLWNv bmZpZ3VyYXRpb24+IHBhY2thZ2UpCiAgICAgKGxldCAoKGNvbmZpZy1maWxlICIvZXRjL3NhbWJh L3NtYi5jb25mIikpCiAgICAgICAobGlzdCAoc2hlcGhlcmQtc2VydmljZQogICAgICAgICAgICAg IChkb2N1bWVudGF0aW9uICJSdW4gdGhlIFNhbWJhIikKICAgICAgICAgICAgICAocHJvdmlzaW9u ICcoc2FtYmEpKQogICAgICAgICAgICAgIChyZXF1aXJlbWVudCAnKG5ldHdvcmtpbmcpKQogICAg ICAgICAgICAgIChzdGFydCAjfihtYWtlLWZvcmtleGVjLWNvbnN0cnVjdG9yCiAgICAgICAgICAg ICAgICAgICAgICAgIChsaXN0ICMkKGZpbGUtYXBwZW5kIHNhbWJhICIvc2Jpbi9zYW1iYSIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctYXBwZW5kICItLWNvbmZpZ2ZpbGU9 IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJGNvbmZpZy1m aWxlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1mb3JlZ3JvdW5kIgogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiLS1uby1wcm9jZXNzLWdyb3VwIikpKQogICAgICAgICAg ICAgIChzdG9wICN+KG1ha2Uta2lsbC1kZXN0cnVjdG9yKSkpKSkpKSkKCihkZWZpbmUgc2FtYmEt bm1iZC1zaGVwaGVyZC1zZXJ2aWNlCiAgKG1hdGNoLWxhbWJkYQogICAgKCgkIDxzYW1iYS1jb25m aWd1cmF0aW9uPiBwYWNrYWdlKQogICAgIChsZXQgKChjb25maWctZmlsZSAiL2V0Yy9zYW1iYS9z bWIuY29uZiIpKQogICAgICAgKGxpc3QgKHNoZXBoZXJkLXNlcnZpY2UKICAgICAgICAgICAgICAo ZG9jdW1lbnRhdGlvbiAiUnVuIE5ldEJJT1MgbmFtZSBzZXJ2ZXIuIikKICAgICAgICAgICAgICAo cHJvdmlzaW9uICcoc2FtYmEtbm1iZCkpCiAgICAgICAgICAgICAgKHJlcXVpcmVtZW50ICcobmV0 d29ya2luZykpCiAgICAgICAgICAgICAgKHN0YXJ0ICN+KG1ha2UtZm9ya2V4ZWMtY29uc3RydWN0 b3IKICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgIyQoZmlsZS1hcHBlbmQgc2FtYmEgIi9z YmluL25tYmQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAi LS1jb25maWdmaWxlPSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIyRjb25maWctZmlsZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZm9yZWdy b3VuZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tbm8tcHJvY2Vzcy1ncm91cCIp KSkKICAgICAgICAgICAgICAoc3RvcCAjfihtYWtlLWtpbGwtZGVzdHJ1Y3RvcikpKSkpKSkpCgoo ZGVmaW5lIHNhbWJhLXNtYmQtc2hlcGhlcmQtc2VydmljZQogIChtYXRjaC1sYW1iZGEKICAgICgo JCA8c2FtYmEtY29uZmlndXJhdGlvbj4gcGFja2FnZSkKICAgICAobGV0ICgoY29uZmlnLWZpbGUg Ii9ldGMvc2FtYmEvc21iLmNvbmYiKSkKICAgICAgIChsaXN0IChzaGVwaGVyZC1zZXJ2aWNlCiAg ICAgICAgICAgICAgKGRvY3VtZW50YXRpb24gIlJ1biBTTUIvQ0lGUyBzZXJ2aWNlIikKICAgICAg ICAgICAgICAocHJvdmlzaW9uICcoc2FtYmEtc21iZCkpCiAgICAgICAgICAgICAgKHJlcXVpcmVt ZW50ICcobmV0d29ya2luZykpCiAgICAgICAgICAgICAgKHN0YXJ0ICN+KG1ha2UtZm9ya2V4ZWMt Y29uc3RydWN0b3IKICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgIyQoZmlsZS1hcHBlbmQg c2FtYmEgIi9zYmluL3NtYmQiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5n LWFwcGVuZCAiLS1jb25maWdmaWxlPSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIyRjb25maWctZmlsZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ii0tZm9yZWdyb3VuZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tbm8tcHJvY2Vz cy1ncm91cCIpKSkKICAgICAgICAgICAgICAoc3RvcCAjfihtYWtlLWtpbGwtZGVzdHJ1Y3Rvcikp KSkpKSkpCgooZGVmaW5lIHNhbWJhLXdpbmJpbmQtc2hlcGhlcmQtc2VydmljZQogIChtYXRjaC1s YW1iZGEKICAgICgoJCA8c2FtYmEtY29uZmlndXJhdGlvbj4gcGFja2FnZSkKICAgICAobGV0ICgo Y29uZmlnLWZpbGUgIi9ldGMvc2FtYmEvc21iLmNvbmYiKSkKICAgICAgIChsaXN0IChzaGVwaGVy ZC1zZXJ2aWNlCiAgICAgICAgICAgICAgKGRvY3VtZW50YXRpb24gIlJ1biB3aW5iaW5kZCBmb3Ig TmFtZSBTZXJ2aWNlIFN3aXRjaCIpCiAgICAgICAgICAgICAgKHByb3Zpc2lvbiAnKHNhbWJhLXdp bmJpbmRkKSkKICAgICAgICAgICAgICAocmVxdWlyZW1lbnQgJyhuZXR3b3JraW5nKSkKICAgICAg ICAgICAgICAoc3RhcnQgI34obWFrZS1mb3JrZXhlYy1jb25zdHJ1Y3RvcgogICAgICAgICAgICAg ICAgICAgICAgICAobGlzdCAjJChmaWxlLWFwcGVuZCBzYW1iYSAiL3NiaW4vd2luYmluZGQiKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiLS1jb25maWdmaWxl PSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyRjb25maWct ZmlsZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZm9yZWdyb3VuZCIKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIi0tbm8tcHJvY2Vzcy1ncm91cCIpKSkKICAgICAgICAg ICAgICAoc3RvcCAjfihtYWtlLWtpbGwtZGVzdHJ1Y3RvcikpKSkpKSkpCgooZGVmaW5lIChzYW1i YS1zaGVwaGVyZC1zZXJ2aWNlcyBjb25maWcpCiAgKGFwcGVuZCA7OyAoc2FtYmEtc2hlcGhlcmQt c2VydmljZSBjb25maWcpCiAgICAgICAgICAgICAoc2FtYmEtbm1iZC1zaGVwaGVyZC1zZXJ2aWNl IGNvbmZpZykKICAgICAgICAgICAgIChzYW1iYS1zbWJkLXNoZXBoZXJkLXNlcnZpY2UgY29uZmln KQogICAgICAgICAgICAgKHNhbWJhLXdpbmJpbmQtc2hlcGhlcmQtc2VydmljZSBjb25maWcpKSkK CihkZWZpbmUgc2FtYmEtc2VydmljZS10eXBlCiAgKHNlcnZpY2UtdHlwZQogICAobmFtZSAnc2Ft YmEpCiAgIChkZXNjcmlwdGlvbiAiU2FtYmEiKQogICAoZXh0ZW5zaW9ucwogICAgKGxpc3QgKHNl cnZpY2UtZXh0ZW5zaW9uIHNoZXBoZXJkLXJvb3Qtc2VydmljZS10eXBlCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2FtYmEtc2hlcGhlcmQtc2VydmljZXMpCiAgICAgICAgICAoc2Vydmlj ZS1leHRlbnNpb24gYWN0aXZhdGlvbi1zZXJ2aWNlLXR5cGUKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzYW1iYS1hY3RpdmF0aW9uKQogICAgICAgICAgOzsgKHNlcnZpY2UtZXh0ZW5zaW9u IGFjY291bnQtc2VydmljZS10eXBlCiAgICAgICAgICA7OyAgICAgICAgICAgICAgICAgICAgKGNv bnN0ICVzYW1iYS1hY2NvdW50cykpCiAgICAgICAgICApKQogICAoZGVmYXVsdC12YWx1ZSAoc2Ft YmEtY29uZmlndXJhdGlvbikpKSkKCgo7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Cgo7OyAobGV0ICgodWlkIChwYXNzd2Q6dWlkIChnZXRwdyAic2FtYmEiKSkpCjs7ICAgICAgIChn aWQgKGdyb3VwOmdpZCAoZ2V0Z3IgInNhbWJhIikpKSkKOzsgICApCg== --=-=-=--