diff --git a/Change_Log.txt b/Change_Log.txt index fb38a0c..2e5f8f8 100644 --- a/Change_Log.txt +++ b/Change_Log.txt @@ -284,4 +284,10 @@ Version 0.55: Version 0.56: - Added code to fix driver conflict new drivers added to Linux -- Changed default file type to svg/dxf \ No newline at end of file +- Changed default file type to svg/dxf + + +Version 0.57: +- Fixed problem with start position (only occurred when using a custom "x scale" factor and "home in upper right") +- Added Command line option to enable debug mode +- Some other minor change to the way icons and internal images are handled (no change for user) diff --git a/build-macOS.sh b/build-macOS.sh index cc40b56..bd8d58b 100755 --- a/build-macOS.sh +++ b/build-macOS.sh @@ -122,6 +122,7 @@ PYTHON= # Install requirements echo "Install Dependencies..." pip3 install -r requirements.txt +pip3 install pyinstaller check_failure "Failed to install python requirements" echo "Build macOS Application Bundle..." @@ -160,4 +161,4 @@ then check_failure "Failed to build k40_whisperer dmg" fi -echo "Done." \ No newline at end of file +echo "Done." diff --git a/embedded_images.py b/embedded_images.py new file mode 100644 index 0000000..c96290a --- /dev/null +++ b/embedded_images.py @@ -0,0 +1,634 @@ + +class K40_Whisperer_Images: + def __init__(self): + self.CC_image=0 + print("init") + + CC_B64=b'R0lGODlhFAAUAIUAAA\ + AAAAQEBAcHBzAwMDo6Ojs7O0dHR2hoaGlpaWtra21tbW9vb3BwcHFxcXJycnNzc3R0dHV1dXd3d3p6eo\ + GBgYSEhIeHh4uLi46Ojo+Pj5CQkJWVlbOzs7+/v8nJycrKytLS0tPT09TU1NXV1fHx8fb29vj4+Pn5+f\ + r6+vz8/P7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAACH5BAEAACsALAAAAAAUABQAQAj/AFcIHEiwoEGDIAQAABAAxIqHECFq0LBCxYqLGD\ + Gi8PBAxYqPHydUWEGyJEkIBVCsWMmS5QUEIR40EMFBwoqbOFeoSJBhhc+fQH0+GGBihdGjKyxUWMF0hQ\ + QDKVZInUpVagMAWAE4WMG1q9cVGCSsGEt2RYoOEVSsWLtWhYoVcOPKjXtihd27ePPeVUFihV8VBzSsGE\ + y4sIoSHzasWLxYxQIKKyJLXoGiQ4YVmDNrfsBARAMHIDhYWEG6tOnSDACoBuBghevXsGGPEAAAQAAQK3\ + Lr3q3bwoMVwFdYMHBihfHjxyUoULGiufMVGQiUWEGd+oEDK7Jr3559wwASK8KLBR9PvnxAADs=' + + + LL_B64=b'R0lGODlhFAAUAIUAAA\ + AAAAoKCgwMDA0NDRAQEBQUFBgYGB4eHiMjIyoqKiwsLEREREpKSmRkZIKCgoSEhKKioqurq7Kysrm5ub\ + 29vcPDw8TExMXFxcvLy8zMzM7OztXV1dfX19jY2Nra2t3d3d7e3uHh4eLi4ubm5unp6erq6uvr6+zs7O\ + 7u7u/v7/Dw8PHx8fLy8vX19fb29vf39/j4+Pr6+vv7+/z8/P7+/v///wAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAACH5BAEAADUALAAAAAAUABQAQAjOAGsIFDgBwIYaCBMqXIgww4IQNSJKnEgxIg0UNT\ + Jq3Mixo8ePLwgAGHnAxQQSKSasGDEhxgcKNWLGBPHARI2bOHPqvHkhwYcaQIMKHQq0hYcYNZIqXcoUhg\ + EAUBPI2MDCxYYXKjbMMNGhhtevYMOKBRujxIwaaNOqXYuWQgAONeLKnUs37oYGI2ro3cu3r9+/gGtoYC\ + CihuHDiBPXkDAAQAELNSJLnjy5A4DLlzkAiFABAAYIAE44EFCjdI0LCAAo2FCjtevXsGPLnk07dkAAOw\ + ==' + + + LR_B64=b'R0lGODlhFAAUAIUAAA\ + AAAAoKCgwMDA0NDRAQEBQUFBgYGB4eHiMjIyoqKiwsLEREREpKSmRkZIKCgoSEhKKioqurq7Kysrm5ub\ + 29vcPDw8TExMXFxcvLy8zMzM7OztXV1dfX19jY2Nra2t3d3d7e3uHh4eLi4ubm5unp6erq6uvr6+zs7O\ + 7u7u/v7/Dw8PHx8fLy8vX19fb29vf39/j4+Pr6+vv7+/z8/P7+/v///wAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAACH5BAEAADUALAAAAAAUABQAQAjdAGsIHEhQIAUBHWooXMiwoUISEVjUmEixosWJLz\ + rAqMGxo8ePHEdAUFGjZMkNM0xwqDHiQ40QImIUAEBTQY2bOHPqrBHjxIwaQIMKHQp0AoANNZIqXco0qQ\ + sOMmpIlTohBggKNTZcqJFBQ4sBAMIioFGjrNmzaNOqVfvBgYkacOPKnQt3AoANNfLq3cs37woML2oIHk\ + y4sOAUFVzUWMy4sePFEwBsqEG5suXLNSwcAJBgQ43PNQCUeBCgRoMENRYw8ACgdWsUNWLLnj1bAgEABi\ + 7U2M27t+/fwIMHDwgAOw==' + + + S001_B64=b'R0lGODlhgACAAIcAAA\ + AAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTEx\ + QUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGx0dHR8fHyEhISIiIiQkJCUlJSYmJicnJykpKSoqKisrKywsLC\ + 0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQE\ + FBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFJSUlNTU1RUVFZWVl\ + dXV1hYWFpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2\ + xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+foCAgI\ + GBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJ\ + WVlZaWlpeXl5iYmJmZmZqampubm52dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqa\ + qqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb\ + 6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0d\ + LS0tPT09TU1NXV1dbW1tjY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5u\ + fn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+v\ + v7+/z8/P39/f7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEKAP8ALAAAAA\ + CAAIAAQAj/AP8JHEiwoMGDCBMq/AegocOHEAH8m0ixosWLGDNq3Mix40YAIEOKHAnSQA02pqzRW8mypc\ + uW86aJQhODAICbOHPqvPmvp8+fQIMKHUp0KICjSJMCgLKNntOnUKM+lVfqBoCrWLNqBSAgiCx6YMOKHT\ + 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' + + + S009_B64=b'R0lGODlhEAAQAIYAAA\ + AAADQ0NDo6Oj09PUNDQ01NTVFRUVdXV1hYWFpaWltbW1xcXF1dXWFhYWJiYmZmZmlpaWpqamtra2xsbG\ + 1tbXJycnNzc3R0dHV1dX5+fn9/f4KCgoSEhIqKio6OjpGRkZKSkpWVlZaWlpeXl5iYmJqampubm6Ojo6\ + ampqurq62tra6urrCwsLKysrS0tLe3t7m5ubq6uru7u7y8vMHBwcLCwsTExMfHx8vLy87OztDQ0NTU1N\ + XV1dfX19ra2tvb29/f3+Dg4OHh4eTk5OXl5ejo6Onp6fHx8fPz8/X19fb29vf39/j4+Pn5+fv7+/39/f\ + 7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEKAFIALAAAAAAQABAAQAj2AKUIFAigoEEpCBECiMLQiR\ + EMAgZcmLEkShQlAKRQiMIxgQgCETLAKPEkCgkpKE9EgRIFxQIOHaLIzAFAik0AKqLQqHAAgQUdUU4AkC\ + IFQJSjP5ZcCODARhQoUaIcAQCAR5SrV3E8iMKVaxEAUsICIAEEiRImQXiAACClrVspE3wUYXHiyA4HUv\ + LqVRElioIUHkyg4DAkigwAUgD0iMJYgocWKDTUyBAlChEAAKJEefICgosQKkgUoLEkihIAAKKoVt1kxY\ + YjUWJHOQJASoMouHGPMJAkiu8oH6QIBxAjCg0GSIQsuBElBwAp0KNLAUC9upTr1wMCADs=' + + + UL_B64=b'R0lGODlhFAAUAIUAAA\ + AAAAoKCgwMDA0NDRAQEBQUFBgYGB4eHiMjIyoqKiwsLEREREpKSmRkZIKCgoSEhKKioqurq7Kysrm5ub\ + 29vcPDw8TExMXFxcvLy8zMzM7OztXV1dfX19jY2Nra2t3d3d7e3uHh4eLi4ubm5unp6erq6uvr6+zs7O\ + 7u7u/v7/Dw8PHx8fLy8vX19fb29vf39/j4+Pr6+vv7+/z8/P7+/v///wAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAACH5BAEAADUALAAAAAAUABQAQAjeAGsIHEiwoMGBGxIAOGChhsOHECPW2ABgQo2LGD\ + NqrHHBAAACEmqIHEmyZA0XFVLUWMmypcuXMGGiAECTpgcGC2okaFAjwIMSAGoIFboBwIQaSJMqXYr0BY\ + YVNaJKnUo1qgkHH2po3cq1q9evYGvA6PCihtmzaNPSQACg7YAWGjLUuLChBgUQMSbU2FtDAYC/BWKICF\ + Hjw4gaHEzM2FCjcWMZHFzUmEy5suXJLCKQqMG5s+fPnDcAmFCjtOnTqEurgDCihuvXsGO7nnEiRo3buH\ + Prvt1BAIUawIMLBx4QADs=' + + + UR_B64=b'R0lGODlhFAAUAIUAAA\ + AAAAoKCgwMDA0NDRAQEBQUFBgYGB4eHiMjIyoqKiwsLEREREpKSmRkZIKCgoSEhKKioqurq7Kysrm5ub\ + 29vcPDw8TExMXFxcvLy8zMzM7OztXV1dfX19jY2Nra2t3d3d7e3uHh4eLi4ubm5unp6erq6uvr6+zs7O\ + 7u7u/v7/Dw8PHx8fLy8vX19fb29vf39/j4+Pr6+vv7+/z8/P7+/v///wAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAACH5BAEAADUALAAAAAAUABQAQAjOAGsIHEiwoMGDAy0UADBAQo2HECNKrMEhAIUaGD\ + Nq3FhjgwIACC7UGEmypMmTKFOmFODgBAAIGABUiACAA4CbNzvU2Mmzp08RDDTUGEq0qNGhIxpsqMG0qd\ + OnTGeUiFGjqtWrWLNq3VoVBY0aYMF2MDFjg4oXG1yw2CAjAYC3BmDUmEvhQ4wJI1ZMSEFigosDAAITeF\ + GjsOHDiGN4aFGjsePHkBuHWJChhuXLmDNb/pDgQo3PoEOLHk26dA0TD0DUWM26tevVGwBMqEGbdkAAOw\ + ==' + + + aclfh_tyf71_001_B64=b'R0lGODlhgACAAIcAAA\ + AAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTEx\ + QUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGx0dHR8fHyEhISIiIiQkJCUlJSYmJicnJykpKSoqKisrKywsLC\ + 0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQE\ + FBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFJSUlNTU1RUVFZWVl\ + dXV1hYWFpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2\ + xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+foCAgI\ + GBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJ\ + WVlZaWlpeXl5iYmJmZmZqampubm52dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqa\ + qqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb\ + 6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0d\ + LS0tPT09TU1NXV1dbW1tjY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5u\ + fn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+v\ + v7+/z8/P39/f7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAPQALAAAAA\ + CAAIAAQAj/AAEIHEiwoMGDCBMqXMiwocOHECNKNGigBhtT1uhp3MixI8d500ShiUEAgMmTKFOqXMmypc\ + uXME9C2Uavps2bOG3KK3UDgM+fQIMCEBBEFr2jSJMqVWrtCICnUKNKnUq1qlWrD4jR28q1q1evQwCIHS\ + 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' + + + aclfh_tyf71_002_B64=b'R0lGODlhYABgAIcAAA\ + AAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA4ODg8PDxAQEBERERISEhMTExQUFB\ + UVFRYWFhcXFxgYGBkZGRsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJykpKSoqKi\ + srKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODo6Ojs7Ozw8PD09PT4+Pj8/P0\ + BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1\ + RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGJiYmNjY2RkZGVlZWZmZmdnZ2hoaG\ + lpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e319fX\ + 5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZ\ + KSkpOTk5SUlJWVlZaWlpeXl5mZmZubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaenp6ioqK\ + mpqaqqqqurq6ysrK6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb\ + 6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJyczMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09\ + TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uTk5OXl5ebm5unp6erq6u\ + vr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v\ + ///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAPAALAAAAA\ + BgAGAAQAj/AAEIHEiwoMGDCBMqXMiwocOHBgdAcdUOnsWLGDNq3MgulRIBAEKKHEmypMmTKEUmUAWvpc\ + uXL2cVAECzJgAJWiaxAtbqDRAQAIIKDboGntGjSJOGMgCgqdOnUKNKbQoJntWrWLNaFQSga1dg8BwBGD\ + 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\ + t+DTu27Nm0a9u+fTsgADs=' + + + aclfh_tyf71_003_B64=b'R0lGODlhQABAAIcAAA\ + AAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ8PDxAQEBERERISEhQUFBUVFR\ + YWFhcXFxgYGBkZGRoaGhsbGxwcHB4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKi\ + srKy0tLS8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PUBAQEJCQkNDQ0\ + REREVFRUZGRkdHR0hISExMTE1NTVBQUFFRUVJSUlNTU1RUVFVVVVZWVlhYWFlZWVtbW1xcXF1dXV5eXl\ + 9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqam1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dH\ + V1dXZ2dnd3d3h4eHl5eXp6ent7e319fX9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiIqKioyMjI\ + 2NjY+Pj5CQkJKSkpSUlJWVlZeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpK\ + Wlpaampqurq6ysrK+vr7CwsLGxsbKysrOzs7S0tLW1tbi4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwM\ + HBwcLCwsPDw8TExMjIyMnJycrKysvLy8zMzM3Nzc7OztDQ0NLS0tPT09TU1NXV1dbW1tfX19jY2Nra2t\ + vb29zc3N3d3d7e3uDg4OLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7vDw8PHx8f\ + Ly8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///wAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAANUALAAAAA\ + BAAEAAQAj/AAEIHEiwoMGDCBMqXMgQgIdO1SJKjIiMjQMAGDMCEMADVbWPIEGKEgGgpMmTKFMCEBCqms\ + uXMKvRAEATVyIAOGvUitbMzgAAABT0igSgKJ9qSJMqrdYpAICnUKMC0FKtqtWrWKuyAcAVgAgofCa5AQ\ + GgLABF1dISU1atrdu3cKtFAUC3LgAZ1fLq3cs3LzE8IwAIHkyY8AMuraopXsy4MeMLACJLBlBBWrXLmD\ + Nr3nzZGIDPaaqJHk26tOnRzyIAWM269WoPyarJnk27djVSDQDoZpEAAAABm6oJH068uPBjGwAoX868uf\ + PlAWz0qka9uvXr1VWl6VSte/ddMgCI/x9Pvrz58+jJV9CiCNa0avDjw5fmKtGVCQDy69/Pv79/gAAECg\ + ywqNpBhAiLRQDQEAgxaJK2oBCxBlg1RQgAbPRSzeNHkIMAjCRZ0iSABcGqrWTZkuUfADEjAWsAwOZND9\ + UeAADAoNoPAAA0VCNa1GhRXwkALGW6tEU1qFGlTq2WbE8hZNW0UqvEAAAAJdXEip2GyUgBAAC+VGPb1u\ + 3bEwDkzmUgrdpdvHn17sXbCMDfUdUEDyZc2DDhZwcALGbMGE01yJElT6YMmQQAABSqbebc2fPnzV8AjC\ + Zd2vToAoeqrWbNGtcGALFH+KpWuzamAAAAIGBVzfdv4NUAEQBQ3P/4ceTJlS8vrmAFDyRXrBzZoSIBAO\ + zZtW/n3t37d/DhxY8nr/3AGWHV1K9n3959NWBkDACgX9/+ffz56QdgU80/wGoCBxoqAODgwQorHAQA4N\ + BhjmLVJlKkWAcAxowaN3IEUKUayJAimSkAAMACslEKALBsyRLJtEEAZgapZvMmTmpNAPDs6fMnA2HVhh\ + ItOhQJAAAUqsEAACAADQBSUzh7AABAkGo2AABwUe0r2LBffykAYPYsWgCeqrFt6/btDwBy71RbtAAAgA\ + J/qmEB4BdQNQUAAGyoZvgwYsSWADBu3BhWtciSJ1OWTI3OAQCaN2tGsKca6NCiR5MGnQoA6tT/AIxUa+\ + 36NexqJgDQpk0DUTMZAAC8mIbJSAEAwodL8FTtOPLkyoEAaO6cR7Xo0qdTr17NVxwOALYDeNDFVbXw4s\ + eTLy/eBoD06gEgqub+Pfz48t+fAmDfULX8+vfz778f4B8AAwkSvFINYUKFCxkmpAAAAJJqEylWtHiRoh\ + MAGzl23MilWkiRI0mSvHQAQEoAMaBVc/kSZsyYVgDUtHkTZ8031Xj29NlTVgUAQ1UQq0ZNCAClQ6o1df\ + oUahoAU6lWtXqVqhRl1bh2xQEAQAZb1ciWJeuMBQC1lqq1dVsNGRMAc+nWtXsX790FVTRJq/YXcGDB1a\ + JdmpIAQGLFixk3/3b8GHJkyZMpV7Z8GXPmxQxc+Ehy5UqSHi0WADB9GnVq1atZtzbNAEsnadVo17Z9u5\ + o0TVUUAPD9G3hw4cOJB7DRq1py5cmdXRqDBAeNE158VbN+/TovGQC4d/f+HXz47lSWVTN/3jwoCwDYt3\ + cPQACWZ9Xo16efzAkA/fv59/cPEIBAAAYSVTuIEGEmAgAaRohjq5pEZZBwALgI4Aa0ahw7dhREAIDIkS\ + RLmpRTLaXKlWMAuAwirZQJADRpKmgzTRQCAAACqKoGNKjQNQCKGj2K1OgHZdWaOn1KCIDUPM86ALgqIE\ + EAAFwBwKkmA4BYXNXKmj2rDASAtWzbuvVSLf+u3LlxcwAAQKDaDAB8N40oYKNYHQCE7zBTAAAAkWqMGz\ + tmjAWA5MmUJ6ephjmz5sxeAAAQsKwOgNEPAJhGUE0FAAAdqh0BAOBCtdm0a9MGAyC37t0AsFT7DTx4cF\ + 0BAACwUS0PgOXMHw0bAADAiGoQAACYUC279u3bnQD4Dh68BWnVyps/jz6VAAAABMCJ1sxRoGbQzAC4b2\ + FZNTUBCDgCWE3gQIIEn0UAkFBhQkXVHD6EGNEhNSgALF7EaLFMNY4dPX4EWS0QAJIlATCQVk3lSpYtW+\ + LCsgDATAAJtuSqllOnLz19nFUDGlSo0GcHABxF2qPaUqZNnVZDAgBAgyz/q6pdDQEAgI9qXX3N+QBArF\ + gg1cyeRZv2BgC2bWVUgxtX7txqjBQAwJs3ggcAACKAABBYMAAXgJRVQ5xY8eJqFwA8hlyk2mTKlS1Xps\ + YJSQEAnT17rnGIWTXSpU2fRv0DwGrWLaq9hh1b9mzY0p4AwK2q2m7evX3/9n0CwHDiAF5VQ55c+XLmyT\ + EBgC6p2nTq1a1fr44KwHbu27NUAx9e/Hjy4W8BQH+n2nr27d2/bx8FwHz69DlVw59f/37++KkBLAAAAJ\ + ZqBg8iTKjwICUADh9CXBCsGsWKFi9ipFgCAAAd1T6CDCly5EdfCQCgTKkSAINg1V7CjClzZiQBAG7W/a\ + qmcyfPnj5/KQAgdCjRoQI+VUuqdClTpaMWAIgqFU21qlavYr26KQCArl6/ggUgpRrZsmbProoAYO0MZH\ + oAwM0wrBrdunbvUlsCYC/fvn77BkhUbTDhwtVoYQCgmMSvao6DXQAg2U+1ypYvWw4EYDPnzp4/bw7Aph\ + rp0qSDAEjdIVe11q6rhQEgW8WzarZv26bGBgDv3r5/Aw/eoVO14sVNycgxqxrz5s5jMQAw4FW16tZFhQ\ + CgfTv37t6/dzdgBli18ubPo09fzZeYAgDew48vfz79+vIpYEHkSlq1/v4BVqsWjdWhKhIAJFS4kGFDhw\ + 8hRpQ4kWJFixctBgQAOw==' + + + aclfh_tyf71_004_B64=b'R0lGODlhMAAwAIcAAA\ + AAAAEBAQICAgMDAwQEBAUFBQcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERUVFRcXFxgYGB\ + kZGRoaGhsbGxwcHB0dHR4eHiEhISIiIiMjIyQkJCUlJSYmJicnJygoKCoqKisrKywsLC0tLS4uLi8vLz\ + ExMTIyMjMzMzQ0NDU1NTg4ODk5OTo6Ojw8PD4+Pj8/P0BAQENDQ0REREVFRUdHR0hISElJSUpKSktLS0\ + 9PT1BQUFFRUVlZWVxcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmhoaGxsbG1tbW5ubnJycn\ + Nzc3R0dHd3d3p6ent7e3x8fH19fX5+foCAgIGBgYKCgoODg4SEhIWFhYeHh4iIiImJiYqKiouLi4yMjI\ + 2NjY6OjpCQkJGRkZKSkpSUlJWVlZubm5ycnJ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6mpqa\ + urq6ysrK+vr7CwsLS0tLa2tri4uLm5ubq6uru7u7y8vL6+vsHBwcLCwsPDw8bGxsfHx8rKysvLy8zMzM\ + 3Nzc7Ozs/Pz9DQ0NHR0dPT09TU1NbW1tnZ2dra2tvb29zc3N3d3d/f3+Hh4eLi4uPj4+Tk5OXl5ebm5u\ + fn5+np6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/\ + z8/P39/f7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAALcALAAAAA\ + AwADAAQAj/AAEIHEiwoMGDCBMqBFDolsOHt0wpAEDmlsVJkm5pfFNgQKRbIEPeKgSgpMmTBUDdWsmy5c\ + odAJzcuvXozB5Wt/4A8HALVgYJrG4JHUr0EYCjABzcWsq0qdNbdSQEAECVagAGZ2jd2sq1q9dWAMKGpX\ + KrrNmzaM/mCCDpltu3cOO+NQKgrt27ABToucW37y0gAEa4ukW48A8AQm4pXqyYD4DHkCNLnvzgCaxbmD\ + PfAhUpkqdboEPfahVlAYDTqFOrBvCg1K3XsGHXAeDlVhwAWWpJOXQrEwEJslJhqGDqlvHjxjUBWM4cwK\ + Vb0KNLn36rlipDJQA4mnWru/dYt8KL/x8fHhSA8wDm3FrPvr179wYI3JpPv759+5AA6N8PQMYtgLcEDi\ + Q4EBYMAD6kAChB69ZDiBEj2gBQ0eJFjBcnFHl0y+NHkCAfHZEAwORJlClVrjRZwMQQOZduzaRpaU4QEw\ + QA7OTZ0+dPn19uDSV6K9EJAABE4MhBAgAADYZuTaV6qwsArFm1bgXw5dZXsF8/PbjQ6hYTAABs4AAAgM\ + itWzUAvLlV127dNAD07uUL69ZfwIEZAeBxy9GACFICAPBT68YBSbdUHNh0y/Lly6wAbOY85NZn0KFDSx\ + oAIAISNlg8EACw5tZr2LFlv74CwHaAW7l179b9BACBHpxu3dICAP/PrVuolBgIAECBoFvRpU+/tQrAdQ\ + C3tG/n3r07LAAwbo0nX968eVMA1AMwAevWe/jx5ccPIQDVLfz59e/XD8A/QAACAUC5ZfAgwoQGUZUA0O\ + YWxIgSJ0IMA+AixowCAN3q6PHjrR0AXtwqWQkAgEW3VrJseYsPgJgyZ9KUeUPTrZy3Qrm65fPnT0tJTN\ + 0qeguTDQBKlzJt6vTp0gMTNoD4sGHCAQBat3Lt6vUr2K8QGgAoa/Ys2rRq15alAgrWrbhy58aFNcoKgL\ + x69/Lty3dFqVuCB9+Ck+FAgQIGIrC55fjxrVczAFCubPny5US3NnO+tcgAgBaebJG2lYoGAAD/eW6xbn\ + 0rEIDYsmfTBrDoFu7cuGkA2HLrlh0BAAAEUHPrFhkAHG4xb858D4Do0qdHV3HrOnbsjADwuPWoAARSt2\ + 6BcgCgzS1KAFLcau/ePQ4A8ufPf3LrPv78dQB4ueUGIIAxUAAAuDSrRYJLtEws6HQLYsSIXgBUtAigyi\ + 2NGzneAgXhQqpbSACU7BBr1ogFm2SNaPDpVkyZM40AsGnTBKxbO3n23NmKAYAprW4VveUHAABFt26ZEn\ + ULalSpUAFUrTrnVlatW7l6umEAQFgAI/DcMnsWbdqzjgC0BXALbly5cUHR8XQL760lABDd8nsL1R0dAF\ + 7cMnwY8S1TABg//7j1GHJkyKCYSAAAQEabMgC45MkBAIACIH1ulTZ92nQrAKsB3HL9Gnbs14SaHABQwM\ + ifW7t59/bNexUA4QAs3TJ+HHny5AAw3HL+HHr06KAAVAcQ5FZ27du5c5cg4FZ48ePJk7cCAD2AAaNutX\ + f/Hv57FwE23bJ/H3/++48A9PcPEECrWwQLGjxYEEgARLcaOnwIseErABQrUlTg6pbGjRw7rrIAAACCWb\ + dKmjyJEhOAlSxbAuhyK6bMmTFlfQCA4latGADE3PoJNChQMwCKGj16tNCtpUyX1mIBAMOtqVMFAYBw6p\ + bWrVstAfgKNqxYsGhumT1LAIKsW2zbsk0AYD/Qrbl0zQC4izev3r13vbC6BTiw4MGBYYEBgDix4sWMGy\ + OOcKURKFOrXLVaZQoUpCsUAHj+DDq06NGkS5s2HRAAOw==' + + + aclfh_tyf71_005_B64=b'R0lGODlhKAAoAIcAAA\ + AAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgwMDA4ODg8PDxAQEBERERISEhMTExQUFBUVFR\ + YWFhcXFxgYGBkZGRoaGhsbGxwcHB4eHiAgICEhISIiIiMjIyYmJicnJysrKywsLC0tLS4uLi8vLzIyMj\ + Q0NDU1NTc3Nzk5OTo6Ojs7Ozw8PD09PT4+PkBAQENDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE\ + 1NTU5OTk9PT1BQUFFRUVZWVldXV1tbW11dXV5eXl9fX2BgYGJiYmNjY2RkZGdnZ2pqamxsbG1tbW9vb3\ + BwcHFxcXR0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4GBgYODg4WFhYeHh4mJiYuLi4\ + yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJaWlpiYmJmZmZycnKCgoKGhoaKioqOjo6Wlpaampqenp6\ + ioqKmpqaqqqqurq6ysrK6urrGxsbW1tba2trm5ubq6uru7u7y8vL6+vsLCwsPDw8TExMXFxcbGxsfHx8\ + jIyMrKysvLy8zMzM7Ozs/Pz9DQ0NHR0dPT09XV1dbW1tjY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Hh4e\ + Pj4+Tk5OXl5ebm5ufn5+np6erq6uvr6+zs7O7u7u/v7/Hx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+f\ + r6+v39/f7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAALcALAAAAA\ + AoACgAQAj/AAEIHEiwoMGDCBMC8HKrocMjAC54moIAAIAJgfAEAPDmlsePWACIHClSya2TKFPeahUEgE\ + uXFQTdmkmzZk0iAHICGHGrp8+fQO0A0HCrqNGjSG+BAMC0KdMAbm5JncqHAAAZsW7dwgJAQKFbYMPeUg\ + OgrNmzaMsaeCLrlttbpe6MgdJm1q27t2I1KQCgr9+/fjPIukW48C1JAACEigAgAQAAjgIA8GMCAJpbmD\ + PfelUBgGfPeW6JHk3alJgPAFKrBiAiTapbsGPLvoUGgG0ACQCsucW7t+/eWgAA0HKruPHjxs0AWM68Of\ + MFAABg+KLplvXr2C95sQCgu/fv4MOH/y+RhA0fQoT4rEEyAoD79/DjywcQoMut+/cXSQAAAAILgA4EAA\ + AQQ9UthLdsdQHQ0OHDhhFI3aJYcQ4AAKgMAIgyxxILACg6AQAA6dZJlKIgAGDZEsCmWzFlygwDYICcSD\ + uYeDIB4MQtDwMS3SJalKglAEmT8rnV1KlTQAEkSNF0SwWAMbcoOXEAAICFW2HFirUDwCyANbfUrmXbtg\ + mAFrfkzqVb91YZAHnzfrnV1+/fv48AAIB1y/BhxIi3AGDcuAIAH7ZuTaZMGU4AADw2AEhB69Zn0KBt4Q\ + BQ2vTp0z1I3bolC8aNVbdky97EQACnW7lF6QDQ2/dv4MGFDyde3P/4ceTFM4DZdMv5c+iZvlwAUN36de\ + zZf5C61f3WJyECAIwH8EDMrFvpb43aAcD9e/jxA7y5Vb9+qAkALugZ1YcOwFFWBgCwUesWQoRsADBs6J\ + Dhj1sSJ7IiAEBOFgAABgQAcIDQEgAcbN0qWdJWDgAqV65kc+slzFt/ACigBACADAAGDgEAoKkDADm3hh\ + K9dQYA0qQAwNxq6rRprQoAruwhAADAikcAACgyACDLrbBiw3IBYNYsiVtq17Kd9QIAAA4uajAAYEDRrV\ + qxbvHt6zcEgMAA2NwqbPiwJ1m3Gs0wAOBIq1u3YMWZQeUW5syZzQDoDEDPrdCiRS9KAABAABr2JwDsaA\ + HgdQIjk27Rrl07DYDcAPbc6u37d+9agYAEACCgCKJbypczZ14HAHQASG5Rr279OhsAJW5x7+79+60hAM\ + aP13TrPPr06QMBSHDrPfz48isBqG8fQ6xb+vfz398JIAAAoG4VNHjQ4CsKABg2BOAg1C2JEyneIgMAY4\ + NOtzh29HhL1AMAI0mW7HILZUqUcgQAsCHL0AAAXG7VtGnTCgCdO3nyrGLrVtBTBwC8cHULKS0VADa4uv\ + X0lq0uAKhWtXq1qoEnsW519foVE6Nbt2A1KQAAbVq1a9kiAPCWBJI0egYN0nPmiAgAe/n29fsXcGDBgw\ + MCADs=' + + + aclfh_tyf71_006_B64=b'R0lGODlhJAAkAIcAAA\ + AAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAoKCgwMDA0NDRAQEBERERISEhMTExUVFRYWFhcXFxgYGB\ + oaGhsbGxwcHB0dHR4eHiAgICEhISIiIiMjIyUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS8vLzAwMD\ + ExMTMzMzQ0NDU1NTc3Nzk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQENDQ0REREZGRkdHR0lJSUpKSktLS0\ + 1NTU5OTk9PT1BQUFFRUVJSUlNTU1VVVVlZWVxcXF5eXmBgYGJiYmNjY2VlZWZmZmpqamxsbG1tbW9vb3\ + BwcHJycnR0dHV1dXZ2dnd3d3h4eHt7e3x8fH19fX9/f4CAgIGBgYKCgoODg4SEhIWFhYqKiouLi4yMjI\ + 2NjY6OjpCQkJOTk5SUlJ2dnaCgoKKioqOjo6SkpKWlpaampqenp6mpqaqqqqurq6ysrK2tra6urq+vr7\ + GxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5uby8vL29vb6+vr+/v8DAwMHBwcPDw8TExMXFxcnJycvLy8\ + zMzM3Nzc/Pz9DQ0NHR0dLS0tPT09XV1dbW1tfX19jY2Nvb29zc3N3d3d7e3uHh4eLi4uPj4+Tk5OXl5e\ + fn5+jo6Onp6erq6uvr6+zs7O3t7e/v7/Dw8PHx8fPz8/T09PX19fb29vf39/j4+Pr6+vv7+/z8/P39/f\ + 7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAALUALAAAAA\ + AkACQAQAj/AAEIHEiwoMGDCAmKqcWw4aIGcS59oHEo0ZAKeySVuFKro8cuAEKG/FKrpEmTjoiooVTrEY\ + o1tTb5kTICBJ5aOHPihAKgp4xaQIMKDQqry4pRtZIqXZp0lgwAUKNKhTqnltWrWEuJqlVrzgwAYMOKHQ\ + tWTK2ztV79aQGAAIEBKebAqkW3FhkAePPqdVOrr9++p55ccIRKTZpQgEJUqbXFSqtakCPXEgOgspJamD\ + Nr1gyKR5JaoEOLHg0EgOnTfWqpXq3azoYfo0LtSFGplu3btu9AAMC7t+/fL9ykqkW8OHFUbmYAWM68uf\ + Plj2pJrzWrToEptUodIkQqVpkFXGqJ/xdfCID58+cP1VrPvtYgBocQYTCiQEWnLC9EUYmRqZZ/gLUEzg\ + FQEECKWgkVLqxFSccEDhQY+GBUy+JFjBcBbERTy+NHkLLyICEBQYGDDjvOdKrV0uXLWloAADiAqtZNnD\ + lxkjpyo9ZPoEGDRgJQtKiMWkmVLq01S42EBFpqTaVatZaqGQC0buVap9bXWpMw1NhUyywtMxHK1GLL9k\ + 4GAHHlzqVL98QPKFq0PAECwO9fwIEFD0aQQsmXM2jAKElxAMBjyJElTwbg4lAtzLNaZdqjx9IrWbVEI5\ + IBwPRp1KkBEKrVutaqMgFgxMGUiQ4OA1FY1eJdqw8A4MGFAy9Uy/+48U0xcNTis0FAAQ1taFXpMKjW9e\ + t2AGznvt1FLfDha/VpAAnQAzl2BHGiQYRVkR+las2f/wrAffwwau3nv78SQA1YTiFhgCFJKCY2Tjmhwa\ + kWxIi1AFAEgCBVrYwaNV5KAQIOpkxuUMyQVItWrZQqVUYC4FJJrZgyZb4KVauWoSUPwNTqqaqRHk21hh\ + Id+gMAADS1ljJdSkuRCwssvJQhwYRNDwwjmhh6Vesr2K9aAAAAU+ss2rRoK2GJ0MJQrFpy59Kd+wQAgB\ + S19vLt29dTkB+1BhMubNgEgMRuajFu7LhxqicxWNWqbPmy5TAANm9GVOsz6NCfXUHxIKkW6tRwqlHLAe\ + D6NYAxtWbTpk3rjQYhTy7cqeX7N/AvAIYTL16oFnLksvhsyOGpVi1BIpCwqmX9eqAMALZz786dy6tatT\ + 6ZqVTr/HlTUrTQqlVL1RcIAObTr2+/vhhJtfbz3z8JYBgZAAgWNHgQYUKFCwkGBAA7' + + + aclfh_tyf71_007_B64=b'R0lGODlhHAAcAIYAAA\ + AAAAMDAwQEBAYGBgkJCQsLCwwMDA4ODg8PDxAQEBERERUVFRYWFhcXFxgYGBoaGhwcHCAgICEhISMjIy\ + UlJSYmJigoKCwsLC8vLzIyMjMzMzg4ODk5OTo6Ojs7Ozw8PENDQ0ZGRkdHR05OTk9PT1BQUFFRUVNTU1\ + VVVVpaWltbW2JiYmRkZGVlZWlpaWxsbG9vb3BwcHJycnR0dHd3d3l5eXp6ent7e3x8fH5+fn9/f4GBgY\ + KCgoSEhIiIiIuLi4+Pj5CQkJKSkpOTk5SUlJiYmJmZmZ2dnZ+fn6KioqSkpKWlpaioqKmpqaqqqqurq6\ + ysrLKysrOzs7S0tLW1tbe3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcPDw8fHx8nJyczMzM\ + 7Ozs/Pz9HR0dPT09XV1dfX19zc3N7e3uHh4eLi4ubm5unp6evr6+zs7O3t7e7u7u/v7/Pz8/T09Pb29v\ + f39/j4+Pn5+fr6+vz8/P39/f7+/v///yH5BAEAAH8ALAAAAAAcABwAQAj/AAEIHEiwoMGDArf8WcgQwZ\ + MhEhSkkDPgTYQnfzJmzAKgY5E/IEOK/POCx5+TKFP+wQKgpUsAMPz8+RNEzp+bf5jo8POHDwwAQIMKBd\ + Dkj1E/KjBYkSMHi4cQdf5IXQKgqtUsf7Jq/YPEzh8/Far8+ROGA4g/aNOWAcAWwJ+3cOG+2fCAzZ+7eO\ + /yAcC3r18AWuL8GaxGzZ/Dcr4AWMy4MQAafyJHZoBEiQEoUAj8EIPgj2fPMQCIBtDij+nTpjWcILOGyI\ + Eof/j8mU37jw0AAMb82c17txgaFwY0KJEkzp/jyI+nAcBczp/n0KMXWcHnj/Xr2AFo377kj3fvdDqM//\ + iDB8KMP+jTTwHAvr179zawlEmTpkyWGwDy69/Pn38LgEWylCmTpQgLAAkVLmQIgMYfiHmAGBAQgECPPX\ + 80ygDQ0ePHJn9E/iEy4U4QChSG9BGR48/LP1AAzKQJ4M9NnADOoPBxpIuUAnYagPlTtCgApEjj/GHaFE\ + eGP0JYuBHi4M+CM3+0bgXQtcgfsGHBzqnRQUEILn/U/vHzx61bLAAAjPlT124eDAlYoNFg5AgGBC3a/C\ + FcOA0AAFn+LGbM2I8dEz32/KFc2XIZAABY/OHc2fOfHTL+jCZd+o8NAKm9/GHd2rUTE3r+zKZN+woA3L\ + hl/OHd+w8cCyhcfPhT3DJ4cRgAlC9X/uTP8z8kQvyhbqYAlT/Z/0wB0N37d+9Y/ownP97PnywA1K9n39\ + 79e/gBAQA7' + + + aclfh_tyf71_008_B64=b'R0lGODlhGAAYAIYAAA\ + AAAAMDAwQEBAYGBgsLCwwMDA8PDxAQEBISEhQUFBcXFxgYGBkZGRoaGhsbGx0dHR8fHyAgICIiIiQkJC\ + UlJSYmJigoKCoqKisrKy8vLzMzMzQ0NDg4ODo6Oj4+PkBAQEdHR01NTVBQUFFRUVNTU1VVVVZWVlxcXG\ + JiYmpqanR0dHh4eHp6eoCAgIaGhomJiYuLi4yMjI2NjZGRkZKSkpWVlZiYmJmZmZ+fn6CgoKioqKmpqa\ + ysrK2tra6urq+vr7KysrS0tLa2tre3t7q6uru7u76+vsHBwcLCwsTExMrKys7OztPT09TU1Nzc3N3d3d\ + 7e3uDg4OHh4eXl5ebm5ufn5+np6ezs7O7u7u/v7/Dw8PLy8vPz8/T09Pb29vj4+Pn5+fr6+vv7+/z8/P\ + 39/f7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAGYALAAAAAAYABgAQAj/AAEIHEiwoEGCNMwoXEhiRZ\ + YkVigoYbLEjEWLKwAAUGCmo0ePAFSYGUly5JcBAFICsODFjMsRLLAAAFDFBYYtZsx0AcCTpxYzQIN6GS\ + IiAIQWTcwoXaoUgFOnDMKYMQPAg5mrUQCMMWMmjAMAYMOGNQDDjJkyPgAA2CHGjBkZAOLKjQvDjF0zPT\ + 5wCZHjhA8APzSYGWzmBoDDVswoVjwGihkoDY6YMcMjhZnLmAEAgGKms2fPAHCYGU2a9BQAqAtwMcO6NY\ + ASAEyYmU07TAIAuHPnFrCiipnfZqisGACguPHjxxXQcGKFCxcrUGYAmE69+nQLV8yY+TLBA5AgICSUvD\ + FjhguA8+gBGLhipj2UCmUg6PBBAMuHImbyhwHAH8ACgGYEDrxgRsIDFEUAIKFgxqEZMQAkOjFT0SKZDQ\ + c4AHBhxuNHj1UAANBixqRJKQA+POlgpMaBCEbMzKQJAIAVMzl16gQgxMxPoEEBAJhhxujRowBemGHatO\ + kKAFFjmKFa1UwZABnMbOW61QYAsGAxdDFTtgyAEGbMACBixq2ZLQ4AzKU7F8ENMWb07iViBoyNBAAEDy\ + Zc2PBhAAEBADs=' + + + aclfh_tyf71_009_B64=b'R0lGODlhEAAQAIYAAA\ + AAADQ0NDo6Oj09PUNDQ01NTVFRUVdXV1hYWFpaWltbW1xcXF1dXWFhYWJiYmZmZmlpaWpqamtra2xsbG\ + 1tbXJycnNzc3R0dHV1dX5+fn9/f4KCgoSEhIqKio6OjpGRkZKSkpWVlZaWlpeXl5iYmJqampubm6Ojo6\ + ampqurq62tra6urrCwsLKysrS0tLe3t7m5ubq6uru7u7y8vMHBwcLCwsTExMfHx8vLy87OztDQ0NTU1N\ + XV1dfX19ra2tvb29/f3+Dg4OHh4eTk5OXl5ejo6Onp6fHx8fPz8/X19fb29vf39/j4+Pn5+fv7+/39/f\ + 7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAFEALAAAAAAQABAAQAjmAAEIHEiwoMAoCJ0YwSBgwI\ + UZS6JEUQIAAIUoGBOIIBAhA4wST6KQAEDyRBQoUVAs4NAhisscAGLGVBGFRoUDCCzoiHICgE8AUYL+WH\ + IhgAMbUaBEiXIEAAAeUaJGxfEgilWrRQBo1UoCCBIlTILwAAGgrNmyE3wUYXHiyA4HAOLKVRElioIUHk\ + yg4DAkigwAgHtEGSzBQwsUGmpkiBKFCAAAUaI8eQHBRQgVJArQWBJFCQAAUUKHbrJiw5EoqKMcAQCgQZ\ + TXr0cYSBKldpQPAHIDiBGFBgMkQhbciJIDgPHjyJMjDwgAOw==' + + + aclfh_tyf71_010_B64=b'R0lGODlhCAAIAIUAAA\ + AAAAEBAQgICBUVFR0dHS4uLkBAQEZGRk5OTlFRUVRUVFVVVVhYWFlZWVxcXF5eXl9fX2BgYGRkZGZmZm\ + 9vb4GBgYWFhYeHh46OjpSUlJycnLq6usHBwcjIyOTk5Ofn5+7u7u/v7/Ly8vX19fb29vj4+Pv7+////w\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAACH5BAEAACcALAAAAAAIAAgAAAhIAAEoAECwwIITFAh4iOAgBAAIAEA8qIChwQgAAD\ + poSJBBgggAA0hwgLChxAkAAU5cMNDAxAkAEwAg+GCBgYADJw4A2AkAwYmAADs=' + + + down_B64=b'R0lGODlhFAAUAIMAAA\ + AAAAEBARUVFTAwMFFRUV9fX2BgYJ2dnZ6enp+fn8/Pz+rq6v7+/v///wAAAAAAACH5BAEAAA0ALAAAAA\ + AUABQAQAjnABsIHAigoMGCDRIqJACgYcMAACJKDACgYkUCDTJqbCAAgEcAAhqIHElyJICTKE82WMlyJQ\ + MFAGLKnBlTAYMGOHPiBMCzJ88GQIMKBQqgqNGiDZIqTSoAgNOnUKEKaEC1aoMCALJqzWqggdevYL0yUA\ + AAgAIGDdKqXasWgNu3bhvInUtXLoC7eO822Mu3714AgAMDbkC4sGHCABIrTtygseMGAwIAmEy5cuUAAx\ + poXgCgs+fPnxc0GE06AYDTqFMnaMC6tesBAQDIBhBgQIPbuHPjXgCgN4AFDYILH068wQEEDZIrVx4QAD\ + s=' + + + left_B64=b'R0lGODlhFAAUAIMAAA\ + AAAAEBARUVFTAwMFFRUV9fX2BgYJ2dnZ6enp+fn8/Pz+rq6v7+/v///wAAAAAAACH5BAEAAA0ALAAAAA\ + AUABQAQAjUABsIHEiwAYEGCBMmVACgocOHEB02mEixgQIAGAE02MixY8cEAEKGbECyZEkGCwQEAMCypc\ + uXDWLKbMBggYAAABro3MlT5wAAQIMGAEC0KFEEAJIqXcp0aYOnTw0AmEq1gdWrWLNeHQCggdevYMN+HQ\ + CggdmzaNMqAMAWQIO3cOPCLQCgrt0GePPmZbBAQAAAgAMLHnwAgOHDiBMjbqAAgOPHkCM/bkC5wQAAmD\ + MHAMC5M+cGoEMnAECadIPTqFOrZrBAQAAADWLLnk17NoEGuHPjDggAOw==' + + + right_B64=b'R0lGODlhFAAUAIMAAA\ + AAAAEBARUVFTAwMFFRUV9fX2BgYJ2dnZ6enp+fn8/Pz+rq6v7+/v///wAAAAAAACH5BAEAAA0ALAAAAA\ + AUABQAQAjVABsIHCiQQIODCBM2AMCwocOHDRU0mEiRIoCLABQ02Mixo0cAIEEmaECyJICTKFOqDCBgAY\ + MGMGPGBBBAwAIGDXLqbACgp8+eAQAIHTqggdEGAJIqXcp06YEGUKNCBUC1aoEGWLNqzQpgQIOvYMOKBQ\ + tgQIOzaNOqRQugLQAFDeLKnUsXgN27Bhro1Qugr9+/gAMIWMCgAYDDiBMrTowAgOPHkCM/VtAAgOXLlg\ + MA2Mx5QIPPoEN/BkCadIIGqFOrVg0ggIAFDBrInk27NoEGuHPrbhAQADs=' + + + up_B64=b'R0lGODlhFAAUAIMAAA\ + AAAAEBARUVFTAwMFFRUV9fX2BgYJ2dnZ6enp+fn8/Pz+rq6v7+/v///wAAAAAAACH5BAEAAA0ALAAAAA\ + AUABQAQAjoABsIHDgQwYEGCBMqbLAAgMOHECEuaECxIkUAGDNibMCxo0eOAwIAGAkgwIAGKFOqRAmgpc\ + uWDWLKnClzAYCbABY02MmzZ4MEAIIKHZqggVGjAwIAWMq0adMAAxpIndoAgNWrVhto3cpVK4CvYL82GE\ + u2LFkGCgAAUMCggdu3cOEKAEAXgIAGePPqxWsAgN+/fgs0GEy4AQMFABIrXpxYAYMGkBsIAEC5smXLAh\ + o0IACgc+cAAEKLDgCgdGkCDVKrBsC6NesGsGPLhg2gtu3aDXLr3p0bgO/fvhsIH05cOIDjyI83WM48IA\ + A7' + diff --git a/k40_whisperer.py b/k40_whisperer.py index 55b090a..5756ee5 100644 --- a/k40_whisperer.py +++ b/k40_whisperer.py @@ -2,7 +2,7 @@ """ K40 Whisperer - Copyright (C) <2017-2020> + Copyright (C) <2017-2021> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or @@ -17,7 +17,7 @@ along with this program. If not, see . """ -version = '0.56' +version = '0.57' title_text = "K40 Whisperer V"+version import sys @@ -32,6 +32,7 @@ from interpolate import interpolate from ecoords import ECoord from convex_hull import hull2D +from embedded_images import K40_Whisperer_Images import inkex import simplestyle @@ -42,6 +43,7 @@ import struct DEBUG = False + if DEBUG: import inspect @@ -520,23 +522,23 @@ def createWidgets(self): self.UnLock_Button = Button(self.master,text="Unlock Rail", command=self.Unlock) self.Stop_Button = Button(self.master,text="Pause/Stop", command=self.Stop) - try: - self.left_image = self.Imaging_Free(Image.open("left.png"),bg=None) - self.right_image = self.Imaging_Free(Image.open("right.png"),bg=None) - self.up_image = self.Imaging_Free(Image.open("up.png"),bg=None) - self.down_image = self.Imaging_Free(Image.open("down.png"),bg=None) + try: + self.left_image = PhotoImage(data=K40_Whisperer_Images.left_B64, format='gif') + self.right_image = PhotoImage(data=K40_Whisperer_Images.right_B64, format='gif') + self.up_image = PhotoImage(data=K40_Whisperer_Images.up_B64, format='gif') + self.down_image = PhotoImage(data=K40_Whisperer_Images.down_B64, format='gif') self.Right_Button = Button(self.master,image=self.right_image, command=self.Move_Right) self.Left_Button = Button(self.master,image=self.left_image, command=self.Move_Left) self.Up_Button = Button(self.master,image=self.up_image, command=self.Move_Up) self.Down_Button = Button(self.master,image=self.down_image, command=self.Move_Down) - self.UL_image = self.Imaging_Free(Image.open("UL.png"),bg=None) - self.UR_image = self.Imaging_Free(Image.open("UR.png"),bg=None) - self.LR_image = self.Imaging_Free(Image.open("LR.png"),bg=None) - self.LL_image = self.Imaging_Free(Image.open("LL.png"),bg=None) - self.CC_image = self.Imaging_Free(Image.open("CC.png"),bg=None) - + self.UL_image = PhotoImage(data=K40_Whisperer_Images.UL_B64, format='gif') + self.UR_image = PhotoImage(data=K40_Whisperer_Images.UR_B64, format='gif') + self.LR_image = PhotoImage(data=K40_Whisperer_Images.LR_B64, format='gif') + self.LL_image = PhotoImage(data=K40_Whisperer_Images.LL_B64, format='gif') + self.CC_image = PhotoImage(data=K40_Whisperer_Images.CC_B64, format='gif') + self.UL_Button = Button(self.master,image=self.UL_image, command=self.Move_UL) self.UR_Button = Button(self.master,image=self.UR_image, command=self.Move_UR) self.LR_Button = Button(self.master,image=self.LR_image, command=self.Move_LR) @@ -2280,11 +2282,6 @@ def gcode_error_message(self,message): return_value = StringVar() return_value.set("none") - try: - error_report.iconbitmap(bitmap="@emblem64") - except: - debug_message(traceback.format_exc()) - pass def Close_Click(event): return_value.set("close") @@ -3029,7 +3026,8 @@ def Finish_Job(self, event=None): if self.post_exec.get(): cmd = [self.batch_path.get()] from subprocess import Popen, PIPE - proc = Popen(cmd, shell=True, stdin=None, stdout=PIPE, stderr=PIPE) + startupinfo=None + proc = Popen(cmd, shell=False, stdout=PIPE, stderr=PIPE, stdin=PIPE, startupinfo=startupinfo) stdout,stderr = proc.communicate() if self.post_disp.get() or stderr != '': @@ -3379,7 +3377,8 @@ def send_data(self,operation_type=None, output_filename=None): starty = ymax if self.HomeUR.get(): - FlipXoffset = abs(xmax-xmin) + Xscale = float(self.LaserXscale.get()) + FlipXoffset = Xscale*abs(xmax-xmin) if self.rotate.get(): startx = -xmin else: @@ -3855,8 +3854,8 @@ def menu_Calc_Raster_Time(self,event=None): def menu_Help_About(self): - - about = "K40 Whisperer Version %s\n\n" %(version) + application="K40 Whisperer" + about = "%s Version %s\n\n" %(application,version) about = about + "By Scorch.\n" about = about + "\163\143\157\162\143\150\100\163\143\157\162" about = about + "\143\150\167\157\162\153\163\056\143\157\155\n" @@ -3866,7 +3865,7 @@ def menu_Help_About(self): except: python_version = "" about = about + "Python "+python_version+" (%d bit)" %(struct.calcsize("P") * 8) - message_box("About k40 Whisperer",about) + message_box("About %s" %(application),about) def menu_Help_Web(self): webbrowser.open_new(r"https://www.scorchworks.com/K40whisperer/k40whisperer.html") @@ -4739,12 +4738,6 @@ def GEN_Settings_Window(self): gen_settings.title('General Settings') gen_settings.iconname("General Settings") - try: - gen_settings.iconbitmap(bitmap="@emblem64") - except: - debug_message(traceback.format_exc()) - pass - D_Yloc = 6 D_dY = 26 xd_label_L = 12 @@ -4964,12 +4957,6 @@ def RASTER_Settings_Window(self): raster_settings.title('Raster Settings') raster_settings.iconname("Raster Settings") - try: - raster_settings.iconbitmap(bitmap="@emblem64") - except: - debug_message(traceback.format_exc()) - pass - D_Yloc = 6 D_dY = 24 xd_label_L = 12 @@ -4980,8 +4967,6 @@ def RASTER_Settings_Window(self): xd_entry_L=xd_label_L+w_label+10 xd_units_L=xd_entry_L+w_entry+5 - - D_Yloc=D_Yloc+D_dY self.Label_Rstep = Label(raster_settings,text="Scanline Step", anchor=CENTER ) self.Label_Rstep.place(x=xd_label_L, y=D_Yloc, width=w_label, height=21) @@ -5144,12 +5129,6 @@ def ROTARY_Settings_Window(self): rotary_settings.title('Rotary Settings') rotary_settings.iconname("Rotary Settings") - try: - rotary_settings.iconbitmap(bitmap="@emblem64") - except: - debug_message(traceback.format_exc()) - pass - D_Yloc = 6 D_dY = 30 xd_label_L = 12 @@ -5213,11 +5192,6 @@ def TRACE_Settings_Window(self, dummy=None): trace_window.resizable(0,0) trace_window.title('Trace Boundary') trace_window.iconname("Trace Boundary") - try: - trace_window.iconbitmap(bitmap="@emblem64") - except: - debug_message(traceback.format_exc()) - pass def Close_Click(): win_id=self.grab_current() @@ -5295,11 +5269,6 @@ def EGV_Send_Window(self,EGV_filename): egv_send.resizable(0,0) egv_send.title('EGV Send') egv_send.iconname("EGV Send") - try: - egv_send.iconbitmap(bitmap="@emblem64") - except: - debug_message(traceback.format_exc()) - pass D_Yloc = 0 D_dY = 28 @@ -5425,11 +5394,6 @@ def body(self, master): self.resizable(0,0) self.title('Units') self.iconname("Units") - - try: - self.iconbitmap(bitmap="@emblem64") - except: - pass self.uom = StringVar() self.uom.set("Millimeters") @@ -5535,10 +5499,6 @@ def body(self, master): self.resizable(0,0) self.title('SVG Import Scale:') self.iconname("SVG Scale") - try: - self.iconbitmap(bitmap="@emblem64") - except: - pass ########################################################################### def Entry_custom_Check(): @@ -5730,7 +5690,7 @@ def apply(self): viewbox = [self.minx_pixels, self.miny_pixels, width/25.4*pxpi, height/25.4*pxpi] self.result = pxpi,viewbox return - + ################################################################################ # Startup Application # ################################################################################ @@ -5756,29 +5716,52 @@ def apply(self): except: debug_message("Font Set Failed.") +################################## Set Icon ######################################## +Icon_Set=False + try: + debug_message("Icon set %s" %(sys.argv[0])) + root.iconbitmap(default="emblem") + debug_message("Icon set worked %s" %(sys.argv[0])) + Icon_Set=True +except: + debug_message(traceback.format_exc()) + Icon_Set=False + +if not Icon_Set: try: - app.master.iconbitmap(r'emblem') + scorch_ico_B64=b'R0lGODlhEAAQAIYAAA\ + AAABAQEBYWFhcXFxsbGyUlJSYmJikpKSwsLC4uLi8vLzExMTMzMzc3Nzg4ODk5OTs7Oz4+PkJCQkRERE\ + VFRUtLS0xMTE5OTlNTU1dXV1xcXGBgYGVlZWhoaGtra3FxcXR0dHh4eICAgISEhI+Pj5mZmZ2dnaKioq\ + Ojo62tra6urrS0tLi4uLm5ub29vcLCwsbGxsjIyMzMzM/Pz9PT09XV1dbW1tjY2Nzc3OHh4eLi4uXl5e\ + fn5+jo6Ovr6+/v7/Hx8fLy8vT09PX19fn5+fv7+/z8/P7+/v///wAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEKAEkALAAAAAAQABAAQAj/AJMIFBhBQYAACRIkWbgwAA\ + 4kEFEECACAxBAkGH8ESEKgBZIiAIQECBAjAA8kNwIkScKgQhAkRggAIJACCZIaJxgk2clgAY4OAAoEAO\ + ABCIIDSZIwkIHEBw0YFAAA6IGDCBIkLAhMyICka9cAKZCIRTLEBIMkaA0MSNGjSBEVIgpESEK3LgMCI1\ + aAWCFDA4EDSQInwaDACBEAImLwCAFARw4HFJJcgGADyZEAL3YQcMGBBpIjHx4EeIGkRoMFJgakWADABx\ + IkPwIgcIGkdm0AMJDo1g3jQBIBRZAINyKAwxEkyHEUSMIcwYYbEgwYmQGgyI8SD5Jo327hgIIAAQ5cBs\ + CQpHySgAA7' + icon_im =PhotoImage(data=scorch_ico_B64, format='gif') + root.call('wm', 'iconphoto', root._w, '-default', icon_im) except: - app.master.iconbitmap(bitmap="@emblem64") -except: - pass + pass +##################################################################################### + if LOAD_MSG != "": message_box("K40 Whisperer",LOAD_MSG) -debug_message("Debuging is turned on.") - opts, args = None, None try: - opts, args = getopt.getopt(sys.argv[1:], "hp",["help", "pi"]) + opts, args = getopt.getopt(sys.argv[1:], "hpd",["help", "pi", "debug"]) except: print('Unable interpret command line options') sys.exit() for option, value in opts: if option in ('-h','--help'): - pass print(' ') print('Usage: python k40_whisperer.py [-h -p]') print('-h : print this help (also --help)') @@ -5788,6 +5771,11 @@ def apply(self): print("pi mode") app.master.minsize(480,320) app.master.geometry("480x320") + elif option in ('-d','--debug'): + DEBUG=True - +if DEBUG: + import inspect +debug_message("Debuging is turned on.") + root.mainloop() diff --git a/k40_whisperer.spec b/k40_whisperer.spec index eabd3a1..7528ec7 100644 --- a/k40_whisperer.spec +++ b/k40_whisperer.spec @@ -44,6 +44,6 @@ app = BUNDLE(exe, 'CFBundleIdentifier': 'com.scorchworks.k40_whisperer', 'CFBundleName': 'K40 Whisperer', 'CFBundleDisplayName': 'K40 Whisperer', - 'CFBundleShortVersionString': '0.56' + 'CFBundleShortVersionString': '0.57' } ) diff --git a/macOS.patch b/macOS.patch index 6f3b44b..3ce5b48 100644 --- a/macOS.patch +++ b/macOS.patch @@ -1,6 +1,6 @@ ---- K40_Whisperer-0.56_src/k40_whisperer.py 2021-01-24 13:33:20.000000000 -0500 -+++ k40_whisperer.py 2021-01-25 14:22:40.000000000 -0500 -@@ -5744,10 +5744,10 @@ +--- K40_Whisperer-0.57_src/k40_whisperer.py 2021-03-16 19:22:44.000000000 -0700 ++++ k40_whisperer.py 2021-03-23 10:37:50.000000000 -0700 +@@ -5704,10 +5704,10 @@ try: try: import tkFont diff --git a/py2app_setup.py b/py2app_setup.py index 0b18b61..b7eb530 100644 --- a/py2app_setup.py +++ b/py2app_setup.py @@ -10,7 +10,7 @@ from setuptools import setup app_name = 'K40 Whisperer' -app_version = "0.56" +app_version = "0.57" app_copyright = u'Copyright © 2017-2019, Scorch Works, GNU General Public License' main_script = 'k40_whisperer.py' url = 'https://github.com/stephenhouser/k40-whisperer' diff --git a/requirements.txt b/requirements.txt index 5067386..b06217f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,4 +2,3 @@ lxml pyusb pillow pyclipper -pyinstaller \ No newline at end of file diff --git a/svg_reader.py b/svg_reader.py index d82eaa6..4ae0b5f 100644 --- a/svg_reader.py +++ b/svg_reader.py @@ -1,6 +1,6 @@ #!/usr/bin/env python ''' -Copyright (C) 2017-2020 Scorch www.scorchworks.com +Copyright (C) 2017-2021 Scorch www.scorchworks.com Derived from dxf_outlines.py by Aaron Spike and Alvin Penner This program is free software; you can redistribute it and/or modify @@ -50,7 +50,7 @@ def run_external(cmd, timeout_sec): stderr=None FLAG=[True] try: - proc = Popen(cmd, stdout=PIPE, stderr=PIPE) + proc = Popen(cmd, shell=False, stdout=PIPE, stderr=PIPE, stdin=PIPE, startupinfo=None) except Exception as e: raise Exception("\n%s\n\nExecutable Path:\n%s" %(e,cmd[0])) if timeout_sec > 0: @@ -168,6 +168,7 @@ def __init__(self): def parse_svg(self,filename): try: self.parse(filename) + #self.parse(filename, encoding='utf-8') except Exception as e: exception_msg = "%s" %(e) if exception_msg.find("encoding"): @@ -691,6 +692,7 @@ def Make_PNG(self): png_temp_file = os.path.join(tmp_dir, "k40w_image.png") dpi = "%d" %(self.image_dpi) self.document.write(svg_temp_file) + #self.document.write("svg_temp_file.svg", encoding='utf-8') # Check Version of Inkscape cmd = [ self.inkscape_exe, "-V"] diff --git a/update-macOS.sh b/update-macOS.sh index 2316a1c..26633a3 100755 --- a/update-macOS.sh +++ b/update-macOS.sh @@ -118,6 +118,9 @@ done # Apply macOS patches to f-engrave.py echo "Patch k40_whisperer.py for macOS..." patch -p0 -i macOS.patch +echo >> requirements.txt +echo pyinstaller >> requirements.txt + # Update version in setup script echo "Update version number in setup script..."