Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qtv8E-00ErbB-EF for pgsql-www@arkaria.postgresql.org; Fri, 20 Oct 2023 19:26:02 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1qtv8B-006FXo-VX for pgsql-www@arkaria.postgresql.org; Fri, 20 Oct 2023 19:26:00 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qtv8B-006FXg-Lj for pgsql-www@lists.postgresql.org; Fri, 20 Oct 2023 19:26:00 +0000 Received: from imap2.cmatte.me ([54.37.205.152]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qtv87-001m8Z-AT for pgsql-www@lists.postgresql.org; Fri, 20 Oct 2023 19:25:59 +0000 Content-Type: multipart/mixed; boundary="------------7dpbPRDk4b0qC3SObEOsTVCT" Message-ID: Date: Fri, 20 Oct 2023 21:25:55 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCHES] pgarchives: merge schema.sql into Django's model Content-Language: en-US To: pgsql-www@lists.postgresql.org References: <12eb75f0-3fc2-14f3-0931-4f29e145f182@cmatte.me> From: =?UTF-8?Q?C=C3=A9lestin_Matte?= Autocrypt: addr=celestin.matte@cmatte.me; keydata= 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 co++UjjOPJT3t7qY4ekbQ3xf6bdSDZh7Aw== In-Reply-To: <12eb75f0-3fc2-14f3-0931-4f29e145f182@cmatte.me> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------7dpbPRDk4b0qC3SObEOsTVCT Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit New series of this patch rebased on current master branch. Fixes primary_key issues mentioned in a previous thread [1]. [1]: https://www.postgresql.org/message-id/CABUevExzjRo-=9Hg4CDdnGHuQB1L6uAwekni0mz-1CECaMcGZA@mail.gmail.com On 03/02/2022 14:30, Célestin Matte wrote: > As discussed in previous threads before [1, 2], database creations file are currently split between the Django model and a SQL file. Discrepancy in the database's definition exists between them. As a consequence, the database cannot be created easily. > This series of patches merge schema.sql into Django's model, and adds specific postgres components that cannot be handled by Django's ORM using RunSQL() in a migration file. > > Please also note that I integrated several other patches to avoid multiple migration files: > - I allowed message.parentid to be null, as discussed in [1]. This can cause Internal Server Errors in views.py, which are fixed by the second patch. > - I used BinaryFields for bytea columns (message.rawtxt and attachments.attachment), which seems to be the way to integrate bytea into Django > > It may be a good opportunity to remove all mentions of pg_dict, pg_stop and associated file. I'm not sure of the consequences of this. According to [2], these are the remains of an aborted idea. > Also, what does tsparer bring? Can the installation of pgarchives be simplified by replacing it with pg_catalog.english? > > > [1]: https://www.postgresql.org/message-id/CABUevEyFpYPEHh0AAyTAsgymRKOOVA1SY_pDHPCbBQQ9BawfTA%40mail.gmail.com > [2]: https://www.postgresql.org/message-id/CABUevEy_i1xAKscMv4KZ0%3DbE8050bBcQfWaNyjwZZBofZx7JgQ%40mail.gmail.com -- Célestin Matte --------------7dpbPRDk4b0qC3SObEOsTVCT Content-Type: text/x-patch; charset=UTF-8; name="0001-Merge-schema.sql-into-Django-s-model.patch" Content-Disposition: attachment; filename="0001-Merge-schema.sql-into-Django-s-model.patch" Content-Transfer-Encoding: base64 RnJvbSA1N2EzYjg1MmQzMGNmOGVjMjBlYWIwNGU0MGU5OWJmNDBmMzBlMmU2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Qz1DMz1BOWxlc3Rpbj0yME1hdHRl Pz0gPGdpdGxhYkBjbWF0dGUubWU+CkRhdGU6IFRodSwgMyBGZWIgMjAyMiAxNDoyMjozNSAr MDEwMApTdWJqZWN0OiBbUEFUQ0ggMS8yXSBNZXJnZSBzY2hlbWEuc3FsIGludG8gRGphbmdv J3MgbW9kZWwKCk1vdmUgc2NoZW1hLnNxbCBjb250ZW50IGludG8gbW9kZWxzLnB5LiBEZWxl dGUgc2NoZW1hLnNxbC4KQWRkcyBzcGVjaWZpYyBwb3N0Z3JlcyBjb21wb25lbnRzIHRoYXQg Y2Fubm90IGJlIGhhbmRsZWQgYnkgRGphbmdvJ3MgT1JNCnVzaW5nIFJ1blNRTCgpIGluIGEg bWlncmF0aW9uIGZpbGUuCkluIHRoZSBwcm9jZXNzLCBhbGxvdyBtZXNzYWdlLnBhcmVudGlk IHRvIGJlIG51bGwuCi0tLQogLi4uL21pZ3JhdGlvbnMvMDAwNV9tZXJnZV9zY2hlbWEucHkg ICAgICAgICAgIHwgMTYzICsrKysrKysrKysrKysrKysrKwogZGphbmdvL2FyY2hpdmVzL21h aWxhcmNoaXZlcy9tb2RlbHMucHkgICAgICAgIHwgIDYwICsrKysrKy0KIGxvYWRlci9zcWwv c2NoZW1hLnNxbCAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2MCAtLS0tLS0tLS0tLS0t LS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAyMjAgaW5zZXJ0aW9ucygrKSwgMTYzIGRlbGV0aW9u cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRqYW5nby9hcmNoaXZlcy9tYWlsYXJjaGl2ZXMv bWlncmF0aW9ucy8wMDA1X21lcmdlX3NjaGVtYS5weQogZGVsZXRlIG1vZGUgMTAwNjQ0IGxv YWRlci9zcWwvc2NoZW1hLnNxbAoKZGlmZiAtLWdpdCBhL2RqYW5nby9hcmNoaXZlcy9tYWls YXJjaGl2ZXMvbWlncmF0aW9ucy8wMDA1X21lcmdlX3NjaGVtYS5weSBiL2RqYW5nby9hcmNo aXZlcy9tYWlsYXJjaGl2ZXMvbWlncmF0aW9ucy8wMDA1X21lcmdlX3NjaGVtYS5weQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNmMwYTU2Ci0tLSAvZGV2L251bGwK KysrIGIvZGphbmdvL2FyY2hpdmVzL21haWxhcmNoaXZlcy9taWdyYXRpb25zLzAwMDVfbWVy Z2Vfc2NoZW1hLnB5CkBAIC0wLDAgKzEsMTYzIEBACitmcm9tIGRqYW5nby5kYiBpbXBvcnQg bWlncmF0aW9ucywgbW9kZWxzCitpbXBvcnQgZGphbmdvLmRiLm1vZGVscy5kZWxldGlvbgor CisKK2NsYXNzIE1pZ3JhdGlvbihtaWdyYXRpb25zLk1pZ3JhdGlvbik6CisKKyAgICBkZXBl bmRlbmNpZXMgPSBbCisgICAgICAgICgnbWFpbGFyY2hpdmVzJywgJzAwMDRfcmVzZW5kX3Jh dGVfbGltaXQnKSwKKyAgICBdCisKKyAgICBvcGVyYXRpb25zID0gWworICAgICAgICBtaWdy YXRpb25zLkFsdGVyRmllbGQoCisgICAgICAgICAgICBtb2RlbF9uYW1lPSdtZXNzYWdlJywK KyAgICAgICAgICAgIG5hbWU9J3BhcmVudGlkJywKKyAgICAgICAgICAgIGZpZWxkPW1vZGVs cy5Gb3JlaWduS2V5KGRiX2NvbHVtbj0ncGFyZW50aWQnLCBvbl9kZWxldGU9ZGphbmdvLmRi Lm1vZGVscy5kZWxldGlvbi5DQVNDQURFLCB0bz0nbWFpbGFyY2hpdmVzLk1lc3NhZ2UnLCBu dWxsPVRydWUpLAorICAgICAgICApLAorICAgICAgICBtaWdyYXRpb25zLkFkZEZpZWxkKAor ICAgICAgICAgICAgbW9kZWxfbmFtZT0nbWVzc2FnZScsCisgICAgICAgICAgICBuYW1lPSdy YXd0eHQnLAorICAgICAgICAgICAgZmllbGQ9bW9kZWxzLkJpbmFyeUZpZWxkKGJsYW5rPVRy dWUsIG51bGw9RmFsc2UpLAorICAgICAgICApLAorICAgICAgICBtaWdyYXRpb25zLkFkZEZp ZWxkKAorICAgICAgICAgICAgbW9kZWxfbmFtZT0nYXR0YWNobWVudCcsCisgICAgICAgICAg ICBuYW1lPSdhdHRhY2htZW50JywKKyAgICAgICAgICAgIGZpZWxkPW1vZGVscy5CaW5hcnlG aWVsZChibGFuaz1UcnVlLCBudWxsPUZhbHNlKSwKKyAgICAgICAgKSwKKyAgICAgICAgbWln cmF0aW9ucy5DcmVhdGVNb2RlbCgKKyAgICAgICAgICAgIG5hbWU9J0xvYWRlcnJvcnMnLAor ICAgICAgICAgICAgZmllbGRzPVsKKyAgICAgICAgICAgICAgICAoJ2lkJywgbW9kZWxzLkF1 dG9GaWVsZChhdXRvX2NyZWF0ZWQ9VHJ1ZSwgcHJpbWFyeV9rZXk9VHJ1ZSwgc2VyaWFsaXpl PUZhbHNlLCB2ZXJib3NlX25hbWU9J0lEJykpLAorICAgICAgICAgICAgICAgICgnZGF0Jywg bW9kZWxzLkRhdGVUaW1lRmllbGQoYXV0b19ub3dfYWRkPVRydWUpKSwKKyAgICAgICAgICAg ICAgICAoJ21zZ2lkJywgbW9kZWxzLlRleHRGaWVsZCgpKSwKKyAgICAgICAgICAgICAgICAo J3NyY3R5cGUnLCBtb2RlbHMuVGV4dEZpZWxkKCkpLAorICAgICAgICAgICAgICAgICgnc3Jj JywgbW9kZWxzLlRleHRGaWVsZCgpKSwKKyAgICAgICAgICAgICAgICAoJ2VycicsIG1vZGVs cy5UZXh0RmllbGQoKSksCisgICAgICAgICAgICAgICAgKCdsaXN0aWQnLCBtb2RlbHMuRm9y ZWlnbktleShkYl9jb2x1bW49J2xpc3RpZCcsIG9uX2RlbGV0ZT1kamFuZ28uZGIubW9kZWxz LmRlbGV0aW9uLkNBU0NBREUsIHRvPSdtYWlsYXJjaGl2ZXMuTGlzdCcpKSwKKyAgICAgICAg ICAgIF0sCisgICAgICAgICAgICBvcHRpb25zPXsKKyAgICAgICAgICAgICAgICAnZGJfdGFi bGUnOiAnbG9hZGVycm9ycycsCisgICAgICAgICAgICB9LAorICAgICAgICApLAorICAgICAg ICBtaWdyYXRpb25zLkNyZWF0ZU1vZGVsKAorICAgICAgICAgICAgbmFtZT0nVW5yZXNvbHZl ZE1lc3NhZ2VzJywKKyAgICAgICAgICAgIGZpZWxkcz1bCisgICAgICAgICAgICAgICAgKCdp ZCcsIG1vZGVscy5BdXRvRmllbGQoYXV0b19jcmVhdGVkPVRydWUsIHByaW1hcnlfa2V5PVRy dWUsIHNlcmlhbGl6ZT1GYWxzZSwgdmVyYm9zZV9uYW1lPSdJRCcpKSwKKyAgICAgICAgICAg ICAgICAoJ3ByaW9yaXR5JywgbW9kZWxzLkludGVnZXJGaWVsZCgpKSwKKyAgICAgICAgICAg ICAgICAoJ21zZ2lkJywgbW9kZWxzLlRleHRGaWVsZCgpKSwKKyAgICAgICAgICAgICAgICAo J21lc3NhZ2UnLCBtb2RlbHMuRm9yZWlnbktleShkYl9jb2x1bW49J21lc3NhZ2UnLCBvbl9k ZWxldGU9ZGphbmdvLmRiLm1vZGVscy5kZWxldGlvbi5DQVNDQURFLCB0bz0nbWFpbGFyY2hp dmVzLk1lc3NhZ2UnKSksCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgb3B0aW9ucz17 CisgICAgICAgICAgICAgICAgJ2RiX3RhYmxlJzogJ3VucmVzb2x2ZWRfbWVzc2FnZXMnLAor ICAgICAgICAgICAgICAgICd1bmlxdWVfdG9nZXRoZXInOiB7KCdtZXNzYWdlJywgJ3ByaW9y aXR5JywgJ21zZ2lkJyl9LAorICAgICAgICAgICAgfSwKKyAgICAgICAgKSwKKyAgICAgICAg bWlncmF0aW9ucy5DcmVhdGVNb2RlbCgKKyAgICAgICAgICAgIG5hbWU9J0xpc3RUaHJlYWRz JywKKyAgICAgICAgICAgIGZpZWxkcz1bCisgICAgICAgICAgICAgICAgKCd0aHJlYWRpZCcs IG1vZGVscy5JbnRlZ2VyRmllbGQoc2VyaWFsaXplPUZhbHNlKSksCisgICAgICAgICAgICAg ICAgKCdsaXN0aWQnLCBtb2RlbHMuRm9yZWlnbktleShkYl9jb2x1bW49J2xpc3RpZCcsIG9u X2RlbGV0ZT1kamFuZ28uZGIubW9kZWxzLmRlbGV0aW9uLkNBU0NBREUsIHRvPSdtYWlsYXJj aGl2ZXMuTGlzdCcpKSwKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICBvcHRpb25zPXsK KyAgICAgICAgICAgICAgICAnZGJfdGFibGUnOiAnbGlzdF90aHJlYWRzJywKKyAgICAgICAg ICAgIH0sCisgICAgICAgICksCisgICAgICAgIG1pZ3JhdGlvbnMuQ3JlYXRlTW9kZWwoCisg ICAgICAgICAgICBuYW1lPSdMaXN0TW9udGhzJywKKyAgICAgICAgICAgIGZpZWxkcz1bCisg ICAgICAgICAgICAgICAgKCdpZCcsIG1vZGVscy5BdXRvRmllbGQoYXV0b19jcmVhdGVkPVRy dWUsIHByaW1hcnlfa2V5PVRydWUsIHNlcmlhbGl6ZT1GYWxzZSwgdmVyYm9zZV9uYW1lPSdJ RCcpKSwKKyAgICAgICAgICAgICAgICAoJ3llYXInLCBtb2RlbHMuSW50ZWdlckZpZWxkKCkp LAorICAgICAgICAgICAgICAgICgnbW9udGgnLCBtb2RlbHMuSW50ZWdlckZpZWxkKCkpLAor ICAgICAgICAgICAgICAgICgnbGlzdGlkJywgbW9kZWxzLkZvcmVpZ25LZXkoZGJfY29sdW1u PSdsaXN0aWQnLCBvbl9kZWxldGU9ZGphbmdvLmRiLm1vZGVscy5kZWxldGlvbi5DQVNDQURF LCB0bz0nbWFpbGFyY2hpdmVzLkxpc3QnKSksCisgICAgICAgICAgICBdLAorICAgICAgICAg ICAgb3B0aW9ucz17CisgICAgICAgICAgICAgICAgJ2RiX3RhYmxlJzogJ2xpc3RfbW9udGhz JywKKyAgICAgICAgICAgICAgICAndW5pcXVlX3RvZ2V0aGVyJzogeygnbGlzdGlkJywgJ3ll YXInLCAnbW9udGgnKX0sCisgICAgICAgICAgICB9LAorICAgICAgICApLAorICAgICAgICBt aWdyYXRpb25zLkNyZWF0ZU1vZGVsKAorICAgICAgICAgICAgbmFtZT0nTGVnYWN5bWFwJywK KyAgICAgICAgICAgIGZpZWxkcz1bCisgICAgICAgICAgICAgICAgKCdpZCcsIG1vZGVscy5B dXRvRmllbGQoYXV0b19jcmVhdGVkPVRydWUsIHByaW1hcnlfa2V5PVRydWUsIHNlcmlhbGl6 ZT1GYWxzZSwgdmVyYm9zZV9uYW1lPSdJRCcpKSwKKyAgICAgICAgICAgICAgICAoJ3llYXIn LCBtb2RlbHMuSW50ZWdlckZpZWxkKCkpLAorICAgICAgICAgICAgICAgICgnbW9udGgnLCBt b2RlbHMuSW50ZWdlckZpZWxkKCkpLAorICAgICAgICAgICAgICAgICgnbXNnbnVtJywgbW9k ZWxzLkludGVnZXJGaWVsZCgpKSwKKyAgICAgICAgICAgICAgICAoJ21zZ2lkJywgbW9kZWxz LlRleHRGaWVsZCgpKSwKKyAgICAgICAgICAgICAgICAoJ2xpc3RpZCcsIG1vZGVscy5Gb3Jl aWduS2V5KGRiX2NvbHVtbj0nbGlzdGlkJywgb25fZGVsZXRlPWRqYW5nby5kYi5tb2RlbHMu ZGVsZXRpb24uQ0FTQ0FERSwgdG89J21haWxhcmNoaXZlcy5MaXN0JykpLAorICAgICAgICAg ICAgXSwKKyAgICAgICAgICAgIG9wdGlvbnM9eworICAgICAgICAgICAgICAgICdkYl90YWJs ZSc6ICdsZWdhY3ltYXAnLAorICAgICAgICAgICAgICAgICd1bmlxdWVfdG9nZXRoZXInOiB7 KCdsaXN0aWQnLCAneWVhcicsICdtb250aCcsICdtc2dudW0nKX0sCisgICAgICAgICAgICB9 LAorICAgICAgICApLAorICAgICAgICBtaWdyYXRpb25zLlJ1blNRTCgiQUxURVIgVEFCTEUg bWVzc2FnZXMgQUREIENPTFVNTiBmdGkgdHN2ZWN0b3IgTk9UIE5VTEwiKSwKKyAgICAgICAg bWlncmF0aW9ucy5SdW5TUUwoIkNSRUFURSBJTkRFWCBpZHhfbWVzc2FnZXNfdGhyZWFkaWQg T04gbWVzc2FnZXModGhyZWFkaWQpOyIpLAorICAgICAgICBtaWdyYXRpb25zLlJ1blNRTCgi Q1JFQVRFIFVOSVFVRSBJTkRFWCBpZHhfbWVzc2FnZXNfbXNnaWQgT04gbWVzc2FnZXMobWVz c2FnZWlkKTsiKSwKKyAgICAgICAgbWlncmF0aW9ucy5SdW5TUUwoIkNSRUFURSBJTkRFWCBp ZHhfbWVzc2FnZXNfZGF0ZSBPTiBtZXNzYWdlcyhkYXRlKTsiKSwKKyAgICAgICAgbWlncmF0 aW9ucy5SdW5TUUwoIkNSRUFURSBJTkRFWCBpZHhfbWVzc2FnZXNfcGFyZW50aWQgT04gbWVz c2FnZXMocGFyZW50aWQpOyIpLAorICAgICAgICBtaWdyYXRpb25zLlJ1blNRTCgiQ1JFQVRF IFNFUVVFTkNFIHRocmVhZGlkX3NlcTsiKSwKKyAgICAgICAgbWlncmF0aW9ucy5SdW5TUUwo IkNSRUFURSBVTklRVUUgSU5ERVggaWR4X3VucmVzb2x2ZWRfbXNnaWRfbWVzc2FnZSBPTiB1 bnJlc29sdmVkX21lc3NhZ2VzKG1zZ2lkLCBtZXNzYWdlKTsiKSwKKyAgICAgICAgbWlncmF0 aW9ucy5SdW5TUUwoIkNSRUFURSBJTkRFWCBpZHhfYXR0YWNobWVudHNfbXNnIE9OIGF0dGFj aG1lbnRzKG1lc3NhZ2UpOyIpLAorICAgICAgICBtaWdyYXRpb25zLlJ1blNRTCgiQUxURVIg VEFCTEUgbG9hZGVycm9ycyBBTFRFUiBDT0xVTU4gZGF0IFNFVCBERUZBVUxUIE5PVygpOyIp LAorICAgICAgICBtaWdyYXRpb25zLlJ1blNRTCgiQUxURVIgVEFCTEUgbGlzdF90aHJlYWRz IERST1AgQ09OU1RSQUlOVCBsaXN0X3RocmVhZHNfcGtleTsiKSwKKyAgICAgICAgbWlncmF0 aW9ucy5SdW5TUUwoIkFMVEVSIFRBQkxFIGxpc3RfdGhyZWFkcyBBREQgQ09OU1RSQUlOVCBw Z19saXN0X3RocmVhZHMgUFJJTUFSWSBLRVkgKHRocmVhZGlkLCBsaXN0aWQpOyIpLAorICAg ICAgICBtaWdyYXRpb25zLlJ1blNRTCgiIiIKK0NSRUFURSBURVhUIFNFQVJDSCBDT05GSUdV UkFUSU9OIHBnIChDT1BZID0gcGdfY2F0YWxvZy5lbmdsaXNoKTsKKworQ1JFQVRFIFRFWFQg U0VBUkNIIERJQ1RJT05BUlkgZW5nbGlzaF9pc3BlbGwgKAorICAgVEVNUExBVEUgPSBpc3Bl bGwsCisgICBEaWN0RmlsZSA9IGVuX3VzLAorICAgQWZmRmlsZSA9IGVuX3VzLAorICAgU3Rv cFdvcmRzID0gZW5nbGlzaAorKTsKK0NSRUFURSBURVhUIFNFQVJDSCBESUNUSU9OQVJZIHBn X2RpY3QgKAorICAgVEVNUExBVEUgPSBzeW5vbnltLAorICAgU1lOT05ZTVMgPSBwZ19kaWN0 CispOworQ1JFQVRFIFRFWFQgU0VBUkNIIERJQ1RJT05BUlkgcGdfc3RvcCAoCisgICBURU1Q TEFURSA9IHNpbXBsZSwKKyAgIFN0b3BXb3JkcyA9IHBnX2RpY3QKKyk7CitBTFRFUiBURVhU IFNFQVJDSCBDT05GSUdVUkFUSU9OIHBnCisgICBBTFRFUiBNQVBQSU5HIEZPUiBhc2NpaXdv cmQsIGFzY2lpaHdvcmQsIGh3b3JkX2FzY2lpcGFydCwKKyAgICAgICAgICAgICAgICAgICAg IHdvcmQsIGh3b3JkLCBod29yZF9wYXJ0CisgICAgV0lUSCBwZ19zdG9wLCBwZ19kaWN0LCBl bmdsaXNoX2lzcGVsbCwgZW5nbGlzaF9zdGVtOworQUxURVIgVEVYVCBTRUFSQ0ggQ09ORklH VVJBVElPTiBwZworICAgRFJPUCBNQVBQSU5HIEZPUiBlbWFpbCwgdXJsLCB1cmxfcGF0aCwg c2Zsb2F0LCBmbG9hdDsKKworQ1JFQVRFIEZVTkNUSU9OIG1lc3NhZ2VzX2Z0aV90cmlnZ2Vy X2Z1bmMoKSBSRVRVUk5TIHRyaWdnZXIgQVMgJCQKK0JFR0lOCisgICBORVcuZnRpID0gc2V0 d2VpZ2h0KHRvX3RzdmVjdG9yKCdwdWJsaWMucGcnLCBjb2FsZXNjZShuZXcuc3ViamVjdCwg JycpKSwgJ0EnKSB8fAorICAgICAgICAgICAgIHNldHdlaWdodCh0b190c3ZlY3RvcigncHVi bGljLnBnJywgY29hbGVzY2UobmV3LmJvZHl0eHQsICcnKSksICdEJyk7CisgICBSRVRVUk4g TkVXOworRU5ECisKKyQkIExBTkdVQUdFICdwbHBnc3FsJzsKKworQ1JFQVRFIFRSSUdHRVIg bWVzc2FnZXNfZnRpX3RyaWdnZXIKKyBCRUZPUkUgSU5TRVJUIE9SIFVQREFURSBPRiBzdWJq ZWN0LCBib2R5dHh0IE9OICBtZXNzYWdlcworIEZPUiBFQUNIIFJPVyBFWEVDVVRFIFBST0NF RFVSRSBtZXNzYWdlc19mdGlfdHJpZ2dlcl9mdW5jKCk7CitDUkVBVEUgSU5ERVggbWVzc2Fn ZXNfZnRpX2lkeCBPTiBtZXNzYWdlcyBVU0lORyBnaW4oZnRpKTsKKworLyogU2ltcGxlIEFQ SSBmb3IgaGlkaW5nIG1lc3NhZ2VzICovCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBo aWRlX21lc3NhZ2UobXNnaWRfdHh0IHRleHQsIHJlYXNvbl9jb2RlIGludGVnZXIsIHVzZXJf dHh0IHRleHQsIHJlYXNvbl90eHQgdGV4dCkKKyAgUkVUVVJOUyBpbnRlZ2VyIEFTCiskQk9E WSQKK0RFQ0xBUkUKKyAgICByZXR1cm5lZF9pZCBpbnRlZ2VyOworQkVHSU4KKyAgICBVUERB VEUgbWVzc2FnZXMgU0VUIGhpZGRlbnN0YXR1cyA9IHJlYXNvbl9jb2RlIFdIRVJFIG1lc3Nh Z2VpZCA9IG1zZ2lkX3R4dCBSRVRVUk5JTkcgaWQgSU5UTyByZXR1cm5lZF9pZDsKKworICAg IElGIE5PVCBGT1VORCBUSEVOCisgICAgICAgIFJBSVNFIEVYQ0VQVElPTiAnVGhlIHNwZWNp ZmllZCBtZXNzYWdlICglKSBjb3VsZCBub3QgYmUgZm91bmQuJywgbXNnaWRfdHh0OworICAg IEVORCBJRjsKKworICAgIElOU0VSVCBJTlRPIG1lc3NhZ2VfaGlkZV9yZWFzb25zIChtZXNz YWdlLCBkdCwgcmVhc29uLCBieSkgVkFMVUVTIChyZXR1cm5lZF9pZCwgbm93KCksIHJlYXNv bl90eHQsIHVzZXJfdHh0KTsKKworICAgIFJFVFVSTiByZXR1cm5lZF9pZDsKK0VORDsKKyRC T0RZJAorICBMQU5HVUFHRSBwbHBnc3FsIFZPTEFUSUxFCisgIENPU1QgMTAwOworIiIiKQor ICAgIF0KZGlmZiAtLWdpdCBhL2RqYW5nby9hcmNoaXZlcy9tYWlsYXJjaGl2ZXMvbW9kZWxz LnB5IGIvZGphbmdvL2FyY2hpdmVzL21haWxhcmNoaXZlcy9tb2RlbHMucHkKaW5kZXggNDRj NDQ2OS4uOTk4MWY3NCAxMDA2NDQKLS0tIGEvZGphbmdvL2FyY2hpdmVzL21haWxhcmNoaXZl cy9tb2RlbHMucHkKKysrIGIvZGphbmdvL2FyY2hpdmVzL21haWxhcmNoaXZlcy9tb2RlbHMu cHkKQEAgLTI0LDggKzI0LDggQEAgY2xhc3MgTWVzc2FnZShtb2RlbHMuTW9kZWwpOgogICAg IGRhdGUgPSBtb2RlbHMuRGF0ZVRpbWVGaWVsZChudWxsPUZhbHNlKQogICAgIG1lc3NhZ2Vp ZCA9IG1vZGVscy5UZXh0RmllbGQobnVsbD1GYWxzZSkKICAgICBib2R5dHh0ID0gbW9kZWxz LlRleHRGaWVsZChudWxsPUZhbHNlKQotICAgICMgcmF3dHh0IGlzIGEgYnl0ZWEgZmllbGQs IHdoaWNoIGRqYW5nbyBkb2Vzbid0IHN1cHBvcnQgKGVhc2lseSkKLSAgICBwYXJlbnRpZCA9 IG1vZGVscy5JbnRlZ2VyRmllbGQobnVsbD1GYWxzZSwgYmxhbms9RmFsc2UpCisgICAgcmF3 dHh0ID0gbW9kZWxzLkJpbmFyeUZpZWxkKG51bGw9VHJ1ZSkKKyAgICBwYXJlbnRpZCA9IG1v ZGVscy5Gb3JlaWduS2V5KCJzZWxmIiwgb25fZGVsZXRlPW1vZGVscy5DQVNDQURFLCBkYl9j b2x1bW49J3BhcmVudGlkJywgbnVsbD1UcnVlKQogICAgIGhhc19hdHRhY2htZW50ID0gbW9k ZWxzLkJvb2xlYW5GaWVsZChudWxsPUZhbHNlLCBkZWZhdWx0PUZhbHNlKQogICAgIGhpZGRl bnN0YXR1cyA9IG1vZGVscy5JbnRlZ2VyRmllbGQobnVsbD1UcnVlKQogICAgICMgZnRpIGlz IGEgdHN2ZWN0b3IgZmllbGQsIHdoaWNoIGRqYW5nbyBkb2Vzbid0IHN1cHBvcnQgKGVhc2ls eSkKQEAgLTEwMSw3ICsxMDEsNyBAQCBjbGFzcyBBdHRhY2htZW50KG1vZGVscy5Nb2RlbCk6 CiAgICAgbWVzc2FnZSA9IG1vZGVscy5Gb3JlaWduS2V5KE1lc3NhZ2UsIG51bGw9RmFsc2Us IGJsYW5rPUZhbHNlLCBkYl9jb2x1bW49J21lc3NhZ2UnLCBvbl9kZWxldGU9bW9kZWxzLkNB U0NBREUpCiAgICAgZmlsZW5hbWUgPSBtb2RlbHMuQ2hhckZpZWxkKG1heF9sZW5ndGg9MTAw MCwgbnVsbD1GYWxzZSwgYmxhbms9RmFsc2UpCiAgICAgY29udGVudHR5cGUgPSBtb2RlbHMu Q2hhckZpZWxkKG1heF9sZW5ndGg9MTAwMCwgbnVsbD1GYWxzZSwgYmxhbms9RmFsc2UpCi0g ICAgIyBhdHRhY2htZW50ID0gYnl0ZWEsIG5vdCBzdXBwb3J0ZWQgYnkgZGphbmdvIGF0IHRo aXMgcG9pbnQKKyAgICBhdHRhY2htZW50ID0gbW9kZWxzLkJpbmFyeUZpZWxkKG51bGw9VHJ1 ZSkKIAogICAgIGNsYXNzIE1ldGE6CiAgICAgICAgIGRiX3RhYmxlID0gJ2F0dGFjaG1lbnRz JwpAQCAtMTQxLDMgKzE0MSw1NyBAQCBjbGFzcyBSZXNlbmRNZXNzYWdlKG1vZGVscy5Nb2Rl bCk6CiBjbGFzcyBMYXN0UmVzZW50TWVzc2FnZShtb2RlbHMuTW9kZWwpOgogICAgIHNlbnR0 byA9IG1vZGVscy5PbmVUb09uZUZpZWxkKFVzZXIsIG51bGw9RmFsc2UsIGJsYW5rPUZhbHNl LCBwcmltYXJ5X2tleT1UcnVlLCBvbl9kZWxldGU9bW9kZWxzLkNBU0NBREUpCiAgICAgc2Vu dGF0ID0gbW9kZWxzLkRhdGVUaW1lRmllbGQobnVsbD1GYWxzZSwgYmxhbms9RmFsc2UpCisK KworY2xhc3MgVW5yZXNvbHZlZE1lc3NhZ2VzKG1vZGVscy5Nb2RlbCk6CisgICAgbWVzc2Fn ZSA9IG1vZGVscy5Gb3JlaWduS2V5KE1lc3NhZ2UsIG9uX2RlbGV0ZT1tb2RlbHMuQ0FTQ0FE RSkKKyAgICBwcmlvcml0eSA9IG1vZGVscy5JbnRlZ2VyRmllbGQobnVsbD1GYWxzZSwgYmxh bms9RmFsc2UpCisgICAgbXNnaWQgPSBtb2RlbHMuVGV4dEZpZWxkKG51bGw9RmFsc2UpCisK KyAgICBjbGFzcyBNZXRhOgorICAgICAgICBkYl90YWJsZSA9ICd1bnJlc29sdmVkX21lc3Nh Z2VzJworICAgICAgICB1bmlxdWVfdG9nZXRoZXIgPSAoKCdtZXNzYWdlJywgJ3ByaW9yaXR5 JywgJ21zZ2lkJyksKQorCisKK2NsYXNzIExpc3RNb250aHMobW9kZWxzLk1vZGVsKToKKyAg ICBsaXN0aWQgPSBtb2RlbHMuRm9yZWlnbktleSgnTGlzdCcsIG9uX2RlbGV0ZT1tb2RlbHMu Q0FTQ0FERSwgZGJfY29sdW1uPSdsaXN0aWQnKQorICAgIHllYXIgPSBtb2RlbHMuSW50ZWdl ckZpZWxkKG51bGw9RmFsc2UpCisgICAgbW9udGggPSBtb2RlbHMuSW50ZWdlckZpZWxkKG51 bGw9RmFsc2UpCisKKyAgICBjbGFzcyBNZXRhOgorICAgICAgICBkYl90YWJsZSA9ICdsaXN0 X21vbnRocycKKyAgICAgICAgdW5pcXVlX3RvZ2V0aGVyID0gKCgnbGlzdGlkJywgJ3llYXIn LCAnbW9udGgnKSwpCisKKworY2xhc3MgTGlzdFRocmVhZHMobW9kZWxzLk1vZGVsKToKKyAg ICB0aHJlYWRpZCA9IG1vZGVscy5JbnRlZ2VyRmllbGQoKQorICAgIGxpc3RpZCA9IG1vZGVs cy5Gb3JlaWduS2V5KCdMaXN0Jywgb25fZGVsZXRlPW1vZGVscy5DQVNDQURFLCBkYl9jb2x1 bW49J2xpc3RpZCcpCisKKyAgICAjIERqYW5nbyBkb2VzIG5vdCBzdXBwb3J0IGNvbXBvc2l0 ZSBwcmltYXJ5IGtleXMuIFRoaXMgd2lsbCBiZQorICAgICMgY3JlYXRlZCB3aXRoIG1pZ3Jh dGlvbnMuUnVuU1FMKCkKKyAgICBjbGFzcyBNZXRhOgorICAgICAgICBkYl90YWJsZSA9ICds aXN0X3RocmVhZHMnCisKKworY2xhc3MgTG9hZGVycm9ycyhtb2RlbHMuTW9kZWwpOgorICAg IGxpc3RpZCA9IG1vZGVscy5Gb3JlaWduS2V5KExpc3QsIG51bGw9RmFsc2UsIGJsYW5rPUZh bHNlLCBvbl9kZWxldGU9bW9kZWxzLkNBU0NBREUsIGRiX2NvbHVtbj0nbGlzdGlkJykKKyAg ICBkYXQgPSBtb2RlbHMuRGF0ZVRpbWVGaWVsZChudWxsPUZhbHNlLCBhdXRvX25vd19hZGQ9 VHJ1ZSkKKyAgICBtc2dpZCA9IG1vZGVscy5UZXh0RmllbGQobnVsbD1GYWxzZSkKKyAgICBz cmN0eXBlID0gbW9kZWxzLlRleHRGaWVsZChudWxsPUZhbHNlKQorICAgIHNyYyA9IG1vZGVs cy5UZXh0RmllbGQobnVsbD1GYWxzZSkKKyAgICBlcnIgPSBtb2RlbHMuVGV4dEZpZWxkKG51 bGw9RmFsc2UpCisKKyAgICBjbGFzcyBNZXRhOgorICAgICAgICBkYl90YWJsZSA9ICdsb2Fk ZXJyb3JzJworCisKK2NsYXNzIExlZ2FjeW1hcChtb2RlbHMuTW9kZWwpOgorICAgIGxpc3Rp ZCA9IG1vZGVscy5Gb3JlaWduS2V5KExpc3QsIG51bGw9RmFsc2UsIGJsYW5rPUZhbHNlLCBv bl9kZWxldGU9bW9kZWxzLkNBU0NBREUsIGRiX2NvbHVtbj0nbGlzdGlkJykKKyAgICB5ZWFy ID0gbW9kZWxzLkludGVnZXJGaWVsZChudWxsPUZhbHNlKQorICAgIG1vbnRoID0gbW9kZWxz LkludGVnZXJGaWVsZChudWxsPUZhbHNlKQorICAgIG1zZ251bSA9IG1vZGVscy5JbnRlZ2Vy RmllbGQobnVsbD1GYWxzZSkKKyAgICBtc2dpZCA9IG1vZGVscy5UZXh0RmllbGQobnVsbD1G YWxzZSkKKworICAgIGNsYXNzIE1ldGE6CisgICAgICAgIGRiX3RhYmxlID0gJ2xlZ2FjeW1h cCcKKyAgICAgICAgdW5pcXVlX3RvZ2V0aGVyID0gKCgnbGlzdGlkJywgJ3llYXInLCAnbW9u dGgnLCAnbXNnbnVtJyksKQpkaWZmIC0tZ2l0IGEvbG9hZGVyL3NxbC9zY2hlbWEuc3FsIGIv bG9hZGVyL3NxbC9zY2hlbWEuc3FsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi ZTczNWQ5Li4wMDAwMDAwCi0tLSBhL2xvYWRlci9zcWwvc2NoZW1hLnNxbAorKysgL2Rldi9u dWxsCkBAIC0xLDE2MCArMCwwIEBACi1cc2V0IE9OX0VSUk9SX1NUT1Agb24KLQotQkVHSU47 Ci0KLUNSRUFURSBUQUJMRSBtZXNzYWdlcyAoCi0gICBpZCBTRVJJQUwgTk9UIE5VTEwgUFJJ TUFSWSBLRVksCi0gICBwYXJlbnRpZCBpbnQgUkVGRVJFTkNFUyBtZXNzYWdlcywKLSAgIHRo cmVhZGlkIGludCBOT1QgTlVMTCwKLSAgIF9mcm9tIHRleHQgTk9UIE5VTEwsCi0gICBfdG8g dGV4dCBOT1QgTlVMTCwKLSAgIGNjIHRleHQgTk9UIE5VTEwsCi0gICBzdWJqZWN0IHRleHQg Tk9UIE5VTEwsCi0gICBkYXRlIHRpbWVzdGFtcHR6IE5PVCBOVUxMLAotICAgbG9hZGRhdGUg dGltZXN0YW1wdHogTk9UIE5VTEwgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUCwKLSAgIGhh c19hdHRhY2htZW50IGJvb2xlYW4gTk9UIE5VTEwsCi0gICBoaWRkZW5zdGF0dXMgaW50IE5V TEwsCi0gICBtZXNzYWdlaWQgdGV4dCBOT1QgTlVMTCwKLSAgIGJvZHl0eHQgdGV4dCBOT1Qg TlVMTCwKLSAgIHJhd3R4dCBieXRlYSBOT1QgTlVMTCwKLSAgIGZ0aSB0c3ZlY3RvciBOT1Qg TlVMTAotKTsKLUNSRUFURSBJTkRFWCBpZHhfbWVzc2FnZXNfdGhyZWFkaWQgT04gbWVzc2Fn ZXModGhyZWFkaWQpOwotQ1JFQVRFIFVOSVFVRSBJTkRFWCBpZHhfbWVzc2FnZXNfbXNnaWQg T04gbWVzc2FnZXMobWVzc2FnZWlkKTsKLUNSRUFURSBJTkRFWCBpZHhfbWVzc2FnZXNfZGF0 ZSBPTiBtZXNzYWdlcyhkYXRlKTsKLUNSRUFURSBJTkRFWCBpZHhfbWVzc2FnZXNfcGFyZW50 aWQgT04gbWVzc2FnZXMocGFyZW50aWQpOwotCi1DUkVBVEUgVEFCTEUgbWVzc2FnZV9oaWRl X3JlYXNvbnMgKAotICAgbWVzc2FnZSBpbnQgTk9UIE5VTEwgUFJJTUFSWSBLRVkgUkVGRVJF TkNFUyBtZXNzYWdlcywKLSAgIGR0IHRpbWVzdGFtcHR6LAotICAgcmVhc29uIHRleHQsCi0g ICBieSB0ZXh0Ci0pOwotCi1DUkVBVEUgU0VRVUVOQ0UgdGhyZWFkaWRfc2VxOwotCi1DUkVB VEUgVEFCTEUgdW5yZXNvbHZlZF9tZXNzYWdlcygKLSAgIG1lc3NhZ2UgaW50IE5PVCBOVUxM IFJFRkVSRU5DRVMgbWVzc2FnZXMsCi0gICBwcmlvcml0eSBpbnQgTk9UIE5VTEwsCi0gICBt c2dpZCB0ZXh0IE5PVCBOVUxMLAotICAgQ09OU1RSQUlOVCB1bnJlc29sdmVkX21lc3NhZ2Vz X3BrZXkgUFJJTUFSWSBLRVkgKG1lc3NhZ2UsIHByaW9yaXR5KQotKTsKLQotQ1JFQVRFIFVO SVFVRSBJTkRFWCBpZHhfdW5yZXNvbHZlZF9tc2dpZF9tZXNzYWdlIE9OIHVucmVzb2x2ZWRf bWVzc2FnZXMobXNnaWQsIG1lc3NhZ2UpOwotCi1DUkVBVEUgVEFCTEUgbGlzdGdyb3VwcygK LSAgIGdyb3VwaWQgaW50IE5PVCBOVUxMIFBSSU1BUlkgS0VZLAotICAgZ3JvdXBuYW1lIHRl eHQgTk9UIE5VTEwgVU5JUVVFLAotICAgc29ydGtleSBpbnQgTk9UIE5VTEwKLSk7Ci0KLUNS RUFURSBUQUJMRSBsaXN0cygKLSAgIGxpc3RpZCBpbnQgTk9UIE5VTEwgUFJJTUFSWSBLRVks Ci0gICBsaXN0bmFtZSB0ZXh0IE5PVCBOVUxMIFVOSVFVRSwKLSAgIHNob3J0ZGVzYyB0ZXh0 IE5PVCBOVUxMLAotICAgZGVzY3JpcHRpb24gdGV4dCBOT1QgTlVMTCwKLSAgIGFjdGl2ZSBi b29sZWFuIE5PVCBOVUxMLAotICAgZ3JvdXBpZCBpbnQgTk9UIE5VTEwgUkVGRVJFTkNFUyBs aXN0Z3JvdXBzKGdyb3VwaWQpCi0pOwotCi1DUkVBVEUgVEFCTEUgbGlzdF9tb250aHMoCi0g ICBsaXN0aWQgaW50IE5PVCBOVUxMIFJFRkVSRU5DRVMgbGlzdHMobGlzdGlkKSwKLSAgIHll YXIgaW50IE5PVCBOVUxMLAotICAgbW9udGggaW50IE5PVCBOVUxMLAotICAgQ09OU1RSQUlO VCBsaXN0X21vbnRoc19wayBQUklNQVJZIEtFWSAobGlzdGlkLCB5ZWFyLCBtb250aCkKLSk7 Ci0KLUNSRUFURSBUQUJMRSBsaXN0X3RocmVhZHMoCi0gICB0aHJlYWRpZCBpbnQgTk9UIE5V TEwsIC8qIGNvbWVzIGZyb20gdGhyZWFkaWRfc2VxICovCi0gICBsaXN0aWQgaW50IE5PVCBO VUxMIFJFRkVSRU5DRVMgbGlzdHMobGlzdGlkKSwKLSAgIENPTlNUUkFJTlQgcGdfbGlzdF90 aHJlYWRzIFBSSU1BUlkgS0VZICh0aHJlYWRpZCwgbGlzdGlkKQotKTsKLUNSRUFURSBJTkRF WCBsaXN0X3RocmVhZHNfbGlzdGlkX2lkeCBPTiBsaXN0X3RocmVhZHMobGlzdGlkKTsKLQot Q1JFQVRFIFRBQkxFIGF0dGFjaG1lbnRzKAotICAgaWQgc2VyaWFsIG5vdCBudWxsIHByaW1h cnkga2V5LAotICAgbWVzc2FnZSBpbnQgbm90IG51bGwgcmVmZXJlbmNlcyBtZXNzYWdlcyhp ZCksCi0gICBmaWxlbmFtZSB0ZXh0IG5vdCBudWxsLAotICAgY29udGVudHR5cGUgdGV4dCBu b3QgbnVsbCwKLSAgIGF0dGFjaG1lbnQgYnl0ZWEgbm90IG51bGwKLSk7Ci1DUkVBVEUgSU5E RVggaWR4X2F0dGFjaG1lbnRzX21zZyBPTiBhdHRhY2htZW50cyhtZXNzYWdlKTsKLQotQ1JF QVRFIFRBQkxFIGxvYWRlcnJvcnMoCi0gICBpZCBTRVJJQUwgTk9UIE5VTEwgUFJJTUFSWSBL RVksCi0gICBsaXN0aWQgaW50IE5PVCBOVUxMLAotICAgZGF0IHRpbWVzdGFtcHR6IE5PVCBO VUxMIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAsCi0gICBtc2dpZCB0ZXh0IE5PVCBOVUxM LAotICAgc3JjdHlwZSB0ZXh0IE5PVCBOVUxMLAotICAgc3JjIHRleHQgTk9UIE5VTEwsCi0g ICBlcnIgdGV4dCBOT1QgTlVMTAotKTsKLQotLyogdGV4dHNlYXJjaCBjb25maWdzICovCi1D UkVBVEUgVEVYVCBTRUFSQ0ggQ09ORklHVVJBVElPTiBwZyAoUEFSU0VSPXRzcGFyc2VyKTsK LQotQ1JFQVRFIFRFWFQgU0VBUkNIIERJQ1RJT05BUlkgZW5nbGlzaF9pc3BlbGwgKAotICAg VEVNUExBVEUgPSBpc3BlbGwsCi0gICBEaWN0RmlsZSA9IGVuX3VzLAotICAgQWZmRmlsZSA9 IGVuX3VzLAotICAgU3RvcFdvcmRzID0gZW5nbGlzaAotKTsKLUNSRUFURSBURVhUIFNFQVJD SCBESUNUSU9OQVJZIHBnX2RpY3QgKAotICAgVEVNUExBVEUgPSBzeW5vbnltLAotICAgU1lO T05ZTVMgPSBwZ19kaWN0Ci0pOwotQ1JFQVRFIFRFWFQgU0VBUkNIIERJQ1RJT05BUlkgcGdf c3RvcCAoCi0gICBURU1QTEFURSA9IHNpbXBsZSwKLSAgIFN0b3BXb3JkcyA9IHBnX2RpY3QK LSk7Ci1BTFRFUiBURVhUIFNFQVJDSCBDT05GSUdVUkFUSU9OIHBnCi0gICBBTFRFUiBNQVBQ SU5HIEZPUiBhc2NpaXdvcmQsIGFzY2lpaHdvcmQsIGh3b3JkX2FzY2lpcGFydCwKLSAgICAg ICAgICAgICAgICAgICAgIHdvcmQsIGh3b3JkLCBod29yZF9wYXJ0Ci0gICAgV0lUSCBwZ19z dG9wLCBwZ19kaWN0LCBlbmdsaXNoX2lzcGVsbCwgZW5nbGlzaF9zdGVtOwotQUxURVIgVEVY VCBTRUFSQ0ggQ09ORklHVVJBVElPTiBwZwotICAgRFJPUCBNQVBQSU5HIEZPUiBlbWFpbCwg dXJsLCB1cmxfcGF0aCwgc2Zsb2F0LCBmbG9hdDsKLQotQ1JFQVRFIEZVTkNUSU9OIG1lc3Nh Z2VzX2Z0aV90cmlnZ2VyX2Z1bmMoKSBSRVRVUk5TIHRyaWdnZXIgQVMgJCQKLUJFR0lOCi0g ICBORVcuZnRpID0gc2V0d2VpZ2h0KHRvX3RzdmVjdG9yKCdwdWJsaWMucGcnLCBjb2FsZXNj ZShuZXcuc3ViamVjdCwgJycpKSwgJ0EnKSB8fAotICAgICAgICAgICAgIHNldHdlaWdodCh0 b190c3ZlY3RvcigncHVibGljLnBnJywgY29hbGVzY2UobmV3LmJvZHl0eHQsICcnKSksICdE Jyk7Ci0gICBSRVRVUk4gTkVXOwotRU5ECi0kJCBMQU5HVUFHRSAncGxwZ3NxbCc7Ci0KLUNS RUFURSBUUklHR0VSIG1lc3NhZ2VzX2Z0aV90cmlnZ2VyCi0gQkVGT1JFIElOU0VSVCBPUiBV UERBVEUgT0Ygc3ViamVjdCwgYm9keXR4dCBPTiAgbWVzc2FnZXMKLSBGT1IgRUFDSCBST1cg RVhFQ1VURSBQUk9DRURVUkUgbWVzc2FnZXNfZnRpX3RyaWdnZXJfZnVuYygpOwotQ1JFQVRF IElOREVYIG1lc3NhZ2VzX2Z0aV9pZHggT04gbWVzc2FnZXMgVVNJTkcgZ2luKGZ0aSk7Ci0K LUNSRUFURSBUQUJMRSBsZWdhY3ltYXAoCi0gICAgICAgbGlzdGlkIGludCBub3QgbnVsbCwK LSAgICAgICB5ZWFyIGludCBub3QgbnVsbCwKLSAgICAgICBtb250aCBpbnQgbm90IG51bGws Ci0gICAgICAgbXNnbnVtIGludCBub3QgbnVsbCwKLSAgICAgICBtc2dpZCB0ZXh0IG5vdCBu dWxsLAotQ09OU1RSQUlOVCBsZWdhY3ltYXBfcGsgUFJJTUFSWSBLRVkgKGxpc3RpZCwgeWVh ciwgbW9udGgsIG1zZ251bSkKLSk7Ci0KLS8qIFNpbXBsZSBBUEkgZm9yIGhpZGluZyBtZXNz YWdlcyAqLwotQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaGlkZV9tZXNzYWdlKG1zZ2lk X3R4dCB0ZXh0LCByZWFzb25fY29kZSBpbnRlZ2VyLCB1c2VyX3R4dCB0ZXh0LCByZWFzb25f dHh0IHRleHQpCi0gIFJFVFVSTlMgaW50ZWdlciBBUwotJEJPRFkkCi1ERUNMQVJFCi0gICAg cmV0dXJuZWRfaWQgaW50ZWdlcjsKLUJFR0lOCi0gICAgVVBEQVRFIG1lc3NhZ2VzIFNFVCBo aWRkZW5zdGF0dXMgPSByZWFzb25fY29kZSBXSEVSRSBtZXNzYWdlaWQgPSBtc2dpZF90eHQg UkVUVVJOSU5HIGlkIElOVE8gcmV0dXJuZWRfaWQ7Ci0KLSAgICBJRiBOT1QgRk9VTkQgVEhF TgotCVJBSVNFIEVYQ0VQVElPTiAnVGhlIHNwZWNpZmllZCBtZXNzYWdlICglKSBjb3VsZCBu b3QgYmUgZm91bmQuJywgbXNnaWRfdHh0OwotICAgIEVORCBJRjsKLQotICAgIElOU0VSVCBJ TlRPIG1lc3NhZ2VfaGlkZV9yZWFzb25zIChtZXNzYWdlLCBkdCwgcmVhc29uLCBieSkgVkFM VUVTIChyZXR1cm5lZF9pZCwgbm93KCksIHJlYXNvbl90eHQsIHVzZXJfdHh0KTsKLQotICAg IFJFVFVSTiByZXR1cm5lZF9pZDsKLUVORDsKLSRCT0RZJAotICBMQU5HVUFHRSBwbHBnc3Fs IFZPTEFUSUxFCi0gIENPU1QgMTAwOwotCi1cZWNobyBEb250IGZvcmdldCB0byBjb21taXQh Ci0tIAoyLjQyLjAKCg== --------------7dpbPRDk4b0qC3SObEOsTVCT Content-Type: text/x-patch; charset=UTF-8; name="0002-Avoid-possible-crash-in-views.py-when-parentid-is-nu.patch" Content-Disposition: attachment; filename*0="0002-Avoid-possible-crash-in-views.py-when-parentid-is-nu.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyYmM1MGI4ZDRhZDkyNzFlZmNmNDE2ODcwOTQzZGZlZTI0MTFjNzZjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Qz1DMz1BOWxlc3Rpbj0yME1hdHRl Pz0gPGdpdGxhYkBjbWF0dGUubWU+CkRhdGU6IFRodSwgMyBGZWIgMjAyMiAwOToxODoyMSAr MDEwMApTdWJqZWN0OiBbUEFUQ0ggMi8yXSBBdm9pZCBwb3NzaWJsZSBjcmFzaCBpbiB2aWV3 cy5weSB3aGVuIHBhcmVudGlkIGlzIG51bGwKCi0tLQogZGphbmdvL2FyY2hpdmVzL21haWxh cmNoaXZlcy92aWV3cy5weSB8IDMgKy0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZGphbmdvL2FyY2hpdmVzL21haWxh cmNoaXZlcy92aWV3cy5weSBiL2RqYW5nby9hcmNoaXZlcy9tYWlsYXJjaGl2ZXMvdmlld3Mu cHkKaW5kZXggYmYzMzM2ZS4uMWQwZGYwNCAxMDA2NDQKLS0tIGEvZGphbmdvL2FyY2hpdmVz L21haWxhcmNoaXZlcy92aWV3cy5weQorKysgYi9kamFuZ28vYXJjaGl2ZXMvbWFpbGFyY2hp dmVzL3ZpZXdzLnB5CkBAIC00ODAsMTMgKzQ4MCwxMiBAQCBkZWYgbWVzc2FnZShyZXF1ZXN0 LCBtc2dpZCk6CiAKICAgICByZXNwb25zZXMgPSBbdCBmb3IgdCBpbiB0aHJlYWRzdHJ1Y3Qg aWYgdFsncGFyZW50aWQnXSA9PSBtLmlkXQogCisgICAgcGFyZW50ID0gTm9uZQogICAgIGlm IG0ucGFyZW50aWQ6CiAgICAgICAgIGZvciB0IGluIHRocmVhZHN0cnVjdDoKICAgICAgICAg ICAgIGlmIHRbJ2lkJ10gPT0gbS5wYXJlbnRpZDoKICAgICAgICAgICAgICAgICBwYXJlbnQg PSB0CiAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICBlbHNlOgotICAgICAgICBwYXJlbnQg PSBOb25lCiAgICAgbmV4dHByZXYgPSBfZ2V0X25leHRwcmV2aW91cyhsaXN0bWFwLCBtLmRh dGUpCiAKICAgICByID0gcmVuZGVyX25hdihOYXZDb250ZXh0KHJlcXVlc3QsIGxpc3RzWzBd Lmxpc3RpZCwgbGlzdHNbMF0ubGlzdG5hbWUpLCAnbWVzc2FnZS5odG1sJywgewotLSAKMi40 Mi4wCgo= --------------7dpbPRDk4b0qC3SObEOsTVCT--