clockwork.cubedesigners.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIANFl2JCSaJevMwQgEbkSTskRo9sEPNbPcaCURgxDu6q
kingkong.cubedesigners.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAYlGygCsICCRvgOUYi18Nwudv3z1vUsRmvvDKQ4Gs95
kingkong.cubedesigners.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEIbwg6rJgn3sVRiS0MIxzMWI0BCOyvpoU031Wr2O3jHyEtBPfntcURQHloxD0D6gsD1Ps56a3b4/SBQgWqZY6Y=
+192.168.10.176 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILRkvb1WurcFyDt1Afedb3vDFsJh07PbUzOPxgAyPEIz
+192.168.10.32 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIizfZpU3yj5wLdHbMjcpeUsFXyQYc4ekMWekNxLZaZX
+192.168.10.102 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFm4EKDXLwDEGP0R1Ie+K+UbM+98ECvyOdma+oASacUJ
+192.168.10.102 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC7/de3HhC7g6KV5PCcw/2DdJUvHVu160hdUFGVq6s/bcNkt8PrS4qxl3Cc5FUFtwRmZdFeWKIC7jTJGq/PMa5HTrJcVy/VuQBuxoZv28FPxIX0Cx8pdtqtVa4L9VpyibmsNkERVTh1nfSAwVjvuHBy4WyeC/kDZsDZOAY/IDrdTE6hYhJjSW2WZXixPjBgM9lEklemokklA5KQstwkKh8mGyF9chYc3wU+Eyrb2faplSJ59BbjoV4Jh7JLzX+ttE7W/qTG2dVIcgrqwovU+RP+C/1rxmUUAyDThDj6Ug3g7oPgBj+Eo4EXq10X3LP6bkzFgV9cJc5orBsB5olWA2cUUYBOMaFO0FwClGFHsuxRo9zdvKoLUp2Dx8Q16z9sQXeBdk9W3qEVjRh1DB8smCxSrNObuqKqc36PmezPmkv/SNvD1wrEmQ/0/a9uznOoegOaW9k1lBhooxDaiQCyCO80DD/E7JDj/euRZ42qEBrxeOGCbUkPTHCXQo3glhcPAjc=
+192.168.10.102 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBB+yTkg8a5sqFxBSLmXEPD3h/vSlNu7ptk7ZreYD85NtRtwu/+ixk87olCEG3v8iDxKoYs31PiBc/Rnu03ey/1Y=
[paris.cubedesigners.com]:22622 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBB+yTkg8a5sqFxBSLmXEPD3h/vSlNu7ptk7ZreYD85NtRtwu/+ixk87olCEG3v8iDxKoYs31PiBc/Rnu03ey/1Y=
clockwork.cubedesigners.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIANFl2JCSaJevMwQgEbkSTskRo9sEPNbPcaCURgxDu6q
kingkong.cubedesigners.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEIbwg6rJgn3sVRiS0MIxzMWI0BCOyvpoU031Wr2O3jHyEtBPfntcURQHloxD0D6gsD1Ps56a3b4/SBQgWqZY6Y=
+192.168.10.102 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFm4EKDXLwDEGP0R1Ie+K+UbM+98ECvyOdma+oASacUJ
+++ /dev/null
-|1|3IVVBxZXULg3/WOtSN48ccHM8CE=|kgSZNXrlf9Na7pr0Rznwc72BIF0= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAqGqBPO6XTFdvWPXvJPAGMYfugcbPp51KXkVH7NPMmdKeo6/Q9xbBajJmlXRh3jAeeCOehZ8C3acpMFIie0iFcECBaHNT+fElEN45AMRpnP2OHkZUdm9VtbT4FrHhHJKgHh/GHn4rx3PJWO+bPoPHFu3oyn5pDKAjA6Lzb8uqA34Oyv3aDySKgBx9rORzeOI58AFnldOEOsCnJNkF3/3lgbt+h70Pk42ks6gxcOCQk4Ag47FqrZ7jrqKo+qnZW0ybIcXuuJdNh2CPEzLHvCXDppBuVKTYKsF57i/yDYheq4cXTvztYaW9DEwClnJULYX0sEzZaDSAR9wQyseNb3z7Bw==
-|1|79Gj1cwpFZ5sfN3wlkBoZBTiJoQ=|l5GsQWwZJ2bYPekKCOO6qXfG3QM= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAqGqBPO6XTFdvWPXvJPAGMYfugcbPp51KXkVH7NPMmdKeo6/Q9xbBajJmlXRh3jAeeCOehZ8C3acpMFIie0iFcECBaHNT+fElEN45AMRpnP2OHkZUdm9VtbT4FrHhHJKgHh/GHn4rx3PJWO+bPoPHFu3oyn5pDKAjA6Lzb8uqA34Oyv3aDySKgBx9rORzeOI58AFnldOEOsCnJNkF3/3lgbt+h70Pk42ks6gxcOCQk4Ag47FqrZ7jrqKo+qnZW0ybIcXuuJdNh2CPEzLHvCXDppBuVKTYKsF57i/yDYheq4cXTvztYaW9DEwClnJULYX0sEzZaDSAR9wQyseNb3z7Bw==
-|1|JB8CpLWqmxSPxOODwUlZ3BNWNm8=|YNelVJvU8nVRuZtsjEv9tjXi5S0= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9IKKQQsmGCFUJwYTCJ1uEavuYtCVoKni0Hxx6QsxkyP73ehJ/mFucqbwSdgNWLPmuCnRtanHtzb1/pFxi6Om9BKVND0mp8WkAoNIVAt57FkWZ6QacfoPJ3PGeTt+jmEkRX38qrnGqsIzaAVQLNXmDQWsgS1wWl7O/tBBNr4kF4FPXeNvfhvqr32m81UESCgomyPIGFvEoVLSbHLfGIKR2iQveR02k73T1ZYJOdsY40lBl1Qukdgl3a/MtyuuNp6Y5Y1UsAFAgHw+65XpAPE+mIHfVVq61AB1tqO8YclYVc1EcYe0oCXX0pEVAZ6ovgOQp5vwi9XXamdLQwxhCC6Nv
-|1|6gvpL4YUhLcoIL7jdxOH1IUlytU=|JBLgxV+tWJTqGZIwx4yzgIw+99c= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/7+EoVIn+sUMZwhBNCz1J7U+dJbUmsV8R7F7JhOIeEMzTb7ZEgV3ai12Rqysi6ig3UkBztsRZWXFmXtBC5BmhB1axfMMIdJLNzX5dZLxT0Py8Sm8i2Xh/JoaiqyVaa9Om+Hd8G+94HDQkelW4bEz1EPLOo021Mja5b8N2P7W47H4ajYZs1IndabjXldG0e4yOu0Yt4fTF+UKc3vD0TgibpJlfFvyEWYIJmvYxwc23IlTut5HxxLDuUmTScFxw08xJibuE/W0fz2+vT8iVZH5ycw1UTb9CJQYI4/jqWMAgF/II7WToZ33CNSfkNKucwOggoqqiq++yx20FxC22l1pJ
-|1|Uea6nsxny1zmqQunea1mVrMhj2c=|Wq5ajXUFSpG2nMQYW3q7JWOVv1A= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/7+EoVIn+sUMZwhBNCz1J7U+dJbUmsV8R7F7JhOIeEMzTb7ZEgV3ai12Rqysi6ig3UkBztsRZWXFmXtBC5BmhB1axfMMIdJLNzX5dZLxT0Py8Sm8i2Xh/JoaiqyVaa9Om+Hd8G+94HDQkelW4bEz1EPLOo021Mja5b8N2P7W47H4ajYZs1IndabjXldG0e4yOu0Yt4fTF+UKc3vD0TgibpJlfFvyEWYIJmvYxwc23IlTut5HxxLDuUmTScFxw08xJibuE/W0fz2+vT8iVZH5ycw1UTb9CJQYI4/jqWMAgF/II7WToZ33CNSfkNKucwOggoqqiq++yx20FxC22l1pJ
-|1|CXic6YjQjVPYsCXH/qkhlh3M0k0=|BhcTCPYg9r1J2l6G2t43DNy73a0= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/7+EoVIn+sUMZwhBNCz1J7U+dJbUmsV8R7F7JhOIeEMzTb7ZEgV3ai12Rqysi6ig3UkBztsRZWXFmXtBC5BmhB1axfMMIdJLNzX5dZLxT0Py8Sm8i2Xh/JoaiqyVaa9Om+Hd8G+94HDQkelW4bEz1EPLOo021Mja5b8N2P7W47H4ajYZs1IndabjXldG0e4yOu0Yt4fTF+UKc3vD0TgibpJlfFvyEWYIJmvYxwc23IlTut5HxxLDuUmTScFxw08xJibuE/W0fz2+vT8iVZH5ycw1UTb9CJQYI4/jqWMAgF/II7WToZ33CNSfkNKucwOggoqqiq++yx20FxC22l1pJ
-|1|A8NgqsDMpVf0ns3j3hYJ4PQdffA=|+vb9SJgj1SWQcYY3VRQfkqtHack= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/7+EoVIn+sUMZwhBNCz1J7U+dJbUmsV8R7F7JhOIeEMzTb7ZEgV3ai12Rqysi6ig3UkBztsRZWXFmXtBC5BmhB1axfMMIdJLNzX5dZLxT0Py8Sm8i2Xh/JoaiqyVaa9Om+Hd8G+94HDQkelW4bEz1EPLOo021Mja5b8N2P7W47H4ajYZs1IndabjXldG0e4yOu0Yt4fTF+UKc3vD0TgibpJlfFvyEWYIJmvYxwc23IlTut5HxxLDuUmTScFxw08xJibuE/W0fz2+vT8iVZH5ycw1UTb9CJQYI4/jqWMAgF/II7WToZ33CNSfkNKucwOggoqqiq++yx20FxC22l1pJ
-|1|OjQ1Mm5cchDnVBEtOlqfz7LTLrg=|k2r3tfhHXBBXKfFgWuuw5u4jpWc= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC/7+EoVIn+sUMZwhBNCz1J7U+dJbUmsV8R7F7JhOIeEMzTb7ZEgV3ai12Rqysi6ig3UkBztsRZWXFmXtBC5BmhB1axfMMIdJLNzX5dZLxT0Py8Sm8i2Xh/JoaiqyVaa9Om+Hd8G+94HDQkelW4bEz1EPLOo021Mja5b8N2P7W47H4ajYZs1IndabjXldG0e4yOu0Yt4fTF+UKc3vD0TgibpJlfFvyEWYIJmvYxwc23IlTut5HxxLDuUmTScFxw08xJibuE/W0fz2+vT8iVZH5ycw1UTb9CJQYI4/jqWMAgF/II7WToZ33CNSfkNKucwOggoqqiq++yx20FxC22l1pJ
-|1|BnxfVgZBBlN7XTDhT0lEF+Zfaxk=|xd+kTDGYOXcR2XM7AtxA5uzbeIY= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKwJElTYlGbB3mkZmRORB1sidkB7c7M0cVjsxHB0/0E9HgvnoFU3n59w/250s+AQvgxd1yVCFTVvoKuenOFsrO4=
-|1|Fg32JjcqpbD8G8iqS2/uBg/9utc=|lP7P37zRHrn7tN6gRWdRJIGIrQA= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKwJElTYlGbB3mkZmRORB1sidkB7c7M0cVjsxHB0/0E9HgvnoFU3n59w/250s+AQvgxd1yVCFTVvoKuenOFsrO4=
-|1|JK0UKVXeAaqmtsXO+FE09tboyUU=|+6hN9wY1k4g4vRq9EGEJXfnvy+o= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPYP64CSI+tBizZ3/ooWRuKAqElrfO4sgjjeFixkctKtY8AX/nvRBGcbt04GLz0s7MAWC/fD8IHx6hcfMJFIVZE=
-|1|Mk2DCVcx82lnw6pHPwwBPkDZxCs=|cNjaLJfVZIIgUCDoA0NkvqorccA= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBJeLh7OP6Mm9daVphpXKuy4X4xfRdfbvSv07qEpzJOurT9PYkYZ3/j4TU9RtnwYoBjUlJRd9/RnqM2FI65J8Ry8=
-|1|szICOSWCm2u6BXcKG3yiO8WPddM=|JsMpAskGQWAkJnnE+FJhimT9ZUg= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIwustnnEdkm0E6FGbyJOZjOx6L4OitNv8f8IALrYUbUAchWJkZMO+YamJELJNIfrcm52LcZHZJhJ4GEaTLHa1vs7pBF9S2RExpCfAhMFy0f6nL/Wc1n8oEePQX9t4xtHLtkdVqQ2ltjiy74zrNIwsMffpYnNgF1Zbexn+DkSzRSvngMKbt/gJEVBNvKCAuzydEMfjWzgi3sr0fKOvAgMLvK97I5adBHBAn3A9ex12RCGKAPqkkwKeKA6KcP0Uu/fsaXGZ2fy4Gm4Lb7WpZKFod7qIApDlFP2qeToMoItc2SirMULmGiWNvfa+zk51bNl+dwIw9jMdS648wYIcZNy7
-|1|azs4qvB1uhtyask+/kSuwMp9pqU=|ErvvSESJuf5tp8KH62zHgGv5FeI= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDIwustnnEdkm0E6FGbyJOZjOx6L4OitNv8f8IALrYUbUAchWJkZMO+YamJELJNIfrcm52LcZHZJhJ4GEaTLHa1vs7pBF9S2RExpCfAhMFy0f6nL/Wc1n8oEePQX9t4xtHLtkdVqQ2ltjiy74zrNIwsMffpYnNgF1Zbexn+DkSzRSvngMKbt/gJEVBNvKCAuzydEMfjWzgi3sr0fKOvAgMLvK97I5adBHBAn3A9ex12RCGKAPqkkwKeKA6KcP0Uu/fsaXGZ2fy4Gm4Lb7WpZKFod7qIApDlFP2qeToMoItc2SirMULmGiWNvfa+zk51bNl+dwIw9jMdS648wYIcZNy7
-|1|W6ssvgu/Pw03xLcqTEXbcnIka8w=|9FbEBUU+S605/ndSN1f611WQXP8= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLOqdqX9xy0b2tPgtANigsFcYNt/p7b5FMhZWeN6vx0VInFpMsZDoM7+lcpeUb+wpi9bs7WLXQUGs7VelYocjII=
-|1|4qud+Pr10Vz1fhpUKmunUlm+9kg=|PGblvhJvPTlM/mmIPaR7Cm5hIzY= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBUmAzVaD0rw86Z2y6z7eTY5bC2jwg/UBmNL11uDNjM6
-|1|7Je9LMj8dW01Ujd4XwgFSRuy8B4=|pRykMkdqaN68UFxStxpBvh85aaU= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBUmAzVaD0rw86Z2y6z7eTY5bC2jwg/UBmNL11uDNjM6
-|1|A5z48bDvnhWm6ZVowfPONCogMmo=|+05MEl1MREuhgzccYf+k6DFLotc= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBHWYd5yPqlxB5DFpwCnboloHXan7fuXZXvPsf9sg1DflTMcDBiMQByVFiQLo52C05CCbb2N9sr0KjQ1RC/86R98=
-|1|jAiyVJJ2D/C9BOEzcU+PA2I+JBc=|HdhP5+tIldDp4z8mgzDVOJtP0i4= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIANFl2JCSaJevMwQgEbkSTskRo9sEPNbPcaCURgxDu6q
-|1|LVweLKLBsyUmx8UJHbqzKkq1ZNs=|B2xMwTg2g1LtquygF3ftkYDAYYs= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBUmAzVaD0rw86Z2y6z7eTY5bC2jwg/UBmNL11uDNjM6
-|1|5h/ZI07cOIahqG8ZXlwL07csAng=|qBlVMasAWjyEH2OlbVAQYBb/GOE= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEGI/UefTFGQMkNX5fjbcI6ZIwDbOvWi0Pu2NAdrnqMI7OEHbFZ2PZdyOFkOvg+r6L989kt9xX7UDC4hb7YbFXI=
-|1|TyPofypGFkvVPkgf0VPHku/it7E=|SrGBcMs+gITKdRnDYAznuP63K1g= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEGI/UefTFGQMkNX5fjbcI6ZIwDbOvWi0Pu2NAdrnqMI7OEHbFZ2PZdyOFkOvg+r6L989kt9xX7UDC4hb7YbFXI=
-|1|1126l6G+5eWpyt6IdlJkxl+BTCY=|BKXnjXNzcawljQpFoTGcVXghxbY= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEGI/UefTFGQMkNX5fjbcI6ZIwDbOvWi0Pu2NAdrnqMI7OEHbFZ2PZdyOFkOvg+r6L989kt9xX7UDC4hb7YbFXI=
-|1|xjWEULYYILhbC6bxVj4QHY8zSIU=|DmvZydVvC/Ub3JxXf7Io+wF1NNE= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEGI/UefTFGQMkNX5fjbcI6ZIwDbOvWi0Pu2NAdrnqMI7OEHbFZ2PZdyOFkOvg+r6L989kt9xX7UDC4hb7YbFXI=
-|1|t5LTHqQ9UtmJGKXY/oXsiDAbWjY=|oxuNyGtrEFKfkq2OgFLC8ZDZNAA= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEGI/UefTFGQMkNX5fjbcI6ZIwDbOvWi0Pu2NAdrnqMI7OEHbFZ2PZdyOFkOvg+r6L989kt9xX7UDC4hb7YbFXI=
-|1|nhLwsXEFCFUpb3mwd3cvgbcKyoY=|yTnzVSfLnUS6ylPzwAdO5E8Zk3g= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEGI/UefTFGQMkNX5fjbcI6ZIwDbOvWi0Pu2NAdrnqMI7OEHbFZ2PZdyOFkOvg+r6L989kt9xX7UDC4hb7YbFXI=
-|1|+amZBmoTNV8lvrWIo6hdzaeW6Uo=|rNoMKmaeiWEgAX/fFsSstzp0L1Y= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEGI/UefTFGQMkNX5fjbcI6ZIwDbOvWi0Pu2NAdrnqMI7OEHbFZ2PZdyOFkOvg+r6L989kt9xX7UDC4hb7YbFXI=
-|1|aBdXxexDgVPYQsaUl5MDVfWPoXM=|MQPc420PQ7lQ33vvKfoUSVGYF48= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLUeUcxDMT/9EmZ5HR9ZspANuClSEuabhCXQKqudEqyatg6Zlg0mrRoNV/rG1jmw3yyBTnfACfFhSwSTWsApwp0=
-|1|yXcm07b0rV+Vd+0JlLAapRggqbg=|8JL8yvNw00WjLAGIdfRMEl+5W20= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLUeUcxDMT/9EmZ5HR9ZspANuClSEuabhCXQKqudEqyatg6Zlg0mrRoNV/rG1jmw3yyBTnfACfFhSwSTWsApwp0=
-|1|bXruBwRG47+1nsj6BBaJWNQbXyI=|SBHm20MGcP6FNFHiXSYeVU5jcAI= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIcf3EkFhhbkL74VV3dG/ZN6X7Do+JDfzw0l7VJX6EmuTM3l2oNdg5jDp4vRHT8c9SKVe/JumeiAkIa/h6fVD4Y=
-|1|DuHmn7aqZDHihuIgaK34MPl9new=|5sAYc09JmnMpNmxqIB3FlUnMNM4= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIcf3EkFhhbkL74VV3dG/ZN6X7Do+JDfzw0l7VJX6EmuTM3l2oNdg5jDp4vRHT8c9SKVe/JumeiAkIa/h6fVD4Y=
-|1|e/eXj9j6o2Ae8lQKYwvDkSZwIqs=|lvP7UWwCudtoa543DeGMSfr0M9o= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNOnVdhduDkhosibtcgg9CM7GMUjBLFPz/sQHEbGtzBaFBKFCIzgWbiaN/9bAu9bkiFrfcIuTLklD7pyiGH7DYw=
-|1|BnSbTMCwg4/xW9/mbjFOFpqyOv0=|tX1tppQEqCgVEUR1sdHCJuhGx44= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOvpP7Wfp+QvXpn6uhmGHKiWMpmIs/4m93i3DdS0iEJ5qtY147Nx2Xm5N43mc7fR2DzT1cOifWyVu5brTeM7V28=
-|1|lb1wLp7UKxtYVfl1Sz6GZ8SZ3TM=|0NxvxYXqC0k3HUK/6oGZ4OBMUmI= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIh4YMXBzPm6skv/vNIM5o2fX87+BxIGBqayKN0Yt6BaTYkEUjh6YMTIjZaaRtv0OJYae50ZvA7hx0Sgcsz+pg4=
-|1|hcGrBWJV3jFU2Q9icCSM6nqZiYI=|+j2fP2bl3xNvjBeIyGm1VOZ1Y9U= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIh4YMXBzPm6skv/vNIM5o2fX87+BxIGBqayKN0Yt6BaTYkEUjh6YMTIjZaaRtv0OJYae50ZvA7hx0Sgcsz+pg4=
-|1|AyTiKE/O5JFwb5iTcJ49CsmGc5g=|pBSyS7bev1/c45f41Xo6WvMPKdA= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNNde7ObB2Q4zgKdLdnD94Jj7L0D/zVeYs11gOt0rLKzsnDVv5z9Vof4ymc1xAGh+IXeFGCERVsG7LoyluZ7aSU=
-|1|azC61snzpEWt6RFgQ3MmdI43Rk8=|dO5MibdFS5fPYuZwPwa+P/48t1M= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNNde7ObB2Q4zgKdLdnD94Jj7L0D/zVeYs11gOt0rLKzsnDVv5z9Vof4ymc1xAGh+IXeFGCERVsG7LoyluZ7aSU=
-|1|9hOelAm5gp0PgOJMz8pvUhr0O4Q=|1JY5lUP0qcY/nSh2AD8vGyFFdeE= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIh4YMXBzPm6skv/vNIM5o2fX87+BxIGBqayKN0Yt6BaTYkEUjh6YMTIjZaaRtv0OJYae50ZvA7hx0Sgcsz+pg4=
-|1|rTkfDZ2juQhpp59vVHat9zmcyQA=|+BGz6IkDhsbpDRvygLZqdiJYojM= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIh4YMXBzPm6skv/vNIM5o2fX87+BxIGBqayKN0Yt6BaTYkEUjh6YMTIjZaaRtv0OJYae50ZvA7hx0Sgcsz+pg4=
-|1|Z9oypZlgPtxdPOB0YoQPh0gJF+w=|aiqGBZcypAOiabZFvHNuFiNwuTY= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+Mn4735wbGXRTDDAx4hHc6PPytq067B9Dhk7jfh5Y0
-|1|MAbLLIerWNHEO4gG0Y/8UXaJIb8=|aJe5SrLdaNVHW0wjLzBpN2p+9yQ= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+Mn4735wbGXRTDDAx4hHc6PPytq067B9Dhk7jfh5Y0
-|1|eJUcrdux2A3Uks/7xdgGTHwfDZ0=|olrn5CjnV0motVzoGro6GUN30zI= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOvpP7Wfp+QvXpn6uhmGHKiWMpmIs/4m93i3DdS0iEJ5qtY147Nx2Xm5N43mc7fR2DzT1cOifWyVu5brTeM7V28=
-|1|BmFYIUzSRlOfd2YgWuPh6i/CQoA=|837lAkMkJyZMDmkvdzF0pgOMhpI= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+Mn4735wbGXRTDDAx4hHc6PPytq067B9Dhk7jfh5Y0
-|1|gsbbO8LvomIad7mJBlhRsrdxpao=|EBaC6cc66xA1ltRQtbCqHjV4+Oc= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+Mn4735wbGXRTDDAx4hHc6PPytq067B9Dhk7jfh5Y0
-|1|C+b8T0nJXzNe+eY3e5wXL9loZsI=|UclVRb+xGrbp+SRe81m4ngSzT4c= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+Mn4735wbGXRTDDAx4hHc6PPytq067B9Dhk7jfh5Y0
-|1|ZdcWTq/KqKWA/KsPS9LOadvUSeM=|Bv/XMe0oOc4GK1xl4WIGx44abOk= ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+Mn4735wbGXRTDDAx4hHc6PPytq067B9Dhk7jfh5Y0
-|1|t8EmVmv70OzgBwLOtQ5yUrTZD6I=|zbw2rpHTL+6SziUFqMenyKsruNU= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFfdc+dxNFnjYXUgJ4FybxyM7JMBuy3U/llPOhDyKRyKkllGm1Ao5JxxS8YE5u6LGVZvGLDeT178FdCkbKiXn4k=
-|1|sfzJBm/GM+ssETBzO7W/0AZVbwU=|L0FqgovLIp6cSC5rQ68R7WQts6E= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFfdc+dxNFnjYXUgJ4FybxyM7JMBuy3U/llPOhDyKRyKkllGm1Ao5JxxS8YE5u6LGVZvGLDeT178FdCkbKiXn4k=
-|1|hgYTRdy0aciJu1ErQoZ2T0lsgO4=|7T0IuuEMD93drXELHXpvCnkW7+0= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBO58Sl069DltxV+qe5/RH0U5lfhzmCxPZkn+OtK7xaM/TUBW7AR4BSEFlB6a0H2g9mDpaLf9pcAAs2R9piOH7oE=
-|1|ZC39ZwmyoybZyFOHCZZ3o7e+t9Q=|ZSP26RQPspgfWYPlDmUSHJ5C8+4= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBO58Sl069DltxV+qe5/RH0U5lfhzmCxPZkn+OtK7xaM/TUBW7AR4BSEFlB6a0H2g9mDpaLf9pcAAs2R9piOH7oE=
-|1|BrKGN+8Fb97Ub11H8JmtYi3k8Ec=|U1bk8qk1QHcUyuK9Eg09fHVdlMk= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBLUeUcxDMT/9EmZ5HR9ZspANuClSEuabhCXQKqudEqyatg6Zlg0mrRoNV/rG1jmw3yyBTnfACfFhSwSTWsApwp0=
-|1|RHy+VvewmFiZBxA7YTv7lihtJbs=|+wm1qs6/Au0foAuYH+A3Q2lwNsY= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIh4YMXBzPm6skv/vNIM5o2fX87+BxIGBqayKN0Yt6BaTYkEUjh6YMTIjZaaRtv0OJYae50ZvA7hx0Sgcsz+pg4=
-|1|chY5NZ+8E3Z2QCHvKMFulLL8Z7E=|ojACImhNSrgMtYdpCLqgISFwyiU= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBIh4YMXBzPm6skv/vNIM5o2fX87+BxIGBqayKN0Yt6BaTYkEUjh6YMTIjZaaRtv0OJYae50ZvA7hx0Sgcsz+pg4=
-|1|EmZ7B29Ivw6vXBlnc4XgrTLl9+8=|78a+bA6zcqZqT3mcCSA7DgfgtWQ= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEKmRybFZ/yMrtKp92N7MpKSByOo4TNm1yFa96mvH4ktgxG9Iw5LdRBELGknXZO0hRkysrblSsQ6Opu/8ZOdPuo=
-|1|JzPIYF8QCrSBS4t2fVId5Ym7Kyg=|0K3icsRiZpexNkPIchHkADj+UJE= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEKmRybFZ/yMrtKp92N7MpKSByOo4TNm1yFa96mvH4ktgxG9Iw5LdRBELGknXZO0hRkysrblSsQ6Opu/8ZOdPuo=
-|1|6wykuWMhStQ5Tv99aBiqb6H+zyY=|cl+8o5TNKooA36tWnHoIAOIvV4k= ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEGI/UefTFGQMkNX5fjbcI6ZIwDbOvWi0Pu2NAdrnqMI7OEHbFZ2PZdyOFkOvg+r6L989kt9xX7UDC4hb7YbFXI=
-kingkong.cubedesigners.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAYlGygCsICCRvgOUYi18Nwudv3z1vUsRmvvDKQ4Gs95
-github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
-github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=
-github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
-[paris.cubedesigners.com]:22622 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFm4EKDXLwDEGP0R1Ie+K+UbM+98ECvyOdma+oASacUJ
{
$num = $this->_fluidbook->chaptersPagesNumber;
foreach ($this->_fluidbook->getChapters() as $chapter) {
- if (in_array($chapter['decoration'], ['nocut', 'forcecut', 'column_head', 'separator'])) {
+ if (isset($chapter['decoration']) && in_array($chapter['decoration'], ['nocut', 'forcecut', 'column_head', 'separator'])) {
continue;
}
$error = ($num === 'virtual' && !$this->virtualToPhysical($chapter['page'], true)) || ($num === 'physical' && $chapter['page'] > $this->_fluidbook->getPagesNumber());
namespace App\Fluidbook\Packager;
-use CFPropertyList\CFPropertyList;
use Cubist\Net\SSH2;
use Cubist\Util\CommandLine;
use Cubist\Util\Files\Files;
return file_exists($this->getAppPath() . '/Contents/Resources/app.nw/index.html');
}
- public function getFinalPackageDir()
- {
- return parent::getFinalPackageDir();
- }
protected function _nwbuilder4()
{
{
$appPath = $this->getAppPath();
+ $machine = 32;
+
+ if ($machine == 32) {
+ $username = 'vincent';
+ $password = 'atacama';
+ $remote_root = '/Users/' . $username . '/Sign/';
+ $local_root = '/mnt/macossign/';
+ $keychain='keychain-2';
+ } else if ($machine == 102) {
+ $username = 'macossign';
+ $password = 'rntj55bw';
+ $remote_root = '/Users/' . $username . '/Documents/Sign/';
+ $local_root = '/mnt/macossign2/';
+ }
+ $ssh = new SSH2('192.168.10.' . $machine, $username, $password);
- //$ssh = new SSH2('paris.cubedesigners.com', 'vincent', 'atacama', 22022);
- //$local_root = '/Users/vincent/Sign/';
- $ssh = new SSH2('paris.cubedesigners.com', 'macossign', 'rntj55bw', 22622);
- $remote_root = '/Users/macossign/Documents/Sign/';
$remoteSigned = $remote_root . '/' . $this->exeName . '.app.zip';
+ $localSigned = $local_root . '/' . $this->exeName . '.app.zip';
// Zip app
Zip::archive($appPath . '/..', $appPath . ".zip", 1);
$signScripts = resource_path('macossign');
+ $sign3 = file_get_contents($signScripts . '/sign3_template');
+ $sign3 = str_replace('$dir', $remote_root, $sign3);
+ $sign3 = str_replace('$username', $username, $sign3);
+ $sign3 = str_replace('$password', $password, $sign3);
+ file_put_contents($signScripts . '/sign3', $sign3);
+ chmod($signScripts . '/sign3', 0755);
// Copy zipped app and signing scripts to the remote mac server
- $ssh->send($signScripts . '/docodesign3', $remote_root . 'docodesign3', 755);
- $ssh->send($signScripts . '/sign3', $remote_root . 'sign3', 755);
- $ssh->send($signScripts . '/neededToRun3.entitlements', $remote_root . 'neededToRun3.entitlements', 755);
- $ssh->send($appPath . ".zip", $remoteSigned, 644);
+ $rsync = new CommandLine\Rsync($signScripts, $local_root . '/');
+ $rsync->execute();
+
+ copy($appPath . ".zip", $localSigned);
// Sign app
- $cl = new CommandLine($remote_root . 'sign3');
+ $cl = new CommandLine($remote_root . '/sign3');
$cl->setArg(null, $this->exeName);
$cl->execute($ssh);
$cl->debug();
$finalPath = $this->getPathBase('zip');
// Copy back signed
- $ssh->recv($remoteSigned, $finalPath);
- $ssh->unlink($remoteSigned);
+ copy($localSigned, $finalPath);
+ unlink($localSigned);
$this->setFinalPath($finalPath);
$this->setFinalURL($this->getDownloadURL('zip'));
}
- protected function resource_path($path)
+ protected function resource_path($path = '')
{
return resource_path('fluidbookpublication/packager/' . ltrim($path, '/'));
}
<?php
-namespace App\Fluidbook\Packager;
-class USBKey extends MacOS
-{
- public $type='win_cd_html';
-
- protected function preparePackage()
- {
- parent::preparePackage();
- $this->replaceAutorun();
-
- // Package mac app
- $win = Packager::package($this->book_id, 'win_inss_html', false, false);
-
- $dest = $this->getFinalPackageDir() . "/" . $this->exeName . '.exe';
- $cp = "cp $win $dest";
- `$cp`;
- }
-
- public function replaceAutorun()
- {
- $inf = file_get_contents($this->resource_path('fluidbook/packager') . '/autorun-html.inf');
- $toReplace = array('title' => $this->book->parametres->title, 'exe' => $this->exeName . '.exe', 'nwplatform' => $this->nwplatform);
- $inf = $this->replaceContents($inf, $toReplace);
- file_put_contents($this->getFinalPackageDir() . '/autorun.inf', utf8_decode($inf));
- }
+namespace App\Fluidbook\Packager;
- protected function postPackage()
- {
+use Cubist\Util\Files\Files;
+use Cubist\Util\Zip;
- }
+class USBKey extends MacOS
+{
+ public $type = 'win_cd_html';
+
+ public $prependIdToExeName = false;
+
+ protected function preparePackage()
+ {
+ // Package mac app
+ parent::preparePackage();
+ $this->replaceAutorun();
+
+ // Package windows app
+ $win = Packager::package($this->book_id, 'win_inss_html', false, false);
+ $win->prependIdToExeName = $this->prependIdToExeName;
+ $win->handle();
+ $from = $win->getFinalPath();
+ $fromRenamed = Files::tmpdir() . '/' . $this->exeName . '.exe';
+ rename($from, $fromRenamed);
+ Zip::insertFile($fromRenamed, $this->getFinalPath());
+ }
+
+ public function replaceAutorun()
+ {
+ $inf = file_get_contents($this->resource_path() . '/autorun-html.inf');
+ $toReplace = array('title' => $this->appName, 'exe' => $this->exeName . '.exe', 'nwplatform' => $this->nwplatform);
+ $inf = $this->replaceContents($inf, $toReplace);
+ file_put_contents($this->getFinalPackageDir() . 'autorun.inf', utf8_decode($inf));
+ Zip::insertFile($this->getFinalPackageDir() . 'autorun.inf', $this->getFinalPath());
+ }
+
+
+ protected function postPackage()
+ {
+
+ }
}
public $type = 'win_exe_html';
+ public $prependIdToExeName = true;
+
public function __construct($book_id, $vdir = null, $options = [])
{
$this->nwCacheDir = Files::mkdir(base_path('cache/nwbuild'));
if ($offlineTitle == "") {
$title = $this->book->title;
- $this->exeName = $this->book->id . '-' . trim(Text::str2URL(mb_substr($title, 0, $this->exenameMaxlength - 6)), '-');
+ $this->exeName = trim(Text::str2URL(mb_substr($title, 0, $this->exenameMaxlength - 6)), '-');
+ if ($this->prependIdToExeName) {
+ $this->exeName = $this->book->id . '-' . $this->exeName;
+ }
$this->appName = $title;
} else {
$this->exeName = trim(Text::str2URL(mb_substr($offlineTitle, 0, $this->exenameMaxlength)), '-');
$local = $this->book->protected_path('signedexe/' . $rand);
if (!file_exists($local)) {
- $ssh = new SSH2('paris.cubedesigners.com', 'vince', 'Y@mUC9mY2DOYWXkN', '22422');
+ $ssh = new SSH2('192.168.10.176', 'vince', 'Y@mUC9mY2DOYWXkN');
copy($source, $remote);
$cli = new CommandLine('C:/Program Files (x86)/Windows Kits/10/bin/10.0.18362.0/x64/signtool.exe');
$res = array_merge($res, Git::executeCommands($gitolite, ['commit --author="Toolbox<toolbox@fluidbook.com>" -a -m "Added ' . $repos . ' from Toolbox"', 'push -u origin master']));
- backpack_user()->notify(new ToolboxNotification(__('Répertoire git :name crée', ['name' => $repos]), __('Le répertoire git :name a été crée et est disponible à l\'adresse :url.', ['name' => $repos, 'url' => "`" . $url . "`"]) . "\n" . __('Le chemin pour redmine est :redminepath', ['redminepath' => '`' . self::$_REDMINEPREFIX . $repos . '.git`']), [], true));
+ backpack_user()->notify(
+ new ToolboxNotification(__('Répertoire git :name crée', ['name' => $repos]),
+ __('Le répertoire git :name a été crée et est disponible à l\'adresse :url.',
+ ['name' => $repos, 'url' => "`" . $url . "`"]) . "\n" . __('Le chemin pour redmine est :redminepath', ['redminepath' => '`' . self::$_REDMINEPREFIX . $repos . '.git`']), [], true)
+ );
Log::debug(implode("\n", $res));
return $this->_success(__('Le répertoire :repos a été crée', ['repos' => $repos]));
:
else
umount -l -q /mnt/sign
- sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 -o cache=no -o uid=1001 -o gid=33 -o allow_other -o port=22422 vince@paris.cubedesigners.com:C:/Sign/ /mnt/sign
+ sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 -o cache=no -o uid=1001 -o gid=33 -o allow_other vince@192.168.10.176:C:/Sign/ /mnt/sign
+fi
+
+mkdir -p /mnt/macossign2
+if mountpoint -q "/mnt/macossign2"; then
+ :
+else
+ umount -l -q /mnt/macossign2
+ sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 -o cache=no -o uid=1001 -o gid=33 -o allow_other macossign@192.168.10.102:/Users/macossign/Documents/Sign /mnt/macossign2
+fi
+
+
+mkdir -p /mnt/macossign
+if mountpoint -q "/mnt/macossign"; then
+ :
+else
+ umount -l -q /mnt/macossign
+ sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 -o cache=no -o uid=1001 -o gid=33 -o allow_other vincent@192.168.10.32:/Users/vincent/Sign /mnt/macossign
fi
/****************************************************************************/
-console.log("");
+console.log(items.join(','));
console.log("### signing");
function exec(cmd) {
+++ /dev/null
-#!/bin/sh
-cd /Users/macossign/Documents/Sign
-printf "Unlock keychain\n----\n\n" > $1.log 2>&1
-security unlock-keychain -p "rntj55bw" /Users/macossign/Library/Keychains/Apple.keychain-db >> $1.log 2>&1
-printf "Unzip app file\n----\n\n" >> $1.log 2>&1
-rm -rf "$1.app" >> $1.log 2>&1
-unzip -o "$1.app.zip" >> $1.log 2>&1
-rm -f "$1.app.zip" >> $1.log 2>&1
-printf "Sign the app\n----\n\n" >> $1.log 2>&1
-./docodesign3 "$1.app" "Developer ID Application: Cubedesigners (82TNE4UQ7A)" >> $1.log 2>&1
-printf "Zip the app in order to be notarized\n----\n\n" >> $1.log 2>&1
-ditto -c -k --sequesterRsrc --keepParent "$1.app" "$1.app.zip" >> $1.log 2>&1
-printf "Notarize app and wait for confirmation\n----\n\n" >> $1.log 2>&1
-xcrun notarytool submit --wait --apple-id "contact@cubedesigners.com" --team-id "82TNE4UQ7A" --password "tqwj-saik-dtdl-yrpc" "$1.app.zip" >> $1.log 2>&1
-printf "Staple the app\n----\n\n" >> $1.log 2>&1
-xcrun stapler staple "$1.app" >> $1.log 2>&1
-printf "Rezip the app\n----\n\n" >> $1.log 2>&1
-rm -f "$1.app.zip" >> $1.log 2>&1
-ditto -c -k --sequesterRsrc --keepParent "$1.app" "$1.app.zip" >> $1.log 2>&1
-printf "Remove the app (keep only zip)\n----\n\n" >> $1.log 2>&1
-rm -rf "$1.app" >> $1.log 2>&1
-chmod 777 "$1.app.zip" >> $1.log 2>&1
--- /dev/null
+#!/bin/sh
+cd $dir
+printf "Unlock keychain\n----\n\n" > $1.log 2>&1
+security unlock-keychain -p "$password" /Users/$username/Library/Keychains/Apple.keychain-db >> $1.log 2>&1
+printf "Unzip app file\n----\n\n" >> $1.log 2>&1
+rm -rf "$1.app" >> $1.log 2>&1
+unzip -o "$1.app.zip" >> $1.log 2>&1
+rm -f "$1.app.zip" >> $1.log 2>&1
+printf "Sign the app\n----\n\n" >> $1.log 2>&1
+./docodesign3 "$1.app" "Developer ID Application: Cubedesigners (82TNE4UQ7A)" >> $1.log 2>&1
+printf "Zip the app in order to be notarized\n----\n\n" >> $1.log 2>&1
+ditto -c -k --sequesterRsrc --keepParent "$1.app" "$1.app.zip" >> $1.log 2>&1
+printf "Notarize app and wait for confirmation\n----\n\n" >> $1.log 2>&1
+xcrun notarytool submit --wait --apple-id "contact@cubedesigners.com" --team-id "82TNE4UQ7A" --password "tqwj-saik-dtdl-yrpc" "$1.app.zip" >> $1.log 2>&1
+#xcrun notarytool log --apple-id "contact@cubedesigners.com" --team-id "82TNE4UQ7A" --password "tqwj-saik-dtdl-yrpc" "$1.notary.log" >> $1.log 2>&1
+printf "Staple the app\n----\n\n" >> $1.log 2>&1
+xcrun stapler staple "$1.app" >> $1.log 2>&1
+printf "Rezip the app\n----\n\n" >> $1.log 2>&1
+rm -f "$1.app.zip" >> $1.log 2>&1
+ditto -c -k --sequesterRsrc --keepParent "$1.app" "$1.app.zip" >> $1.log 2>&1
+printf "Remove the app (keep only zip)\n----\n\n" >> $1.log 2>&1
+rm -rf "$1.app" >> $1.log 2>&1
+chmod 777 "$1.app.zip" >> $1.log 2>&1
+cat $1.log