PB USB-Starter (PureBasic vom USB Stick nutzen)

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

PB USB-Starter (PureBasic vom USB Stick nutzen)

Beitrag von Kurzer »

Dieser Beitrag wurde editiert, nachdem bereits Antworten darauf gepostet wurden.

Edit 14.01.2013:
Version 1.01 hochgeladen.

Folgende Features sind dazugekommen:
- Es können mehere Suchstrings angegeben werden.

Edit 08.02.2013:
Version 1.10 hochgeladen

Auch wenn das Einsatzgebiet dieses Tools recht speziell sein mag, habe ich noch etwas daran weitergearbeitet.

Folgende Features sind dazugekommen:
- Benutzereigenes Hintergrundbild für den Anzeigebereich (jpg oder bmp Format)
- Angabe der zu verwendenden Prefsdatei (Programmparameter 1)
- Angabe eines optionalen "Replace-Laufwerksbuchstabens" (Programmparameter 2)

Aufrufsyntax: PB-USB-Start.exe [Prefsdatei] [optionaler Laufwerksbuchstabe]
Beispiel: PB-USB-Start.exe PB500.prefs J

#################################################################################

PB-USB-Starter:
Ich benutze standardmäßig eine portable PB-Umgebung und habe PureBasic auf zwei Computern installiert, auf denen ich es im /PORTABLEN Modus nutze (Desktop PC und Netbook). Der Installationsort ist in beiden Fällen identisch, so dass ich bislang einfach nur den PB-Programmordner von einem Computer 1:1 auf den anderen kopieren musste, wenn ich in den Programmordnern mal was zugefügt haben sollte (Tools z.B.).

Bei der Installation neuer Versionen oder Betas läuft es genauso. Erstmal auf einem Computer alles installieren & einrichten: Einen neuen Ordner anlegen, PB dort rein installieren, meine Tools kopieren und ggf. anpassen bis alles paßt. Und danach den gesamten, neuen PB-Ordner auf den anderen Rechner kopieren.
Das Läuft ohne Probleme, denn auf beiden Rechner liegt meine PB-Installation unter dem gleichen Verzeichnis und auf dem gleichen Laufwerksbuchstaben.

Dann habe ich mir einen PureBasic USB-Stick einrichten wollen und festgestellt, dass einige Pfade in den PB-Prefs und den Tool-Dateien geändert werden müssen, damit diese auch auf die entsprechenden Verzeichnisse auf dem Stick zeigen. Der USB-Stick hat ja unter Umständen an jedem Rechner einen anderen Laufwerksbuchstaben.

Wie hier im Thread schon angemerkt wurde, könnte man diese Pfade natürlich so erfassen, dass sie relativ arbeiten. Also statt "C:\Dokumente..." einfach nur "..\..\Dokumente..." eingeben, so dass der Pfad immer vom aktuellen Verzeichnis aus aufgelöst wird. Im den meisten Fällen geht das, aber es gibt auch Tools und auch Pfade in den PureBasic-Prefs, die von den jeweiligen Programmen automatisch dort reingeschrieben werden und das leider als absoluter Pfad. Diese Einträge müsste man also bei jedem Einstecken des USB-Sticks manuell anpassen.

Der PB-USB-Starter macht genau das automatisch.

Er ermittelt den aktuellen Laufwerksbuchstaben des USB Sticks, patcht in allen nötigen Prefs-Dateien die absoluten Pfade auf den neuen Laufwerksbuchstaben um und startet im Anschluß die PB-IDE. Danach beendet es sich, so dass nur noch die PB-IDE läuft.

In welchen (Prefs-)Dateien was genau zu patchen ist, das kann man über eine Einstellungsdatei festlegen.
Diese Logik ist also vom Benutzer völlig frei einzurichten.

Anwendung und Einrichtung:
Das Programm PB-USB-Starter.exe kopiert man sich an eine geeignete Stelle auf dem USB Stick. Entweder direkt ins Rootverzeichnis oder unter Programme\ oder PortableApps\ oder was auch immer.

Die nötigen Informationen zum Patchen der Dateipfade und zum Starten der PB-IDE entnimmt das Programm einer eigenen Prefsdatei, die man zuvor einmalig mit einem ASCII-Editor ersetellen muss.

Die Prefsdatei muss sich im selben Verzeichnis befinden wie die PB-USB-Starter.exe. Der Dateiname der Prefsdatei kann als Programmparameter beim Aufruf von PB-USB-Starter.exe angegeben werden.

Beispiel: PB-USB-Starter.exe PureBasic510.prefs

Wird der Dateiname nicht angegeben, dann geht das Prgrammm davon aus, dass die Datei sich im selben Verzeichnis befindet wie die Exe und den gleichen Namen hat (mit suffix = ".prefs"). In dem Fall müsste die Datei also "PB-USB-Starter.prefs" heißen.

Der Aufbau der Prefs-Datei ist folgender:

Code: Alles auswählen

[PureBasic]
Exe = Programme\PureBasic 500 Portable\PureBasic.exe
Param = /PORTABLE
; Dies sind der Dateiname der PureBasic.exe (OHNE Laufwerksbuchstaben!) und die Parameter für den Aufruf
; Diese Exe wird nach dem Patchen der Dateien automatisch gestartet. Der PB-USB-Starter beendet sich danach sofort.

[Search]
1 = :\Programme\PureBasic
2 = :\Dokumente und Einstellungen\
; Nach diesen Strings wird in den zu patchenden Dateien gesucht. Das Zeichen vor diesen gefunden Strings wird gegen den Laufwerksbuchstaben des USB-Sticks ausgetauscht.

[Files]
LastDrive = f:\
; Diesen Buchstaben hatte der USB-Stick das letzte mal

Homepath = Programme\PureBasic 500 Portable\
; Dieser Pfad (OHNE Laufwerksbuchstaben!) ist das Directory von dem aus die nachfolgenden Dateien gesucht werden.

1 = PureBasic.prefs
2 = Tools.prefs
3 = PureTools\PureForm\PureFORM.ini
; Dies sind die Dateien, die vom PB-USB-Starter gepatcht werden
In der Sektion [PureBasic] definiert man den Pfad und Dateinamen zur PureBasic.exe auf dem USB Stick. Zu beachten ist, dass man den Laufwerksbuchstaben dabei nicht mit angibt!
Liegt die Exe z.B. unter "F:\Programme\PureBasic 500 Portable\PureBasic.exe", dann schreibt man lediglich "Programme\PureBasic 500 Portable\PureBasic.exe".
Mit dem Schlüssel "Param" kann ein Parameter angegeben werden, der PureBasic beim Start übergeben wird.

In der Sektion [Search] legt man die Suchstrings zum Auffinden der zu patchenden Pfade fest.
Die Schlüsseleinträge beginnen mit "1" aufwärtszählend.

Der Suchstring MUSS exakt ab dem 2. Zeichen des zu patchenden Pfads beginnen.
Sollen z.B. alle Pfade gepatcht werden die mit "C:\Dokumente und Einstellungen\" beginnen, dann muss dort ":\Dokumente und Einstellungen\" angegeben werden!
Der Grund hierfür ist, das das Programm genau das eine Zeichen VOR dieser Zeichenkette mit dem neuen Laufwerksbuchstaben patcht. Es wird also z.B. das C gegen ein F getauscht. Würde man "C:\Dokumente und Einstellungen\" angeben, dann sähe der String nacher so aus: "FC:\Dokumente und Einstellungen\". Außerdem wäre das letzte Zeichen der davor liegenden Zeichenkette überschrieben worden.
Das Programm bearbeitet die Dateien übrigens im Binärmodus. Evtl. enthaltene binäre Daten werden unangetastet gelassen. Es muss also nicht zwingend eine reine Textdatei sein, die gepatcht werden soll.

Die Sektion [Files] enthält die Pfade und Namen der zu patchenden Dateien.
Mit dem Schlüssel "Homepath" gibt man den übergeordneten Ordner an, unter dem die Dateien zu finden sind. Dies ist normalerweise der PureBasic Programmordner (z.B. Programme\PureBasic 500 Portable\). Auch hier ist wieder zu beachten, dass der führende Laufwerksbuchstabe nicht mit angegeben werden darf. Es darf also nicht "C:\Programme\PureBasic 500 Portable\" heißen. Der Laufwerksbuchstabe des USB Sticks kann jedes mal anders lauten. Er wird vom Programm automatisch davorgesetzt.

Die Dateien selbst legt man mit den Schlüsseleinträgen beginnen mit "1" fest.
Liegt die Datei direkt im "Homepath", dann wird nur der Dateiname angegeben, liegt sie darunter, dann wird der Teilpfad ausgehend vom "Homepath" mit angegeben.

Beispiel:
1 = PureBasic.prefs
2 = PureTools\PureForm\PureFORM.ini

Screenshots:
Hier noch ein paar Screensshots von meiner Installation.
Ich habe mir mehrere PB Versionen auf den USB Stick gelegt und demzufolge auch mehrere Prefsdateien für den PB-USB-Starter.

Außerdem setzte ich das Tool "PStart" von PEGTOP Software ein in dem ich die verschiedenen Aufrufe des PB-USB-Starters konfiguriert habe.

Bild

Bild

Bild

Bild

Bild

Projekt im Bin2Post-Format:
Und hier ist das Projekt zu finden. Die Dateien wurden von mir in ein ZIP-Archiv gepackt und diese Datei in das Bin2Post Format gewandelt.
Wenn ihr den nachfolgenden Code in Euren PureBasic-Editor kopiert und ausführt, werdet ihr nach einem Speicherort gefragt. Nach einem Klick auf OK im Save-Requester erzeugt der Code mein ursprüngliches ZIP-Archiv mit dem gesamten PB-USB-Starter-Projekt (inkl. Icons und Hintergrundbild).

Code: Alles auswählen

;************************************************************************************************
;* Bin2Post by Kurzer - A file generator/converter for sharing binary files in textbased forums.
;* (see here for more information http://www.purebasic.fr/german/viewtopic.php?f=11&t=26298)
;* Filename: PB-USB-Starter.zip - Filesize: 17056
;* Copy & paste this code into your PureBasic IDE and run it (PB Version 4.31+ is needed).
;* You'll be asked for a filename. After choosing the filename the binary file will be generated.
;************************************************************************************************
Macro D:Data.s:EndMacro:*PR=?S:*PW=*PR:Repeat:SL.i=MemoryStringLength(*PR):PokeS(*PW,PeekS(*PR)):
*PW+SL:*PR+SL+1:Until *PR>=?E:IS.i=MemoryStringLength(?S):*PR=AllocateMemory(IS):If *PR>0:
OS.i=Base64Decoder(?S,IS,*PR,IS):F.s=SaveFileRequester("Datei speichern","PB-USB-Starter.zip","Alle Dateien (*.*)|*.*",0)
If F<>"":If CreateFile(0,F):WriteData(0,*PR,OS):CloseFile(0):EndIf:EndIf:FreeMemory(*PR):EndIf:End
DataSection
S:
D "UEsDBBQAAgAAABFGPkIAAAAAAAAAAAAAAAAPAAAAUEItVVNCLVN0YXJ0ZXIvUEsDBBQAAgAIACg/SEJUvZ99AQEAAJ8BAAAhAAAAUEItVVNCLV"
D "N0YXJ0ZXIvUEItVVNCLVN0YXJ0LnByZWZzjVC7bsMwDNwF6B/4BWlaoEuKDjXiooOBCnW6NO6gyLQt+KFApJJ8fhmnr6FDF+nIE6m725oUMbPk"
D "3btW+QnhHkwMbbTjiNU3B7fLJZgQ2e6GX+0FnlArY+W1zF2Z55fNQ1bkWm1LtNF1svIO1pbgDb3rcIJDiFB7JIEtNmmqBXxyPTJLdfSxFq4VeC"
D "YLm5ojxp52yXUk3899gtcyg5K96wlsohZZTtexFI3wI5hMlkRbo1wyFhl5Xr3Q6lqkrqo/TGp1M1Pr0KcRJ0YQgZD7iRiHIU2iqRJrj35AEmdP"
D "YcS95e4/iWlVWOJ19IdzwM2qusj4CXIfsaGLgE0IA301PgBQSwMEFAACAAgAiZFIQm3CQPGBDAAA8SYAACQAAABQQi1VU0ItU3RhcnRlci9QQi"
D "1VU0ItU3RhcnRfUEI0MzEucGK1GmuT2kbyM6nKfxizqbOIWR3sxil7fXbCQ7AkLFAIey+2U5RAA2gREjcj7atS91fvX9ynfLjumZE0EtqN62pN"
D "sSBmerp7+jXdPfvm+6d6ffvNG/FHJu3j93b72I4cFpHFHfk1ZveUJdNPT46Fa+bsAmdHiXyd5VgQQD3PpxrEAZC5X6Rw0d0+B3fheAH5hJ91Mg"
D "iWfuzSFYDVSdeJHHz6Xedj5wVr4jvB2kQSMaMLh3tL8oN52nwh4Drhbg+LiMMzEpde4IY3nFi3VMB8oIx7YUB0NppmsyEmgazGn5xsvDIbJ+ZJ"
D "o3kqQFpxFLICSKYGcvw0L4Grbdmd86k1aL8f9c9SpZimmT4/JbVzj8POPCoogUgaDXJMGPVJs2E2QEKnckJ7WYyDuJRAk1VNWOW4Lmn+8NAqTr"
D "b/DQIakCAOyI5uKKPEjpcbHjFQMCdgEi5lxKbbCBX1yaYOW25+F4OTqdWzj1FNHgFDoGu6AEQ3lLk0MBULzYZiQWquhAVQtEfJfUyuKbuhgYtv"
D "MDK6AlaCJVX4t04QEMfnhOI+WWqFewc+KY78uaBMcmAEMRPW46Er1MwiRQJ2yFzCgWzgLTdRtrROXKRzk0wjwU9grIjnd3MPTCEDN+BINDrEiv"
D "tAxrkrWN7FnAOW5QaFeEVduiM9x/eJtyOc+sgoaOueAkDgcbIAZ8PNA3FKXPgDsuahrFrAUbhHXTg+ZXVyf0O9cnkIiYEIyNCJV6CULV8IvToL"
D "eqCtutAnzEURPHHibKOY+hBKCEaOLvOucRBIfwjZGhGsaRBH95GQVAmXFpC19w7f8CWjgEXwEgfIFm5tRm8jJ+YKk0/XUWI1QoZtzz+QYKnMkG"
D "kQUyq7OvkRHOWWnMDnxLsFd1mz8D+w0kPq7qHGUN4K7wjElhM+2Tg4vvMilCIoz1zs9iREmubVfg1eslp5t8RoX0zk6C+T/nEv3DlR7WucAaRN"
D "Pb73qBKNcJBAeAhHl4I3+YRhuI1hGCO12MPb1DDo53SWvET5hAxMwdeGTSqiMpmgCcHKv0/G01mrPbQEbuX4+PwGnIuTj6gFENB1KJTK4XFNV7"
D "GwYTW3pVFElTuhwQVC4If2GAijA1MjduQtt2BqYBwUTQS9E8AJOs+kDUiY46LN8Ej4YGp/pAkMn30u2SxOnojJbriNQccQJYFJNFEIJL4fgysE"
D "n8UW8VDkYofn4Y7unWjzJfJD+KHDI+ElsKB39jlhKBOtCB0JK7Mw9Hk2dKogxbCg0gvZTj6MpxemF3hPa0xPbprqqEc7YHQZYbR4ao6tAIVt3e"
D "59b+lFX2EPfT9cOD65dpiHlJ58Awo/H+ycNcVgY/I64bONxzHQ43NqLQcDwiPFEBrmBAxTzqeHJBe/pYvKk9vkGUlhmUP0RSbgUmvVxsDklvRg"
D "EJSqIboyvTrx2izmGxNMsgtB2WFMpwp8GK9f176CesANl9QFgTy5YlLMpOW6w3BtBRG7MzieUSaHrVTgDTN9x4WQNIjozmjUyXETlQcgCGBDyn"
D "JBOQfFzg0F1zUatTo5si7mdmc6Hg7rR3Z73h7PZuOLOmkotJcbTJBlUmxdQ2gyapgkUzyqKmjzbsqcxqcp8uck0zcQF8xF4HjURaZ2e9QZ4hc/"
D "ILrAUbykxsvmCcL2aXQRurEvMKAhznFDPwvYuoKRKCW5KY1iFkjEj7LlEUAtTMimbBQaebvLs+kDiOf4o9D0gb8G6gEZ+xD6EKIHwQoCoINJzj"
D "yHBSQn3j+ny5ORhhJqkesUUMYQnfE861O691FIyubrpMWYc1dm303Q62Nb4xd0F7I7O3VDbc5D7EMarMGD0ZckkDYw3gIvb8nRjMVQeEmHQ1/T"
D "cHwv8UstaQjx6IEftnevdqEUOVjpZMk70iAtOP+KO4N9kX+8I9UqLKkoGoCy5fvhEjIOOWBomBB9RRcEQA/pKiporCng8A8YGe9pgBjQ4lIexc"
D "yUOi7WmTijqNdJkVql0vFDTiUGNSI/IXwRFFwTDlfy+rUcrOQiIsy+7zicGgc792oKFzJSXFOtgku2GXW28A0WNFgp2JzyxN4DI7c4Qaq+kMUr"
D "NHZkUdfIcd4OFHglZ0cp8xNKt7aR6OcFuSpYUboVsZcCihx7CVxlEm5pW0cJHEF4a/FlTpUZZl0KI4iB5Er+EM+erhbgoQOii2hO6UCjagb0pp"
D "pgvGRQw3yB9kvUX+lC/aDwaxZVqUxFdMzGU6I5y6tYPqeJQsdbdD2o0ZKhbKMZ2AFUCpQ+9KDmUf6iNoPEEhQFBMmqkuAFkCUB98mPVuz4PPWh"
D "+p7TXyZWXyQ7XbrE+siQaQFpmlhhUFmkvs3qdFHN6W0AKAu0DOfbb/R8J0vMJ0nBK0wCEmxTq49JOouU0JZ9FZaQGMVs8h7qO6xsAxrDkAYDVa"
D "WqcUVpSnjo+8BEMVHKPLPIT7Mmdox+eLAoibQwKeJGEQBiMZQKZyUrwYzPPle1WITB01tvokMkGHwFJQFfikrHpL5gjyorha0VEg3cS14LYhdv"
D "MGeBKh/rbNEAwW4h2Ze2JbTWQwxyVR2XtedHpKo6LbI0QsQFYvJ4UdzVpeTUrxoELfwNSYR1C0UndsFAFRl4DSFAHhgGJgq/cskCFUCBKXZ+Na"
D "zjOWvMpJVm9E/DobIZPCplZohB8WjSng/WQcho/vnHBkye4EdVb/NSVpVwEsPcFm2YDha/jLp/aDPtEJTAhpC91oQiexTLYrbxEHTNsFLmNLqn"
D "gbS0URiRYei4Ys8ioGe7R8le7dcyqj8GtNjtBZBmwQOugMViWWOAOOXhAdoAZgIxODcEoMivBaxNo47vcD4Mg/XckLtKsu9+Zzg/b0/brc6v/e"
D "n4/aiblC+1JExrVBNuRAviLhO91EjFcr0oZDK7F8Pq7+UrfHildCSh5pjNjANfxH2URC8MxKJqC7PRqlyJ8DgBOvBdWUdEEn8Cjt/pTv+iyrBm"
D "s9a0b8261odBx4LBUez7dXXO1Ai4KGj6hjl7bO551x4astjYGzJjTsDBQ2lwnySMQkpKvFIUUr55uv3L4dz6pz37bQgE+18IWSN/I8a/jy5tGJ"
D "h3hgNrNLO6fRj+g6jB2bQ1sietKcwg4xITiVIuI7JzsL2U428S8gLRRv59ZF9O5vb5+PJyMOqOL5EcjozGH8fTrjXNftuDj1b262L8If3Vm7Yu"
D "rM55a9S3uonxSZKd0A9Z4qhyaN52llsxXiff9fBl/fWaHgOV5xb19Nzh69JriJdYpJfCVbRg1ciV/fKkz3dGnlcxMB64N1nc35gEgoGYPxr2vt"
D "M8TNbTGXqtEyc752ekWgi3GhJpoBgdtXlDB04Ljmysz8J4b1TThoqMUbmOC0Qb9NpsjcyaDTyUwGGrxSVJl7R8kZjNlpVyI5NxCZAUB3r9clCn"
D "XNUeogdfMJuSQwmVr5blXaUiCpp8+qql8qXsiu6okkKhg0QelEMKqIkw6WE9uCjpvmprysrM9JQ9TWWs4+b5VCedKtN8EVafFgaLKQ6mKw9eqE"
D "AGOTm8ivpJ1b0P5HhvySlJ9FXonRwCv8M2iSqq1Dkwpf+KKR7XRrUFfgkO9AxlZnGZW2UJ7hdxnWZmZuK06M42pL0iWy5ZL72/LK98jp35rY9X"
D "N+rayAd+yepPeQFkMUwqgN/sIkkk2T/plA28Zcia7kkqKa8T8F4SLx3UnVoSl9S9QJ1AzFB5O14GIs3JCq8OcJN7SBeimsqQiqKc/0b5KETdPD"
D "SbNBfyNnkghoP6Mh/0UglAVQdSelSUQpk3HgU1sHhFg2f5/z1ILkO8HYGBwHWYuwvdmJt68BUslxQvSUTAQtq5M06SE6C8+s2fC8oiHmWe3no8"
D "gmwjkjr6P1l/jPMi44cFufLCrD2WxAJU8/GJWFUWgSuyc5CRSn5/URAWHRixIO2raSiyUPVCQmUtqEIbT7Tskt5Lrket9zsqWt8n18ysHx4FhQ"
D "5mLWsFPRL0s07N42G+FLPmBkVH4AQMRESoHt34ou4Ga2gDwwu82pb/fyD/CUDZmermPMdrwhVkMQzCV/CsWtqf0p41HrLjr/T8yxmO6DnpuUZ6"
D "2uhlb0l0vA5ZWambRTRp/IGyzkdMPGcT+tmknQq6UJMImpFSV7DK3c4SWeWsKXcmwmqVheUSHrVuGgcqHOeXHVxa1fPVdI73Ws59X6buWx5s8B"
D "8DdCsocvucbMMAL3cLR4E6BlLzEOSIcfpwuEgYOCB/kKgWSfqOm/0DjCRYIKd1+7D8lIUeTggrS4pOrXOfFmKyzzleXNFlNDeyMjbDmKbXFt4f"
D "/Q9QSwMEFAACAAgAMpJIQiw8gkrzAAAADgIAABoAAABQQi1VU0ItU3RhcnRlci9wcm9qZWN0LmNmZ6WQwWrDMBBE74H8g47tQcLCjlsKvThOIF"
D "CowJge0hAUeQkCWzIrmbh/X0n0kEChLb1Jw5vdndmLirZNRRsv0bPxdFguCNnVG/I6em2NI89ETAiVdFqRFcsycvemTWcvjlAyP5b3kV9P6CwK"
D "63T0BEteRnlr+06bc/hTSqPQOtipBNTSg3m/3g3ItLKR2sygJi9PPQRw+xSoFc+ODGZIu0Qb5CI97TDqHho7oYJaIyhv8SONMNEeBq1DBC+NXy"
D "7218uOoipy/lPcguX8V3F5yVNejc6/aBPvfihuG7hQ+r8S0J5RDgPc8N+XMkjTfZ3xx5o+AVBLAwQUAAIAAAARRj5CAAAAAAAAAAAAAAAAFQAA"
D "AFBCLVVTQi1TdGFydGVyL0RhdGVuL1BLAwQUAAIACAAgTStCGvBaoaUDAAB+BgAAJwAAAFBCLVVTQi1TdGFydGVyL0RhdGVuL1BCLVVTQi1TdG"
D "FydGVyLmljb4VUXWgcVRQ++9MdtDGzF3ZcMZiVKFhLSNesD/uUnegsqUQyHciwDysyT9dFCM3aHQMuNCuUpgVtxafmVZoKbSmKu4w4aMO+CDLU"
D "PgVfgttGKUJwZ5NoIwm9ntndmZ1dA96Zez7mu98559575l6AAD7JZBRtGAoRgGcB4AT2JHYNu8O7Tev2aPd7aOgFOHnnInxx4wYcBsOQePcteO"
D "1+FdKpb0C+vQL5M5/D5fdvwZXtX+Gdze+huWtDevZbeK90Dp5LnoSUv02+lBpoE23bCA3yjV3HHt8d5F9OoJnK/ofPXH8TjerwU7afr/3j8rzo"
D "46dmo6lUwOEb2btuziCag/lQ6hjy6VbeTZKs4sBxRU631LkUE6pb7mpGEiHko5WsKidbaswL/qgmbgVqMRAUkRfyodRvUmfd6bxih2vEJqrYUu"
D "cfMkHtOhyrxXiVyISIRDgTFsxz7fCY2VRkgUwTIhGVF8wP2uIKD82nv44RoqgqISSbH+1OZ2ZNxihC3vzulkKU/F13sydba/it3mFszzTVWtCb"
D "Z3p2TTWrElGIdNNc3OrtzqmPzC+nhXlphPy1xvvrF74pkSpQIDGxrwRJnvwQWaB0OCb2lTLZGpEXNjeo9rvU9yfwJIHyzbbDrl8+LdKNX+inVC"
D "MJX6CrpdEIqgvPbGgtyVfeMIlSer+wWlmgHBG9BaQfz/xNKb22ei1CtZjsBUo+iEcoLVwuXLpItQejwy7fJAlKtdVLT61+Rmlr2kuwt/ThggZs"
D "TrY16iRwee58VJvRdSIslWx6lkTdjeYW93SsCCniK54tLW95vBnPxZWiM5ZrNnt8dSmXw4oJpJjDGn/lxrlgCLoezynFolLUhblFryxGTtV1IY"
D "4OOUXIyt5PXi7r5Y6Lri/lvA2dPDBNw8AUSOp6qbfRVwxZKuMAjpjmad9p+fOnV/bKNV03JDbnL/CQZdUfG4Yhjd3+2V/HodMT1vWyWhqvn+rj"
D "P3kRtuuz+bctgD5+os6GrefN8Xv8Th//uvXqWH3m/Pg6257oO9c7lvXH2NgblmUNHPkLV51TvDPeTB3VMsyVM8YeMQbADtmPHVzuYmaljU8SK/"
D "tt5FfsDnLriIcZjvsY8QkfDAUc5CAYcsYDAByHWMHLkUdcR0wAHDQQMwC2c2mibt+5Vx0/xLYf6jnW0fMOoj7h4H4P27zd1TV6+lAXA904Ljp5"
D "GByBy/+Dfn1lIK6bz81v9+Z1JLrzPuyug/GNTBvZ/jLiv1BLAwQUAAIACACidEhCCDvmwagsAAAKLQAAMAAAAFBCLVVTQi1TdGFydGVyL0RhdG"
D "VuL1BCLVVTQi1TdGFydC1Mb2Fkc2NyZWVuLmpwZ5V6ZVQcTdP24u7usou7wwLBZXEJ7izusEgI7s7iDsElwSWB3FhwWZxgIRDcQ9AAIfBxP6+c"
D "8/78euacPtXV1V3TXdVX1cw8rzz/ABCqKUOUAUhISADrlwvw/A2gAEBHRUNHQ0VHR0PHwEDHxCbExsbCwibFJ8AlpCClpKQgJSenpmNhoKYB0p"
D "KTM3IzAlnZODg5qBh4+HnY+VnYOdj/HQQJAwMDGxObBBubhJ2anJr9/7s89wOIMAFjyMYoSMwAZCIkFCKk5yEADQCAjPKvtv9bUFABSMgvmr4w"
D "pQkByMhIyKioKGgYKKjIKIAXDoAIhUkAlVhOl4TZxlswIh2NVK+sRUhYXt8nYw4dFgm0Lf+ydaEArXgRp0IC/N+h/5VHQUV7YTETvbQj/2fm/+"
D "mBhExEzIQioCtHYkPK7P28BsBFeelChEIEkAHcGaMWs0ZKrJodiUTdfqDFOXRs27lAVB/brbP82JWEhp0JPuLWuGn/rfZtWaGhHJDxotSUiX4Q"
D "3gnZFLv0CXPO/uHwZKh9JtRLw6BsnzXd84XwieTowgufOyrY45VeIv937Xl/H3CaLGnQEAwvgIH9GXDwToU4uOFOe15Lf+Uv0+m1kGl6x+BTcG"
D "hO4twZL9zJR7K+0YRikO1wR65iZVylXRzg6XMdd/FOOyH0pT9rrBjzgEiQQqSkwjZC54jzDdtCnppC+jMAJwT0a/OX2LyvluzIqmI182ON1twz"
D "YOZV0708Pbl2/yYEX4ymIgS4NXrBM8Hyllh6+0VNKyICvGcASgjLnYkMSgiwMv3bnmjTCcUvzYEBFHz9j2JPC2xRufeef6v9BNK0OnAJ6Qp6tp"
D "84FpJ+7D2ZPQOcM79MPtY8LUhav0U5ZsmQfEyWSUCYA1OWfW1+sqDCWj/N+3dWorkpLeQcDt7N1HyZ2vUc2IRIiT3iXRfDUjCbF4CUPTIv6xH3"
D "EDYtoUTr0XCdPfEdPu8nuANws0WgFm7P/tDPuhX0KRk9osyyewYI/kCjHzGgnx1Sqw0TXiGD6HSwcZujR1WsqUmXgQCZFESlh7cZcCftQMvZbV"
D "N8VbWuDKYhIVBXqxse0xAGaI5Yl3CbKsPFQMkbO0Mtgwc1dyKIobJjQyjZgvIaB9fDX/kBstX3w7PysJR/vSbXyUniFc0T+kub3b/6+mlDqtWN"
D "nZyH/7PGVjGZ957XQo15o8JuXrtol+f1MLq4d5Y0kpustA1m8yR6TydDYUC+W6oTbxtx78uUFZPcOKwxp0zHQNjoqxq/XQK8Is+4lyePKPjzjm"
D "SC5ud9l9Zo2on051/mZ1VIm+31/UIxBo6HWJ2d6g9mTUS/LYH3VGHNiDuJsJxnwJpj5/iXrvJd8lMw5kctzIYWS13vGXqxa59AAhSxy9Yw58z+"
D "/+yKtLKG9VvMf/D6iTZJ39XwrhP8s/+vnQqGfJO59HkG2BSfxQxwCRCL00zTUsXetRLc5Uvh9k2EnQnNFQUjPFD4cUq79Ec5A8VVyOV6xf57aU"
D "4Sn5j4h+gLlILfGq5HlVWANqzW+m6oWB26GTqMD9FZBqkRfTLzr3yo56s3JGu90ZBFaoPtviN5W0NiRhDCXZUNIFF+8qVjKKuoFc8J3iBxQOFk"
D "8ka0WonWSNGBcp9JehQw9emqtHboGBUGeI18EUWHWJf5zP/dL+rXhGjpjNZRTG22zWWCt7FX0p6MLumlm4RsHWkYWMAtScVzAuztOgs3lsqDbz"
D "3I77XNCXGWmWDmMcYnDiMJo44JfknVFV7JwR0T41ZLzP7QxU4FkK4eEKBG4dEwUCcWTO/MVmlHCV7/RxMXIUqCQiWp/mtsXUl/wbloY1fzlaYY"
D "xhpqisuxfqRk0BDaRYQpCIGMX7qOJTiblDhfnfa7UPjtcFf/en5jEDkl5UczS0OQpxdt5e/knQmMofeDS9o8t0lr/uZQITaqrrnReP4FEwYG3m"
D "1qGliwtEMqJ9E5+m0FRiadB6dmwuorrXlS6Qo0pKWbPPbvU5C5Q+Q20GvpZuq5PFsCOTxCZTs8G/AZG9+bzpiIyYu6PWnF6v4vOGW4UbVH51xp"
D "1xn3/okDs37VC+o13XM6/uCx4xO5L9dJcik/1Xm6V0a0Wrucq5wadOQVi2LpCOmbx+PpkklaS7CYh6IoQg5kd8qqFyDxxKKZ1qssX1qSawgmjW"
D "g0QMScpNa2csjEeFmK6GJwCsHBVAp3/HIafGzWP/JfWi3p6KpjiaEng+trtlcGkLnTEl6SvOkagv4cTkgz6iZO9EfTJvYNhqSpiV56MEq94fdj"
D "slI7N0rfMMni/iPisPaBzRg49S0rAoN0sCgSLy9HUb+BkPmfTzoHDZ+5bpdeexiNwrNuUN6cY91+wsium2U61rgywS4WyYybXrm0YmccTO4h+y"
D "g9LTJ04qTw9px0uwUmjTWwFToXbKLwge6GDrOkIm4SHq/lR/o2UoQ4aODUxf4bPDcSfJl0E+/QL+C+HzamDSlkx54AoB7B0ofZMTT3n6R+Wk6P"
D "cuTm3KeoVk/xRpLNCh3VnWMWCegGYpot4rdptAcr+GMyzzTJagSk83l7BerUrRDoA0HejIMWmhoFv+Mm42/4pZo3tivg725XZWqfWiHvbu//rT"
D "U4muIo8kPDKm1yLWel2M5xbH//BXpgfTZ5MzUYjof/q/Ny+UJW3DWfQjjdvP2Qj3RCuVwInojX25bWWy0UXbti8jubcY/O7+rwn4Gd0YKTrPyp"
D "0bzGReCbu9MsDOmBCbEwghIGoQZTOIy/z9He8xnAKnQlsw3w5tWqJnS0Fo5tpRkv2nR01G/2PEpw2Gpl/2oeXKNyrrmRHJXgP3tCu3lc1QiEer"
D "y/YsMCbrkWL2Nvr/MdkY4dfkZjMNFvO5uk5Xq39ZBPgKu8c0QLReBxY3Ch7wPS18x5DHZ+5CV13PI/A7zpDh/UzOuViPRddoNNR1eyq35cr0+V"
D "YMZ0LM8fm+42xlKJp7oD2PbYAhV2tX/uP5HfD/DhcxmkAmi8+v/INxK71ptP2qlgzPyajZgc6GXSAhRr5HUpxybrg4WcRk9IJ6EehvbSyiVpaK"
D "5QMJWX+HzTGlKnP9uvPwkqHEYssTVO7EtaNJzw2NFKhoi0s5SnDLe7gOYqF5E4Sob36T9ZijTQK46Zv5Lz5xO4xhrpXxhHfZiP/gdgIE8eh6uT"
D "aK1SuTJR7+ZM7ANGZuH6o5714EfqbF3f6Aem7GXut+Jo0nQ4pRsybP1gNyJXXSGwJXI4vzQ19607Bq7Lild3AY5CfA6SFRUBh0MpL1s/JrvQ+t"
D "iTK9FvG1ZJjwqXdtmoXbccA/P5s8Q6s/7xzxz6+HpHf6lUkA04V3Hq4UvAhYJA72mP9GAw00cwedOwqdwpZtfOjhphnob6iDJN/rqvXCmOSoUP"
D "sfQyGTJlEh0ypQLlhxWTILyvRigoOW26wZKadwGEelV1ZbRb4toUmoU19aM48CllGTgNCxkZa4zNwHgGfKhnxwXJdI8CY2JNoDloAOmECL+r5R"
D "INGwWP1RydLVsWJOsD46/dJwAiy4IhPbS8Ankab1boncauuoSZkJ11fUSwR6OLE+L3AZH+QlXZ7oAEe3ULbszm8lE+TgHRIRKiiaqEMnB+Tjiw"
D "fgRDg62QEe9ItE2/cvKfb4neAiCkn9qQGLzgOkX8lieB2OCYbOe3mB9McZCddy5+euQEuhzZISWGr2jVPISljAk1SsWNDXxY8km/jxJCCcJcxl"
D "7OpJ5rdiM7PwFK8CmlNCme7s0wx6A0uNhKtNwn2FJsUCTscKxA9bRNprZ96ALXcQ6ZdkY+pXtmI9VbCfpGzo8//pCyp+bJo+0qZKIopeN1dsit"
D "SMjNOiwtOTChYYJNI/B8E+Iuj5raGW1J3VglBre/EQYQ4sfd2Wj3TFo5Uy75Ox+0Jc6kha2HmbBcWHXvP7U9jLNmdIZ949N8Bqgu5DRxdJbw0C"
D "qY1DXB54bpg5Z296S3JPKQoIE20wsKs+YFjzrxEgECyebgzyfdy+tjN4RZTvwTYtEjE1qxW5kRuCLWTBd/i9B/2rv5ZN4UiXKprtqS6vA/igEq"
D "XTPi2iVD3sX2ubzM0+h1b3tAu1xWrtgyRFTDtkdv1XoX1HqPdc0oT9B6Udwq7S+CU8IyESpBBbMaYN5L8OR/PChnsAdiu4ekyNr/wdJ6/7OPK+"
D "kBeg1L9SDjK3W57vzm5Z+z6EBxOjoEwfM7IkCMdSA0PgQcp77JFDcQ3jBiTm9Jvk/4zLYHU8CC2mA+AxLgzl3yUOooRbEJMh3LmLjOlCbs3cPk"
D "kBSFGgwoIrl3f7tX1azqF4+Th2jnF5QsVxw4QVwp6iKfDO9+RN5eyV+s0PCVtV466fL7Fnp9SFMtPG7ZEKSqJdSTeUWkUW/ERnZxpBlv1G4khn"
D "vyHsb+VHeYyu0WSvGA+IRb6ey3MlmisHvldH9BA3ocOvplEquMwrzTu6vQt/rlRk5H4XSeILv2ltlgkuaBVf9mcaxTmU+U273GeXCHJG5MVcnu"
D "3jjl7/cF5TaON67LYYGU4/DjRn0LCZTTK/MvEVYKQpmnS+CKOum81yd9mB7DcCclHfTKd95cGQ4G+zCvQAG4YIp/rdSbBBfx0xlDXcpgZqxmaN"
D "iPinUVIcN1D1pSah7lLOM7pYf4ze83l++ySMp0FRcNbyNTs9zY+xS4IyeQaN7KC6ZtkmdwVMxbiuo6O4x+10iCt3uldwKmAjHpTbPDBj5Z43oo"
D "j5RuUh1XBtdAApE3ylGAHSWGIsd2P6sm32KYCJyXxYVSfe8uZbjHgkYikhA66Ydy8KzIT8nvtgHxwU5x21aV07h2waqDezqJgwXln9zOROD49P"
D "ISSNL4X1HXuWg+xI2g+MeNFBc4esSu931uBjftifx+u04kyUTpagVplH0GUAoGJpjXvzluh2+N+tnSen3ojKacOGPe44z0JSslA+hbADWSgxJc"
D "kzfm3JASlFy7+XgooakF4bWGSOGzkC5OjIS3A+k8aFh+zBtTZvVm4kTFyZO1QDksX1rEmNkGWyGFd/2p3eghLroWLf/HhZvCnUJJWhUtqOxrcn"
D "N6RhSbJX9Ba7Tg8lJ8HFKxQsRe8mmjar/THNgf7kUrLdgnyz3y69ePPwGCkmiX0G/1SfY9oqM0jeMXVJQ5TFkEIbZaeK5LIu9o6ADh4qvKL85y"
D "D/ZOE9YUKWX0+Tr/pK8Z0JBv6NL+oLQWIYZZ1b7kBm0Jq2dmpCuvep3jCx4oT/MvVEour6Mxj17O2H4GvJ366/4wzpfy93f8C6j1mYAEjbC7Vx"
D "fpPz2oPLLQ5MXhNPo1Wc2Dl++q8yzD3wtsDhD0thQpYSjRDzAi9XgIxaj4F5ihvjsa5jRTwFuY8OAtoT4POLZRaOxXPfhlbiYt4lk5cfXBGHqm"
D "bCXjziK09HlUqLYz37zL2KW65z3uRXB1fCdDt917fXSThCuc39kkFWFBFufHQMo3wyLmbTncxeH3msnBm0OojSnLf6YlF7ld6Q0kQ/Vn3hMGiG"
D "D3st8x7GoUxopdf6optYTu64V0VYHJv4eW+wgUfXtJBhPiNFYXLPVU6pN2lt9LUAWjZk7Q//3h49X1CRUOw+82eRJ+3OHIpzUIcRrfy2ET3v9g"
D "N3qB4p21TZWFDVwZ+VKx+/5M36Vok5ivRwmWuy6tZymwmv1hUZPzylegIom4OGYK9p6AHVlbJm0XyavrqHJl609zJqsBI4wQo5s4G3R5KrbEe9"
D "xDaa4mk3QktlWXGIfbz9GkHnsR6LtwwjqBRrmIhxpHXfwl6VUAxoTwTdxFcHiKppJ9lPMWXz2N1/tvIvKb/MsKG7qlNd0szajipieh+wSiJIs6"
D "17FGkinVI9pFDSu0O8m/KVByyVJiprvMPS/YozzItL9U1u3is3EYzqYf+bTyPMouHtttdVxhsg0qyEHbF0rmd/YHOBcLzsi4zKi+jicjLVL2aq"
D "D1ki13z+OltTaImi/FXcW60dYg8G6JR9mfGGoL5Fc41Y+algjZ+IYG/mC1pLh8DZcuhYnx7qrlVS/5fBSsjuhEG5vw5TcRvP+UE00HIe4srIAn"
D "jpFHUUnpjRoIvC7n3RFP/JoB8opvH2FD/wT/AdR8yiyq/1QZgB4q9xoz3z7BfWFIyZe/6Kjj9UG1pntoppucZHgQVcwXvZLZM972+BTwYAXR4n"
D "jne0pkY1102t/R+j6cFQaMumvGuT7+DSwQvd2IVrs6B90I9vCAKPZP3XNQfrPuOg7+sVI636R3WNyPKlUDDj5uvHNstlgrj9WdX0CG5j/XAB0A"
D "HOTAWkyd0YVdxjamhuR5nhqkZX1iBGCN7BvQqeKQ+Wejdl6oztpWgJ5/JGMUNY6FSHqPYtDrKj/+WgI5kUlHVSU98JCrrIqx4n6XKmUxbrNau4"
D "HIvvjm5hv4b5qbDC2x34hnwE+xE9BUUpgjW8IIVM/l/CWHfmRxm7ouetc6TuvPLLZ8LdRtMR2n+pLA+Zp4o9Hbc4c4ZKUF12JMkH4objpBShP8"
D "jbFh1Lwpadn6qEwdiWr84eMZW/SgQ6cL+9jYsnxlMPy1YfkOjUWkh+v0Kx57CImrJROrc+BMoJostcEULH3Rqv1jcPRrbr+FPcw8bdh11Gj2KP"
D "QyjsqyJ6T81F2KOIBHVNzsCXhFAuSaZfN0CpZI4D8/1AgmwruYvZXZl06KtW4XtOrMG82Va+ydK9Ka6kBcTgKT/26y+XpmcVpLfq5FaZy/tDfH"
D "8djwWCge8Q6kCh/Z+F4+Yp92DC5h5Q5ysYZ5x6Pl3pLAA9XsuDKn8bMITiRWlR196vc/Mu/n3dn3LHQdHTKc4SouS79FhFzQzo67iufdmbu4ry"
D "Y0xtIyvz80x8+Z7ysRmvPpo6O9PxvYGcPP7RgfvKCN11JGvkbukGFPEpXhosboTLEZQ470rhNxPSMb1bnHTy4lFn61lieXJ95m89lc58DSkdtE"
D "uf86woODQglU88Z7Ncg3f4b3IcVueIjQV087NPNdUsK+ntEWmFhjMyUZnpBwM0/7qobnvEbHm6ePw1M9lgrF5VVbKiyiPLDHRjx4eN3g61wdxe"
D "gDq9HN4gGSZhpXfQfMtq7XW2xmYtgY+9hjiz+N/jTiYazTRSTrEMOWUw7aPT7GZcwK6xSSEK1AWjy0c1MbVE2yB51fx34peVgMwJFM3B4lGTBu"
D "FilaHztWrZAG1Fhu8xXGoX5XGxxv/MDdcrdF6yFb6uFJgWm2bVqskGSKolVtVtbAjjTv+jdUaHv7gknAGB2x78AyTtKWG+foAPZcs3k1w2ZEyq"
D "YsscPmXOgVy6w1eoRdJMPfMu9nFYHjkDxgYyC1amLwFr/1GVDZVp1BPjzoEzHtstMlbu4azj9R1Yen6ZyWqgOgz1QiYCpFnd5rbY7fiHntiG1Z"
D "GckazKz0UxrYjU7jKVC2pmWomvBdR+qDtWajkmc8yRn1Tgt0NHbQ58X8YSMWHFqZ3J4cHQ/8xngJyCREbH3znKlD1GB52Ke/i0zWojh4TvA3Gp"
D "4keqPPgE5zh8b9AJK47J9ulOXi57gpMMnEKuq9dbopZJCzmUmWXVcOWAWFVd8AguA1AyhfRpgnqs4OC3Ico7qvmFQgD02xaJdPyMoQzE5J4Iug"
D "O4efMaeB1Q/3CKiRf+AQdfy4iMQSu6olUnmjGRPlbTDs2N8BzQphpmoxmRfJakOpSyT0wEkcjfo8wu9VO6P4eoIY/bIQWNfBKrSKWCfndnYtiw"
D "dfvoMIelNZKQMPkBCeOtW8g5MXfb2O/4WbO2HBM087oa2qUMU/vHF0ibcvzt1L/bHuoJNgY+HgQat//xArVXFBhTXL6QuqEbggz+dMFsrcw4Iq"
D "3REbuxYsG8yqI9KVOzbfDyyN/DguNahQb8U4hh/15lbGBlt+aYC23WeUI9hytmjIgxp8XC9ci/4Fsfk4mX8mZkU1pH7UnMKGr3oXt4RDD/j8lI"
D "7gCgkTN+8FsfxIkKGGFzliYMt9D1UWSNHxa6McCi/GypwuaP610yIkZUQDj0ETWLA7DpILKRtpBLkZm85ciD3VFE8NCbXhu3+S2TakvPyZ/QxA"
D "23lz65aCeHhKMxavIttnRqjwKsEU4fUbrAZcho4q2yD/3luCfhykpQMxAoqp4vfhmy78xndwLD/GcN64wEa6WBUHAz3JdPL2IIHfOa44pg/9+1"
D "N5RuI6fPLgxx2UnMd+AhvASYpZHhpjgIDrkXmkPOJYSl75YTo1FCj4/j0fc5DB44HAFftYoGpvgZzDdiGQeOTbZerJdWXHLNUVmS0CO8rO8hkg"
D "kRyIJbqoUq/UGcMc4VmaObSHM6Et9FOrg0LKFGKBWgXTKv2pNPXR6EgxAIw1/WdMndx0up3zx7t4nqCIc4qbNCsGPr/1rSNVx4lPh27Ky8kjlD"
D "7S6bPYdfsXF1J5/ZgSfWQDXo9y+KYJsBNOk4Kwkj7LTJqrVQyLGYHULe/xHkLhkrDY7XEoIsLJmG7nzZukuXwlN9c39rHb9S0bGiWMN/xZaHO/"
D "izx7k+3fIkuqCFzYPu5/1vBMfeL0vJ5s+vtJsBapBZMS/IG1Yt40kiAfk1h0yU4U37oib9FO6VFuUr1HcyckUOuKhudMNLR9TCzPGj1tQJ9br0"
D "bLinBIGrtwa/1dksIZtZv6lJ3J7xxCFL/65aKl/It/VkPZmzWntLQ03GZ+PZnOyAeqXr2mqd27fLTYGZwcNhSvpQuuZChaaLFA+nBGkEvCUjwz"
D "jxfTcFN4HtL2MfbsGaCtI3Ksgbxn546bj5F3k/8ZrLYAZtWAp6VCfThLXGimGKHNSwKD0Ktvznru8xXGAj5NAjST42l9OeG15o0iOEHDMRaZQs"
D "W3nbzCbL2ZGOz6OlLK0K17XHw27n66PY3Q/EcPbc0DFXKhMbxz8buCvLp58SJnLCOhGZoQTtfrDYUxl592duig1QQx2CsODNVOlMeHQ4dBk/jk"
D "XDw4m7xtZxFZf4TPWycmhoJDnK44NYz88PsB+qip+GSbQRRvNh/8X6vcPB+MrxO7CqB4ZVlTjRZ+hMg91UsVrTi4cfobxotO1q91Y2U5tUvLKx"
D "Gk18mXN+hqSY6tRRk+R7RVDWESsSNxUHyVVioB6s9J4sDKMEGiliTBkua1vUB6vt/1m0ub9Rl3U+L/jfU5wtpteN4r8L5Dx1LUkrbpvyV8ySPS"
D "zwAFSdllY0i7nRDcWFC1QB5/N79i/OQm+SOVD1jjLllrQeO1ez2N4I3NJdEhXnyLNBQoV29EbkBsh8AvGtDM+fplkv3kHvHRgM7W7UtfkhWk3Q"
D "B5/eic15qjXlHkJyqUgmn+GJbQF73cLkqb/PnJwflLjpHWe06O2RDrp/md0PNw6LCCqFZfdEBE/9nEqo/OSF/R1sVqIatCIdPXBBkOKYc/0sdc"
D "iTvYtdh78KYTiQ0mWwgoP1AQeTeNr5JC4vY2Zlr7q+os6glm1qdAzut55N3OmgKFNkez3DTSapT6pKLax2N2GrU2vqGK6o029b0jKZrx4k0f68"
D "mWE36NTNzuf8xHlHLYYKA61uCzW9ccs0mFEyEftYO6WYjP69omuY7LVHcCtQL5oK8ImN5yw1S4MTtq5rf2ZZwPtXis3hMoSaeKsLixZCy0JCS/"
D "eRgFFXoCxZrMoA+0CqrUXirHOF0SoJaB7UM6FixrpHXRSJKAr/ndfwPk9aHRkBvJkMLhOsV6hHB2ceNXrjtPhjQG6vHA+4hz+iYWPEehKOoU5R"
D "42JUhpKV2NWIb/qFN/RO/3amWdLgo1lPpEqnbX+8lfKWMnN5V9mqyy/URL5BxwKt3aRTewQmxZ/cRMQtv2qvXGgyteWZ47WF6P90tPtZal2v7y"
D "AfaBaqMeAhOg6X0GNjTEc2twbNctnOrMOTXavoSr8tGR3kP6nHvFj7JP1hw08bNs3baMcZbAqxgcDmJXRY+jRTnU5gsMN6T73IUAv2J6CsJdlh"
D "pg5GWkqlTpuaSUqNyWALRuTnFyfLlqh2q6RHnvW9ibWFsjqiOweAT3cMcpG1vymHqW2N58WVwPlc9uXSbOZcfGLPkydtTkyZIL3s4UYikgdncf"
D "1DgXzKRk3KkB+vBO5AHSrHRF5iK9JdHRKVQnxvpetIU8myO8H6erW0tuKf6cGBeBnwUUh2d7cFHQCYcRxO27StcAE7fN8koKR3LZBEnxLGok+X"
D "CGPuob54+agjUuRtRXzRzVtq66tonry4QHu8OStrqw9ljjYN3Lq48E0egaSbWi5KcjnTHm+Uj+9gA3ppdoYVkppVGbg44123eJhtnnrDaCYPYJ"
D "pu0uHZ81ZJl2VLpgZQzoZzBWvKKzM86fPR59H/WTyYmomRhaCsgZeGKYcNQQ1eU/xtC0UQqiKsej600TV2D8aY3Zplv/9W1VEGVLk7FpTcrOsP"
D "e67Fn6v3j9DAjdlln3XFLN77gNOM87f8HrJieCvPyRHzEXqgRNR2AP5LP6zuTkN3kDK9QPXz4R4g+qfiBnjUA23bENYJUgYd+LcuPEgntO09AL"
D "opnkbm2awIi7cg96c09ZJTx1p+g1/Do0XzEHwBWKmSYVtmWEGFU8d5BFCS3nfVqkoxu4Cimbk2inR/fozF2uSYkAH8ye0jdwA/OnLks7TezWHM"
D "wbk0IasmwVt2ZndREbVzMHiJka1c01E3wH7oCeEEdxhM+x8DsDUBunjW0GBJThDMogcUAEHYIyIIQvJBIoQxU19yUy6dJTzyem2/LaFf9Syn3D"
D "7zNTuYD1YUwXX5kHEdAZzBIYJZRl/RazNepQekf8K/uqw4kae4ijIV1NTtyX4lQH7OAeACBI6xyXIvepgt5VWJTZR9xvl7T9g+lS5XQs+mgQMd"
D "LGnveRhOMno9jLTbnuI77C2d8kmREjE9VPLadUWNaNGJUHl9CHeufWjlrWv/a44Sh+U0FUOeOmLxSj4C7yJCGBe7UQXXtxIS59x+9CbHai9r1q"
D "B7cIXc5nANl0cYlleES9CbSiTR5PutJmQy/dVJOu2hkze60jaowURyhQ6vPXYYvBTlxVMuERt2uVRLTTpgnWzla8hwctOGFi+VxMSforjQIfYp"
D "XKk4HrUY4+e9P7eOoTHhQ7jwnhlF35KET4xkF3wo+oWuDK5G4Jbrhao3Bz4Z9R7Hf4abpk1FvB+OoglFnNveA3WQbIb7WCu4uPlRDmm1RZs6B0"
D "oumqvPSAed+73BFfHb4PWp5EWTnXhTbPgIFSqLxpn0Sgs9R7t5scq/SEujjrP85c8nICryKddhnXbpI+8dNb7P/a5Md4o1tmxYMXkG8+GiRkrs"
D "J5WUb+Nq+ryqUn2VSCDtcyiIY6J7Vft4fZ+PJTPLVMkuG+e+qlm3mhPrGxCNFGRTAXv7Wb4ZxbKQ7Q2XhjecJFszBy1LGIvbclOF+inqgsfOBs"
D "UvEKK7gqYS9fQ0Tfv2bO77G80owO6EjDfkUJTGN6j+7MN9IZjeFtgN2x4Q4ro67Ns43TYf9NpDeBS5m4RCjEW87ZhNm0phSDwRca62z6ewPjna"
D "b9SgNu1Jqj5TbryRr/vWu9xbqYWuzHoDe9kr9/Av+O/LXLTP3757/eJDHG/EK+a6d/yS5OfJp0YelfqLf1X+LgUrEuIQ3WHQZW04YYs9kQVM7q"
D "Qo0yEvOd7nmBj0tHniYdBtLvMYqV93uqgw0YMFOMB+0iWhg4kqN1OjvHtCuTh+CJEtQaGuX44cFbmdg3talS8IWrlG3Y14R7lYqd67UfymTyRm"
D "vs4lZtU3TmJ2d8SPvuqAQPxRM7GlAv3upATx9OCOuGPlfaSJ8qXUChl9sJDJUICEzMFm2Qi0GxtbUvKIeAMoX+x4UyIIzEEFA4BJSDCqOBAAqQ"
D "q9RRr4vFx7FamoaxqZT78wAiy5exr5cfqRZi1rgFUy16eeUD+i7AtPTMqsh5AZJalqKUT2iLv1Nstn2YyGXpryBHOdpKSZw7OuVdf5koEofhQQ"
D "50SCVhbHSTLbybctRD3dONEGne2zz7aOfY70M7yroQ9RpjqYkoEom5P6lXRdM6MTqq71teUqWfUls6b1alKt2XqgPw3rqnmgrcetgqlKGmd2jB"
D "uWAoCK7GwmlHtHcYqUbEx98dFcX3d1kTvkHgGf4BKxFa0cTSTCgoAMvP6SeY9Xg0XdnR9YOQqW2aqQXIwmSzgMZxUWWEY/fCqK+HGEn2ZxL+bt"
D "mhT/5QgvhX8poMChLBZqg+RKrSjh7gHvI+jb2dSTzrhXh5v854Ua1M1dLuJRsgF1dlt3JpHfLHglCmvG/SJVclxhxVIMRChsfJ7PDjllkI2JIf"
D "6I26ZRIjrMOvuw8e2LYDt1F6zVd2iEfWOp3xR4f9xsq/EAAlSTOSRcnYsCnZNMsuviYSfuyfy/IV8Sn6vvRrkUegEEgjrUGIL8LfLuF0znizqF"
D "SdOdvN3voJLDXxHm0oOxvAbLKNdsxLzmlBkMnU8CP74QTD5dRpLifeeDaz8pvWr9XUikprbyDVP7/jd5h0InkJOIC67YXJFTlliHVtIaVvLMW2"
D "o2yB5jfHTA1vHWH/nMIyTQvMo5UGXY9EMU/IXs84GHHUlWVHGxOyDuZTm1fcpWzojn3ffx3FEeNJnhLKJDlQAeVQvv9neKyhGlJbL5bzv4gDMb"
D "fp5ZN4Bty+RIzRH2KYYHWSrg9a8WNgJP38f//JmcX/RC+SA2vDYAvMzMNv8ZJzd3tQ1s/CT7rM5RRu9HfPoaHe9XxCrfI7Uqajv55//X4ROmAb"
D "PFLWAl32sW+wbKlXww1qEHg/Gi7QOf+D0emz+lC9qFly5ISINXMXn94fx9iBYLl572fAV97Qu0X/+bf0VFHiv0sC/mr+2br8GZCZsmGRA9PX3S"
D "8qBE+0wTwvCvP5q0g1EZOC1RLfi148w+EFbGRfgAbwAjzIEFAals8ehNNOvYt7DHWWxM3BhHjWZEMwOT6U5pyCR0GT1cNTMO+6UDRgCETAbrm2"
D "SFnqfkmQ0+Jdt+YS48rp6Iywk4xtlZGwLRNpWfMVkNzZ6lqsaytdQuxCJxLs6lrZtQocNGJUuRFoeimokhXe0ASECpdObwe1uRt/CmVGAPJYeL"
D "Ofz6gFXHWZIC1G+OF14fy+/A8/RalrynQ1sXm/5gPe0nDfIv99N98sVVEkommSeJx0fUak+H8s26T2t4s12PKO20VEbXJDwH/Z+C9UWJUxpUqd"
D "bSu6SciH+MrqUo1PWtuUBY9SmXIZyXllcm+Vfa5KHcAKo6Iy2K9Mx2XX1ZP9LzhkgUsMia8oW84kaP31ZO3B36m+7wydVj8KGMr2KQBtUE1hDF"
D "kHv7rVuebA9G2V68br2F0NOW/tvUG31bHFW/zNn3OHBcEpwaPG+ZerqItdYAgikfYBk1hLSBmH3lP0SunrRsdtLNzVEHRCtauTqHRFp1H/yKuh"
D "2kXf/UfDwWFUNr19xuza0GpOaX0FpTOh0UIpzxeMDB6MT1OmWTTvoHJPSzpDhvwTRxKrpSBLpVQv9zXCdNy8Y42HPZjngILaVY9SJK9577G6tU"
D "QJ/ZTI27jr0GhS08szS6xdt81kyUg63psX2PY64oe6uhmbqrdjDkrZEpk5ZkP2krFrprdKBRsbBOU2KTaHFkXvDd7h/B4zlQ/6M4CIcEHumCsJ"
D "kj4ArgufTOsX9RhBK06IHq5e9wBtkmQ9AzbCTEDbMp6ZD/AT0F7vfC/N7eRy2LxY3RHxYLVB59wYlzwTd3LbLaPa9w9rJmNJiyTkDi3+GvR/gX"
D "u/NDTpGVGq3hU1de9KOjHqYs1SBhs7HSvOmxnUO7ZRCgksrtI9qPzypi9nz5s9HvrUlWqjiDIhktXt6y2e9C3vSSeK55ofEz/KaQCKUV9S4EH3"
D "I4Gb+/V+WJ0AUtru+qFscSgRMt5Nwt/eiOa6xmgLjYu+P1pGnuRHbn61tOGWmRX5ZG7ZGO2vG64LHEZz6kyzcSesta7esUy2vzgEx/+BjX9RxH"
D "jeUPy0AFlXEKbJnOv1njtT3venq04+oLh6wH+DIXGr9Vd+MPfkxDUeipch+q8dkp56NpjgsJG7vZCVKQlzdJdvyKY77+fZ2OG8Cs9Ky939M64H"
D "iLDw0faOigXeiJcDtnsRu/SfaebMt550W/pAO3zl7xosXVxZJd+rtgcEkdVhHtBS6NiP6FI0i2ll4RFzJ3XPgMpDfAcUauyGcf4Zhpi/NpMS2N"
D "UC9cdeSePJHBvAL7bmb05d/pBs+ArwCxXKpN27afS1Os9AA7w3OO75BUqCZEgyh2aP1mTwydtHLNjWAD6EbSlDiaZkKiZrFwJ7CntXi7vefj82"
D "eQi/SgYHWBhoXxfrtgjf52Gj4363HNDxqnEVqvBqvYsDkrj5xe7X+w+5tmNz2QE1p+QvjKnQGiuuY3do4g4B2V5a38ZgQg4H0LrMMrxuog3NI/"
D "6nUJHL9ywrJHxpu5veJIYVwlj8BdKnftY0B1RfMieb1BPuIvD7Jy5qdU4Y5CndPlY70qwAhgMR3Z7KmupdcQN/6kSeATp0uAbrNOGDeZfNPZj5"
D "fH5C6UF0l4azjgJcinkUIGJWHLU5RLSD5CSBjtS8ZUalEVDuBtWdUsV0OXDGaD55bTf1g9fquMNnRKYO00/loMzKVemUGW6RcwrUd86lqokjJr"
D "Z2dtiM0+pguZ+seBsZqBlUutDK6MR5LOPFonmXLon8Pvf/WHz+v9+5F+2KjFab8WiI7+GBoCTFXv9zNsmADFW05GRRmawS4BMQlP4zJrlR1Elp"
D "R6hp4OaSGIK3QBhSM5zS+gzY7tt2C2ka5V09ecJ5AmXQ0LiHfvsj57/N9UKy2P9xPcOdnMyM32eY7duGMD8D5JS320S+PcnbHYwFeE5AgN95lN"
D "VbToRA6U4sED0InoJaRmUGdQSnWoaqC2odJ4SplriyDhRb+mLC1FiMIqC0YvSkFlHjzBP2DLsM6XlZV2e9/5z/eB1jkx0hqMsbgk/S0tEZKhN/"
D "eZSXU7Yp3N7dxSv90U6yaAvblhnKUMh+EEGz+tg7q6s+pPMU8wwgcb39vab+ieQZcGV1AUpHHX8hTdBkSKB/O16ODoc/KolQR96++RdReTNp+h"
D "MgfFuuJdPqiETzNo54ZUJU1vBnIsGL3OXk4XekNjv3b5dZgp3HryIhwKf8EJoGfCA7c6GnnPCb7v2zZwATKO0gd+7zoMMYgqrQykbQIqHVLoP2"
D "8kGVMrUV9ikQFCfVG73vcdn1sgdx15OH8zD6y5cbgh8YQu06HHr5pmnzMkMV9sKYdpT8tCc0/X33X2mS4n/Gt8X+S0Sb6J/JC4buDIUHx+uF4b"
D "Dhe/WLdxehehCCo9y5juR79Kl7yM7uo1Xav8McscEzL0LltRn4th+jM5Rm+MrCAifvXrTkOqcKo9gFZdC2PghTgTK09iGg+M3n1f8HUEsBAhQA"
D "FAACAAAAEUY+QgAAAAAAAAAAAAAAAA8AAAAAAAAAAAAQAAAAAAAAAFBCLVVTQi1TdGFydGVyL1BLAQIUABQAAgAIACg/SEJUvZ99AQEAAJ8BAA"
D "AhAAAAAAAAAAEAIAAAAC0AAABQQi1VU0ItU3RhcnRlci9QQi1VU0ItU3RhcnQucHJlZnNQSwECFAAUAAIACACJkUhCbcJA8YEMAADxJgAAJAAA"
D "AAAAAAABACAAAABtAQAAUEItVVNCLVN0YXJ0ZXIvUEItVVNCLVN0YXJ0X1BCNDMxLnBiUEsBAhQAFAACAAgAMpJIQiw8gkrzAAAADgIAABoAAA"
D "AAAAAAAQAgAAAAMA4AAFBCLVVTQi1TdGFydGVyL3Byb2plY3QuY2ZnUEsBAhQAFAACAAAAEUY+QgAAAAAAAAAAAAAAABUAAAAAAAAAAAAQAAAA"
D "Ww8AAFBCLVVTQi1TdGFydGVyL0RhdGVuL1BLAQIUABQAAgAIACBNK0Ia8FqhpQMAAH4GAAAnAAAAAAAAAAAAIAAAAI4PAABQQi1VU0ItU3Rhcn"
D "Rlci9EYXRlbi9QQi1VU0ItU3RhcnRlci5pY29QSwECFAAUAAIACACidEhCCDvmwagsAAAKLQAAMAAAAAAAAAAAACAAAAB4EwAAUEItVVNCLVN0"
D "YXJ0ZXIvRGF0ZW4vUEItVVNCLVN0YXJ0LUxvYWRzY3JlZW4uanBnUEsFBgAAAAAHAAcAHAIAAG5AAAAAAA=="
E:
EndDataSection
Zuletzt geändert von Kurzer am 08.02.2013 19:41, insgesamt 8-mal geändert.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: PB USB-Starter (PureBasic vom USB Stick nutzen)

Beitrag von Kurzer »

Habe eine kleine Erweiterung eingebaut:

Es können jetzt mehrere Suchstrings angegeben werden, bei denen der Laufwerksbuchstabe gepatcht wird.
Also können zum Beispiel...

C:\Programme\Purebasic
C:\Dokumente und Einstellungen
C:\Irgendwas anderes mit festem Pfad

...In einem Rutsch auf den aktuelle USB Laufwerksbuchstaben gepatcht werden.

Außerdem ist der Code jetzt ab PB 4.31 kompilierbar, man bekommt also eine kleinere Exe heraus, wenn man mit 4.31 kompiliert.
Zuletzt geändert von Kurzer am 14.01.2013 16:59, insgesamt 1-mal geändert.
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Benutzeravatar
Rings
Beiträge: 971
Registriert: 29.08.2004 08:48

Re: PB USB-Starter (PureBasic vom USB Stick nutzen)

Beitrag von Rings »

Bei den Tools(Im Purebasic Editor) kann man auch mit relativen Pfaden arbeiten

\..\

etc....
Rings hat geschrieben:ziert sich nich beim zitieren
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: PB USB-Starter (PureBasic vom USB Stick nutzen)

Beitrag von Kurzer »

Danke für den Hinweis, Rings.
Es gibt jedoch trotzdem noch Einträge in den Preferences mit festen Pfaden - zumindest bei mir. Zum Beispiel in der Sektion [Explorer].
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: PB USB-Starter (PureBasic vom USB Stick nutzen)

Beitrag von ts-soft »

<offtopic>Zu Button in Deiner Signatur:
Einen AMD 64 X2 mit 5000 MHz gibt es nicht. Der schnellste ist ein X2 6400, sprich also 3200 MHz.
Dein Processor hat also wahrscheinlich 2x2500 MHz, also 2500 MHz (das darf man nicht ausrechnen,
sondern wird immer für einen Core angegeben, mal abgesehen von der Modellbezeichnung. :mrgreen: )
</offtopic>
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: PB USB-Starter (PureBasic vom USB Stick nutzen)

Beitrag von Kurzer »

Oh, da habe ich mir bis dato nie so richtig Gedanken drüber gemacht. Werds gleich mal ändern. :)
Danke. (Heute ist Tag der Hinweise bei mir :D)
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: PB USB-Starter (PureBasic vom USB Stick nutzen)

Beitrag von Kurzer »

Um dieses Tool mal ein wenig publik zu machen und zu zeigen wie es angewendet wird, poste ich meinen PB USB-Starter Projektordner hier mal im Bin2Post Format.

Einfach diesen Code im PB Editor ausführen, Dateinamen festlegen und speichern.
Es fällt dann eine ZIP Datei hinten raus (PB-USB-Starter.zip), die den gesamten Projektordner enthält (inkl. Icon und Konfigdatei).

Gruß Kurzer

Code: Alles auswählen

Edit: Siehe ersten Post
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Benutzeravatar
Kurzer
Beiträge: 1617
Registriert: 25.04.2006 17:29
Wohnort: Nähe Hamburg

Re: PB USB-Starter (PureBasic vom USB Stick nutzen)

Beitrag von Kurzer »

Edit 08.02.2013:
Version 1.10 hochgeladen

Auch wenn ich wohl der einzige bleiben werde, der mit diesem Tool was anfangen kann, habe ich dennoch einige Erweiterungen eingebaut und mich nicht gescheut das Projekt hier zu aktualisieren. ;)

Der erste Post wurde komplett überarbeitet. Alles weitere also oben. :)
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.02 x64, OS: Win 7 Pro x64 & Win 11 x64, Desktopscaling: 125%, CPU: I7 6500, RAM: 16 GB, GPU: Intel Graphics HD 520
Useralter in 2024: 56 Jahre.
Antworten