From owner-freebsd-hackers@FreeBSD.ORG Sun Jun 1 18:58:17 2014 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id AF65CDB7 for ; Sun, 1 Jun 2014 18:58:17 +0000 (UTC) Received: from mail-ie0-x230.google.com (mail-ie0-x230.google.com [IPv6:2607:f8b0:4001:c03::230]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6A54826A5 for ; Sun, 1 Jun 2014 18:58:17 +0000 (UTC) Received: by mail-ie0-f176.google.com with SMTP id rl12so3628788iec.21 for ; Sun, 01 Jun 2014 11:58:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dataix.net; s=rsa; h=references:mime-version:in-reply-to:content-type :content-transfer-encoding:message-id:cc:from:subject:date:to; bh=l1L1j0VtS5g1WFoxjgAqryG2TWzzCL8jjTKz39oe4wE=; b=YZQ4Ur6AdqKkzF53n4wEIHEAs7/tJoXhN9tahvi8VYkvI+/PHLHWy2EKIMNCSaiQhU oj8rHu/UCMLBXP3/weWi9CVapriJdCJbZpla7zOBV3mNolMGGoa56eUm6tca1kDIIPYd Dd3633UHJEApDX8Bc4803T4svoHVaRUgeVmMw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:references:mime-version:in-reply-to:content-type :content-transfer-encoding:message-id:cc:from:subject:date:to; bh=l1L1j0VtS5g1WFoxjgAqryG2TWzzCL8jjTKz39oe4wE=; b=Nk0vVowAEfGNVU8tLRYdJ2iZQE+tM4YjkAabwFKGpr9d4kLBw+bCAsDuwgHsB3RJi6 txfp3K2Ck8NvkNmcr7g852CS/Zm9+zSwZPLRWZmsj9qbajlsyO+t26dC4AvCBQ+B1JmQ hN3t83qAfrt+llZcipozZvdBkoiIIezSTb0xIPiTsZZbpdnMRKRxg0vqQhQgoz8HtOyt mBfIobGQldLbxklivaDznPqtN8kVM9asExTz59E/fbGYT+fXK0Xc0B6quWfexswkSyvB /5/tHBOTrOoUDQ2GNssBuHuSn+Q5PSHLTPYSu7zxtIBJPNSg8mck7Sn5d0U1zua64DC+ K+MA== X-Gm-Message-State: ALoCoQlFt1+X/VGEqJWkt6uDvOUuwO0Ly2TTv3owmZS+nW+A4733UMyIZGdGTSRo3KriF2lJi12G X-Received: by 10.42.20.205 with SMTP id h13mr3485419icb.84.1401649096741; Sun, 01 Jun 2014 11:58:16 -0700 (PDT) Received: from [172.31.35.2] (75-128-101-59.dhcp.sgnw.mi.charter.com. [75.128.101.59]) by mx.google.com with ESMTPSA id hy3sm5236991igb.1.2014.06.01.11.58.15 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 01 Jun 2014 11:58:15 -0700 (PDT) References: <538B61EC.9000403@mu.org> <5B82C892-12A4-4251-B3D2-A6D3EAAF90F9@dataix.net> <538B6FCC.9090301@mu.org> <538B761C.7060300@mu.org> Mime-Version: 1.0 (1.0) In-Reply-To: <538B761C.7060300@mu.org> Content-Type: multipart/signed; micalg=sha1; boundary=Apple-Mail-B322014B-5AA1-417F-A80B-20928CB18047; protocol="application/pkcs7-signature" Content-Transfer-Encoding: 7bit Message-Id: <50E51CBE-7F7B-4093-86A5-320ACE81072E@dataix.net> X-Mailer: iPhone Mail (11B554a) From: Jason Hellenthal Subject: Re: Upgrading an i386 machine from amd64. Date: Sun, 1 Jun 2014 14:58:12 -0400 To: Alfred Perlstein X-Content-Filtered-By: Mailman/MimeDel 2.1.18 Cc: FreeBSD Hackers X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 01 Jun 2014 18:58:17 -0000 --Apple-Mail-B322014B-5AA1-417F-A80B-20928CB18047 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable > On Jun 1, 2014, at 14:51, Alfred Perlstein wrote: >=20 >=20 >> On 6/1/14, 11:42 AM, Jason Hellenthal wrote: >> That would be nice. Could've swore there was something similar to that bu= t memory escapes me as I haven't done backwards cross compiles in awhile. >>=20 >> Curious have you done a svn status on your src tree in a while to see if t= here are any stale depends laying around that may affect the compilation ? >=20 > I use git. :) But the build tree was completely clean. >>=20 >> Also ALWAYS_CHECK_MAKE=3DYES defined in make.conf ?=20 > No, what does that do?=20 Instructs the top-level Makefile to check if make(1) is up-to-date. Not sure= if it really would have an effect on a cross build but worth a shot. make.conf(5) holds a better definition of it. >=20 > I think once I get this sorted I will make a blog post on it, right now th= at blog post is basically: >=20 > export TARGET=3Di386 > make buildworld -j36 > make buildkernel -j36 > mkdir -p /mnt/target.local /mnt/target > make installkernel installworld DESTDIR=3D/mnt/target.local > mount i386target:/ /mnt/target > rsync -avvH /mnt/target.local /mnt/target >=20 > I thought though there was a way to get this to work, obviously there is a= bug here that we lose "chflags" bits on install. I wonder if there's a way= to restore or preserve them? rsync(1) can be build from ports with the chflags patch that should aid in p= reserving them. rsync --fileflags . . .=20 >=20 > -Alfred >=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20 >=20 >>=20 >> --=20 >> Jason Hellenthal >> Voice: 95.30.17.6/616 >> JJH48-ARIN >>=20 >> On Jun 1, 2014, at 14:24, Alfred Perlstein wrote: >>=20 >>>=20 >>>> On 6/1/14, 10:34 AM, Jason Hellenthal wrote: >>>> What if you just NFS mount the obj directory from the 386 to the amd64 b= uild world for 386 the mount the src on the i386 and just rebuild strip and f= riends ? >>>>=20 >>>> A little more of a hack i know but would get the job done. >>>=20 >>> I tried that using install(1), then it broke with strip(1), then I basic= ally was like, "this is a rabbit hole, forget it" and used rsync. >>>=20 >>> I was really looking for a "buildinstalltools" or something target (as y= ou suggest), but I couldn't find one. >>>=20 >>> Is there an "buildinstalltools" target?=20 >>>=20 >>> -Alfred >>>>=20 >>>> --=20 >>>> Jason Hellenthal >>>> Voice: 95.30.17.6/616 >>>> JJH48-ARIN >>>>=20 >>>> On Jun 1, 2014, at 13:25, Alfred Perlstein wrote: >>>>=20 >>>>> Hello hackers. >>>>>=20 >>>>> Is there a way to build on amd64 and then mount over nfs the build and= src and installworld from an i386 machine? >>>>>=20 >>>>> The problem seems to be that "install" and "strip" and etc are built a= s amd64 binaries so that the installworld will fail. >>>>>=20 >>>>> Below I have a solution I was going to do a blog post about, but then r= ealized maybe I'd be leading people down the wrong path. >>>>>=20 >>>>> Can someone verify that I need to use rsync as opposed to installworld= for this to work? >>>>>=20 >>>>> I have an old i386 based soekris geode box called "soekris": >>>>> CPU: Geode(TM) Integrated Processor by AMD PCS (499.91-MHz 586-class C= PU) >>>>> Origin =3D "AuthenticAMD" Id =3D 0x5a2 Family =3D 0x5 Model =3D 0x= a Stepping =3D 2 >>>>> Features=3D0x88a93d >>>>> AMD Features=3D0xc0400000 >>>>> real memory =3D 536870912 (512 MB) >>>>> avail memory =3D 502792192 (479 MB) >>>>>=20 >>>>> Building on this machine is difficult because of the speed and lack of= space, so I decided to use my more powerful amd64 machine "spigot": >>>>> CPU: Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz (3392.37-MHz K8-class CPU= ) >>>>> Origin=3D"GenuineIntel" Id=3D0x206a7 Family=3D0x6 Model=3D0x2a Ste= pping=3D7 >>>>> ... >>>>> real memory =3D 17179869184 (16384 MB) >>>>> avail memory =3D 16585228288 (15816 MB) >>>>> FreeBSD/SMP: 1 package(s) x 4 core(s) x 2 SMT threads >>>>>=20 >>>>> So I've built an 10-stable on the amd64 machine using: >>>>>=20 >>>>> spigot % TARGET=3Di386 >>>>> spigot % make -j24 buildworld >>>>> spigot % make -j24 buildkernel >>>>>=20 >>>>> Works great, I get an i386 object tree under /usr/obj/i386.386/... >>>>>=20 >>>>> Then I go to install this over NFS and this is where I get stuck. >>>>>=20 >>>>> If I mount the i386 machine like so and install I get errors on libc a= nd other libraries: >>>>>=20 >>>>> spigot % mount soekris:/ /usr/soekris >>>>> spigot % cd /usr/src && make installworld >>>>> ..... >>>>> =3D=3D=3D> lib/libcrypt (install) >>>>> install -C -o root -g wheel -m 444 libcrypt.a /usr/soekris/usr/lib >>>>> install -C -o root -g wheel -m 444 libcrypt_p.a /usr/soekris/usr/lib= >>>>> install -s -o root -g wheel -m 444 -fschg libcrypt.so.5 /usr/soekri= s/lib >>>>> install: /usr/soekris/lib/libcrypt.so.5: Input/output error >>>>> *** Error code 71 >>>>>=20 >>>>> Stop. >>>>> make[5]: stopped in /usr/trees/freebsd.git/lib/libcrypt >>>>> *** Error code 1 >>>>>=20 >>>>> OK, so that doesn't work... >>>>>=20 >>>>> Maybe if I mount the amd64 build host under the soekris box, no that b= reaks because the bootstrap tools (install(1), strip(1)) are built for amd64= so the install fails. >>>>>=20 >>>>> So what I finally did on the amd64 box was: >>>>>=20 >>>>> spigot % mkdir /use/soekris.local >>>>> spigot % make installworld DESTDIR=3D/usr/soekris.local >>>>> spigot % mount soekris:/ /usr/soekris >>>>> spigot % rsync -avvH /usr/soekris.local/ /usr/soekris/ >>>>>=20 >>>>> That hung at the end forever at the end: >>>>> var/unbound/ >>>>> var/yp/ >>>>> var/yp/Makefile >>>>> var/yp/Makefile.dist >>>>> .... >>>>>=20 >>>>> but after giving it an hour I just hit ^C and rebooted and everything w= as more or less fine. >>>>>=20 >>>>> Is there a better way to do this? Was the "installworld to NFS" break= ing because of NFS bugs? Should I get those to Rick? I'm just confused. >>>>>=20 >>>>> -Alfred >>>>> _______________________________________________ >>>>> freebsd-hackers@freebsd.org mailing list >>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers >>>>> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.= org" >=20 --Apple-Mail-B322014B-5AA1-417F-A80B-20928CB18047 Content-Type: application/pkcs7-signature; name=smime.p7s Content-Disposition: attachment; filename=smime.p7s Content-Transfer-Encoding: base64 MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIUOTCCBjAw ggUYoAMCAQICAwaijjANBgkqhkiG9w0BAQsFADCBjDELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0 YXJ0Q29tIEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcx ODA2BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRlcm1lZGlhdGUgQ2xpZW50IENB MB4XDTEzMDUxODA4NTA0OFoXDTE0MDUxOTIyMDk0N1owSDEfMB0GA1UEAwwWamhlbGxlbnRoYWxA ZGF0YWl4Lm5ldDElMCMGCSqGSIb3DQEJARYWamhlbGxlbnRoYWxAZGF0YWl4Lm5ldDCCASIwDQYJ KoZIhvcNAQEBBQADggEPADCCAQoCggEBALgnYFS1bWZr3KhKBzWAdRwrY+En+RRV8nCaYubqrMG+ YJbuenaIKSbIuFiDWipW4RHYTpE28pKaSnaVTG9WtAZvsWj0gYN9g2fYCnCOUceES2Yvi3RavxpB hsuzKIfsHb8iNNSEuczLu6gn4mQyaHwE4x6xSUKmbK8njR+YoF522F60wjsnq5dlOJdTrhDfObE5 5P23279WbRp8azgZX1VRB66wdKRDuSI1vBts4Nsha2paXd6HUUduHrPACBQREJTGXN8XtEKVwo63 aKUhRgtUwHNEuSWck/xwVl7PBUWH2dORAWTCqHjNuCKNOQ1/0LMiyMj7FdsBjN4dgL4YZpsCAwEA AaOCAtwwggLYMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggr BgEFBQcDBDAdBgNVHQ4EFgQU29qUrmZtgQ7ZVoDKogfpJOSfk+YwHwYDVR0jBBgwFoAUU3Ltkpzg 2ssBXHx+ljVO8tS4UYIwIQYDVR0RBBowGIEWamhlbGxlbnRoYWxAZGF0YWl4Lm5ldDCCAUwGA1Ud IASCAUMwggE/MIIBOwYLKwYBBAGBtTcBAgMwggEqMC4GCCsGAQUFBwIBFiJodHRwOi8vd3d3LnN0 YXJ0c3NsLmNvbS9wb2xpY3kucGRmMIH3BggrBgEFBQcCAjCB6jAnFiBTdGFydENvbSBDZXJ0aWZp Y2F0aW9uIEF1dGhvcml0eTADAgEBGoG+VGhpcyBjZXJ0aWZpY2F0ZSB3YXMgaXNzdWVkIGFjY29y ZGluZyB0byB0aGUgQ2xhc3MgMSBWYWxpZGF0aW9uIHJlcXVpcmVtZW50cyBvZiB0aGUgU3RhcnRD b20gQ0EgcG9saWN5LCByZWxpYW5jZSBvbmx5IGZvciB0aGUgaW50ZW5kZWQgcHVycG9zZSBpbiBj b21wbGlhbmNlIG9mIHRoZSByZWx5aW5nIHBhcnR5IG9ibGlnYXRpb25zLjA2BgNVHR8ELzAtMCug KaAnhiVodHRwOi8vY3JsLnN0YXJ0c3NsLmNvbS9jcnR1MS1jcmwuY3JsMIGOBggrBgEFBQcBAQSB gTB/MDkGCCsGAQUFBzABhi1odHRwOi8vb2NzcC5zdGFydHNzbC5jb20vc3ViL2NsYXNzMS9jbGll bnQvY2EwQgYIKwYBBQUHMAKGNmh0dHA6Ly9haWEuc3RhcnRzc2wuY29tL2NlcnRzL3N1Yi5jbGFz czEuY2xpZW50LmNhLmNydDAjBgNVHRIEHDAahhhodHRwOi8vd3d3LnN0YXJ0c3NsLmNvbS8wDQYJ KoZIhvcNAQELBQADggEBAHsw8/Hw07gsNTKYnld74NBFtHnQOPkXYuccWx3j0PGQe9nqNxeingBf 2yvx+xBQzBoi4J1u84Jbrbe8Ii3+LLD/QMW9cN0SBIgRStPQLVee4STdjeabGmpXQa7omC02wYYO 83qh6CgJEIbmrsBSZH8ZSVrjkC4UmZS8wAQMS3qTWAPF0ZQGWx2+Gks2fXuacyt2LpNR+p9ogjAZ 1/rmUKjNhQZLswytaLRUdwAwSfQ3+TNs68h6Kv1LC3bNGBT3NEtr2q/nzzb5MzuFcDE6f9exroAC 4BHmokAprhna/vZdb6BrPjpXgRAlWAh3wEMxw75M9S/Nbzj/jNp+I+lvUJYwggY0MIIEHKADAgEC AgEeMA0GCSqGSIb3DQEBBQUAMH0xCzAJBgNVBAYTAklMMRYwFAYDVQQKEw1TdGFydENvbSBMdGQu MSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBDZXJ0aWZpY2F0ZSBTaWduaW5nMSkwJwYDVQQDEyBT dGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNzEwMjQyMTAxNTVaFw0xNzEwMjQy MTAxNTVaMIGMMQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMi U2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzE4MDYGA1UEAxMvU3RhcnRDb20gQ2xh c3MgMSBQcmltYXJ5IEludGVybWVkaWF0ZSBDbGllbnQgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IB DwAwggEKAoIBAQDHCYPMzi3YGrEppC4Tq5a+ijKDjKaIQZZVR63UbxIP6uq/I0fhCu+cQhoUfE6E RKKnu8zPf1Jwuk0tsvVCk6U9b+0UjM0dLep3ZdE1gblK/1FwYT5Pipsu2yOMluLqwvsuz9/9f1+1 PKHG/FaR/wpbfuIqu54qzHDYeqiUfsYzoVflR80DAC7hmJ+SmZnNTWyUGHJbBpA8Q89lGxahNvur yGaC/o2/ceD2uYDX9U8Eg5DpIpGQdcbQeGarV04WgAUjjXX5r/2dabmtxWMZwhZna//jdiSyrrSM TGKkDiXm6/3/4ebfeZuCYKzN2P8O2F/Xe2AC/Y7zeEsnR7FOp+uXAgMBAAGjggGtMIIBqTAPBgNV HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUU3Ltkpzg2ssBXHx+ljVO8tS4 UYIwHwYDVR0jBBgwFoAUTgvvGqRAW6UXaYcwyjRoQ9BBrvIwZgYIKwYBBQUHAQEEWjBYMCcGCCsG AQUFBzABhhtodHRwOi8vb2NzcC5zdGFydHNzbC5jb20vY2EwLQYIKwYBBQUHMAKGIWh0dHA6Ly93 d3cuc3RhcnRzc2wuY29tL3Nmc2NhLmNydDBbBgNVHR8EVDBSMCegJaAjhiFodHRwOi8vd3d3LnN0 YXJ0c3NsLmNvbS9zZnNjYS5jcmwwJ6AloCOGIWh0dHA6Ly9jcmwuc3RhcnRzc2wuY29tL3Nmc2Nh LmNybDCBgAYDVR0gBHkwdzB1BgsrBgEEAYG1NwECATBmMC4GCCsGAQUFBwIBFiJodHRwOi8vd3d3 LnN0YXJ0c3NsLmNvbS9wb2xpY3kucGRmMDQGCCsGAQUFBwIBFihodHRwOi8vd3d3LnN0YXJ0c3Ns LmNvbS9pbnRlcm1lZGlhdGUucGRmMA0GCSqGSIb3DQEBBQUAA4ICAQAKgwh9eKssBly4Y4xerhy5 I3dNoXHYfYa8PlVLL/qtXnkFgdtY1o95CfegFJTwqBBmf8pyTUnFsukDFUI22zF5bVHzuJ+GxhnS qN2sD1qetbYwBYK2iyYA5Pg7Er1A+hKMIzEzcduRkIMmCeUTyMyikfbUFvIBivtvkR8ZFAk22BZy +pJfAoedO61HTz4qSfQoCRcLN5A0t4DkuVhTMXIzuQ8CnykhExD6x4e6ebIbrjZLb7L+ocR0y4Yj Cl/Pd4MXU91y0vTipgr/O75CDUHDRHCCKBVmz/Rzkc/b970MEeHt5LC3NiWTgBSvrLEuVzBKM586 YoRD9Dy3OHQgWI270g+5MYA8GfgI/EPT5G7xPbCDz+zjdH89PeR3U4So4lSXur6H6vp+m9TQXPF3 a0LwZrp8MQ+Z77U1uL7TelWO5lApsbAonrqASfTpaprFVkL4nyGH+NHST2ZJPWIBk81i6Vw0ny0q ZW2Niy/QvVNKbb43A43ny076khXO7cNbBIRdJ/6qQNq9Bqb5C0Q5nEsFcj75oxQRqlKf6TcvGbjx kJh8BYtv9ePsXklAxtm8J7GCUBthHSQgepbkOexhJ0wP8imUkyiPHQ0GvEnd83129fZjoEhdGwXV 27ioRKbj/cIq7JRXun0NbeY+UdMYu9jGfIpDLtUUGSgsg2zMGs5R4jCCB8kwggWxoAMCAQICAQEw DQYJKoZIhvcNAQEFBQAwfTELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xKzAp BgNVBAsTIlNlY3VyZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxKTAnBgNVBAMTIFN0YXJ0 Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MDkxNzE5NDYzNloXDTM2MDkxNzE5NDYz NlowfTELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xKzApBgNVBAsTIlNlY3Vy ZSBEaWdpdGFsIENlcnRpZmljYXRlIFNpZ25pbmcxKTAnBgNVBAMTIFN0YXJ0Q29tIENlcnRpZmlj YXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAwYjbCbxsRnx4 n5V7tTOQ8nJi1sE2ICIkXs7pd/JDCqIGZKTMjjb4OOYj8G5tsTzdcqOFHKHTPbQzK9Mvr/7qsEFZ Z7bEBn0KnnSF1nlMgDd63zkFUln39BtGQ6TShYXSw3HzdWI0uiyKfx6P7u000BHHls1SPboz1t1N 3gs7SkufwiYv+rUWHHI1d8o8XebK4SaLGjZ2XAHbdBQl/u21oIgP3XjKLR8HlzABLXJ5+kbWEyqo uaarg0kd5fLv3eQBjhgKj2NTFoViqQ4ZOsy1ZqbCa3QH5Cvhdj60bdj2ROFzYh87xL6gU1YlbFEJ 96qryr92/W2b853bvz1mvAxWqq+YSJU6S9+nWFDZOHWpW+pDDAL/mevobE1wWyllnN2qXcyvATHs DOvSjejqnHvmbvcnZgwaSNduQuM/3iE+e+ENcPtjqqhsGlS0XCV6yaLJixamuyx+F14FTVhuEh0B 7hIQDcYyfxj//PT6zW6R6DZJvhpIaYvClk0aErJpF8EKkNb6eSJIv7p7afhwx/p6N9jYDdJ2T1f/ kLfjkdLd78Jgt2c63f6qnPDUi39yIs7Gn5e2+K+KoBCo2fsYxra1XFI8ibYZKnMBCg8DsxJg8nov gdujbv8mMJf1i92JV7atPbOvK8W3dgLwpdYrmoYUKnL24zOMXQlLE9+7jHQTUksCAwEAAaOCAlIw ggJOMAwGA1UdEwQFMAMBAf8wCwYDVR0PBAQDAgGuMB0GA1UdDgQWBBROC+8apEBbpRdphzDKNGhD 0EGu8jBkBgNVHR8EXTBbMCygKqAohiZodHRwOi8vY2VydC5zdGFydGNvbS5vcmcvc2ZzY2EtY3Js LmNybDAroCmgJ4YlaHR0cDovL2NybC5zdGFydGNvbS5vcmcvc2ZzY2EtY3JsLmNybDCCAV0GA1Ud IASCAVQwggFQMIIBTAYLKwYBBAGBtTcBAQEwggE7MC8GCCsGAQUFBwIBFiNodHRwOi8vY2VydC5z dGFydGNvbS5vcmcvcG9saWN5LnBkZjA1BggrBgEFBQcCARYpaHR0cDovL2NlcnQuc3RhcnRjb20u b3JnL2ludGVybWVkaWF0ZS5wZGYwgdAGCCsGAQUFBwICMIHDMCcWIFN0YXJ0IENvbW1lcmNpYWwg KFN0YXJ0Q29tKSBMdGQuMAMCAQEagZdMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0aGUgc2VjdGlv biAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhv cml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3ku cGRmMBEGCWCGSAGG+EIBAQQEAwIABzA4BglghkgBhvhCAQ0EKxYpU3RhcnRDb20gRnJlZSBTU0wg Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwDQYJKoZIhvcNAQEFBQADggIBABZsmfRmDDT10IVefQrs 2hBOOBxe36YlBUuRMsHoO/E93UQJWwdJiinLZgK3sZr3JZgJPI4b4d02hytLu2jTOWY9oCbH8jmR HVGrgnt+1c5a5OIDV3Bplwj5XlimCt+MBppFFhY4Cl5X9mLHegIF5rwetfKe9Kkpg/iyFONuKIdE w5Aa3jipPKxDTWRFzt0oqVzyc3sE+Bfoq7HzLlxkbnMxOhK4vLMR5H2PgVGaO42J9E2TZns8A+3T mh2a82VQ9aDQdZ8vr/DqgkOY+GmciXnEQ45GcuNkNhKv9yUeOImQd37Da2q5w8tES6x4kIvnxywe SxFEyDRSJ80KXZ+FwYnVGnjylRBTMt2AhGZ12bVoKPthLr6EqDjAmRKGpR5nZK0GLi+pcIXHlg98 iWX1jkNUDqvdpYA5lGDANMmWcCyjEvUfSHu9HH5rt52Q9CI7rvj8Ksr6glKg769LVZPrwbXwIous NE4mIgShhyx1SrflfRPXuAxkwDbSyS+GEowjCcEbgjtzSaNqV4eU5dZ4xZlDY+NN4Hct4WWZcmkE GkcJ5g8BViT7H78OealYLrnECQF+lbptAAY+supKEDnY0Cv1v+x1v5cCxQkbCNxVN+KB+zeEQ2Ig yudWS2Xq/mzBJJMkoTTrBf+aIq6bfT/xZVEKpjBqs/SIHIAN/HKK6INeMYIDbzCCA2sCAQEwgZQw gYwxCzAJBgNVBAYTAklMMRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMSswKQYDVQQLEyJTZWN1cmUg RGlnaXRhbCBDZXJ0aWZpY2F0ZSBTaWduaW5nMTgwNgYDVQQDEy9TdGFydENvbSBDbGFzcyAxIFBy aW1hcnkgSW50ZXJtZWRpYXRlIENsaWVudCBDQQIDBqKOMAkGBSsOAwIaBQCgggGvMBgGCSqGSIb3 DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTE0MDYwMTE4NTgxM1owIwYJKoZIhvcN AQkEMRYEFKX+fBj5miRC9yhsAyMaB7Lt7hW3MIGlBgkrBgEEAYI3EAQxgZcwgZQwgYwxCzAJBgNV BAYTAklMMRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMSswKQYDVQQLEyJTZWN1cmUgRGlnaXRhbCBD ZXJ0aWZpY2F0ZSBTaWduaW5nMTgwNgYDVQQDEy9TdGFydENvbSBDbGFzcyAxIFByaW1hcnkgSW50 ZXJtZWRpYXRlIENsaWVudCBDQQIDBqKOMIGnBgsqhkiG9w0BCRACCzGBl6CBlDCBjDELMAkGA1UE BhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0ZC4xKzApBgNVBAsTIlNlY3VyZSBEaWdpdGFsIENl cnRpZmljYXRlIFNpZ25pbmcxODA2BgNVBAMTL1N0YXJ0Q29tIENsYXNzIDEgUHJpbWFyeSBJbnRl cm1lZGlhdGUgQ2xpZW50IENBAgMGoo4wDQYJKoZIhvcNAQEBBQAEggEAGjWCR+tDT/xkFtqTIDHX qfM3Fae2SOCz21HrYgxMk6fpoBHJdsOIm6q+u2Wz9oWI6vQYFHb9syibeC11t4PTgvVYGxCmMd1F VZ7VZ/MHOInCsSud0Qya1GCPtT2i8vEIMN6FCU66UBR2aIWUvlvzO6dO0eqfp12uzW9d1b+KfrTZ Ab5PaAjWkeKtthr68dC6ut8EfOCwzRH3Bf1sS6etBV6BOQO5OSipJiCqLYUt0WFs4q+rtW6VbBBX YsT/hEEYpn/pNq4bcVGr9ly2k2KoXLiRulj2b7SEGC7xD4gIsHyYbkAlpC6bBn120bKS21k72vGk wDwbY3gGwdwZY3TXMAAAAAAAAA== --Apple-Mail-B322014B-5AA1-417F-A80B-20928CB18047--