diff --git a/rev/bloat_py/bloat.flag.py b/rev/bloat_py/bloat.flag.py new file mode 100755 index 0000000..f4c9686 --- /dev/null +++ b/rev/bloat_py/bloat.flag.py @@ -0,0 +1,41 @@ +import sys +a = "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"+ \ + "[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ " +def arg133(arg432): + if arg432 == a[71]+a[64]+a[79]+a[79]+a[88]+a[66]+a[71]+a[64]+a[77]+a[66]+a[68]: + return True + else: + print(a[51]+a[71]+a[64]+a[83]+a[94]+a[79]+a[64]+a[82]+a[82]+a[86]+a[78]+\ +a[81]+a[67]+a[94]+a[72]+a[82]+a[94]+a[72]+a[77]+a[66]+a[78]+a[81]+\ +a[81]+a[68]+a[66]+a[83]) + sys.exit(0) + return False +def arg111(arg444): + return arg122(arg444.decode(), a[81]+a[64]+a[79]+a[82]+a[66]+a[64]+a[75]+\ +a[75]+a[72]+a[78]+a[77]) +def arg232(): + return input(a[47]+a[75]+a[68]+a[64]+a[82]+a[68]+a[94]+a[68]+a[77]+a[83]+\ +a[68]+a[81]+a[94]+a[66]+a[78]+a[81]+a[81]+a[68]+a[66]+a[83]+\ +a[94]+a[79]+a[64]+a[82]+a[82]+a[86]+a[78]+a[81]+a[67]+a[94]+\ +a[69]+a[78]+a[81]+a[94]+a[69]+a[75]+a[64]+a[70]+a[25]+a[94]) +def arg132(): + return open('flag.txt.enc', 'rb').read() +def arg112(): + print(a[54]+a[68]+a[75]+a[66]+a[78]+a[76]+a[68]+a[94]+a[65]+a[64]+a[66]+\ +a[74]+a[13]+a[13]+a[13]+a[94]+a[88]+a[78]+a[84]+a[81]+a[94]+a[69]+\ +a[75]+a[64]+a[70]+a[11]+a[94]+a[84]+a[82]+a[68]+a[81]+a[25]) +def arg122(arg432, arg423): + arg433 = arg423 + i = 0 + while len(arg433) < len(arg432): + arg433 = arg433 + arg423[i] + i = (i + 1) % len(arg423) + return "".join([chr(ord(arg422) ^ ord(arg442)) for (arg422,arg442) in zip(arg432,arg433)]) +arg444 = arg132() +arg432 = arg232() +arg133(arg432) +arg112() +arg423 = arg111(arg444) +print(arg423) +sys.exit(0) + diff --git a/rev/bloat_py/clean-bloat.flag.py b/rev/bloat_py/clean-bloat.flag.py new file mode 100755 index 0000000..072b867 --- /dev/null +++ b/rev/bloat_py/clean-bloat.flag.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 + +import sys + +def arg133(arg432): + if arg432 == "happychance": + return True + else: + print("That password is incorrect") + sys.exit(0) + return False + +def arg111(arg444): + return arg122(arg444.decode(), "rapscallion") + +def arg232(): + return input("Please enter correct password for flag:") + +def arg132(): + return open('flag.txt.enc', 'rb').read() + +def arg112(): + print("Welcome back... your flag, user:") + +def arg122(arg432, arg423): + arg433 = arg423 + i = 0 + while len(arg433) < len(arg432): + arg433 = arg433 + arg423[i] + i = (i + 1) % len(arg423) + return "".join([chr(ord(arg422) ^ ord(arg442)) for (arg422,arg442) in zip(arg432,arg433)]) + +arg444 = arg132() +arg432 = arg232() +arg133(arg432) +arg112() +arg423 = arg111(arg444) +print(arg423) +sys.exit(0) diff --git a/rev/bloat_py/flag.txt.enc b/rev/bloat_py/flag.txt.enc new file mode 100644 index 0000000..d07cbab Binary files /dev/null and b/rev/bloat_py/flag.txt.enc differ diff --git a/rev/bloat_py/output.txt b/rev/bloat_py/output.txt new file mode 100644 index 0000000..ec9de2a --- /dev/null +++ b/rev/bloat_py/output.txt @@ -0,0 +1,4 @@ +$ ./clean-bloat.flag.py +Please enter correct password for flag:happychance +Welcome back... your flag, user: +picoCTF{d30bfu5c4710n_f7w_5e14b257} diff --git a/rev/file_run1/run b/rev/file_run1/run new file mode 100755 index 0000000..6a66b04 Binary files /dev/null and b/rev/file_run1/run differ diff --git a/rev/file_run2/output.txt b/rev/file_run2/output.txt new file mode 100644 index 0000000..9fb572f --- /dev/null +++ b/rev/file_run2/output.txt @@ -0,0 +1,2 @@ +$ ./run 'Hello!' +The flag is: picoCTF{F1r57_4rgum3n7_f65ed63e}% diff --git a/rev/file_run2/run b/rev/file_run2/run new file mode 100755 index 0000000..c3c5a3d Binary files /dev/null and b/rev/file_run2/run differ diff --git a/rev/fresh_java/KeygenMe.class b/rev/fresh_java/KeygenMe.class new file mode 100644 index 0000000..7aca98c Binary files /dev/null and b/rev/fresh_java/KeygenMe.class differ diff --git a/rev/fresh_java/decompiled.java b/rev/fresh_java/decompiled.java new file mode 100644 index 0000000..6ab4c41 --- /dev/null +++ b/rev/fresh_java/decompiled.java @@ -0,0 +1,152 @@ +// NOTE: Decompiled with JD-GUI + +import java.util.Scanner; + +public class KeygenMe { + public static void main(String[] paramArrayOfString) { + Scanner scanner = new Scanner(System.in); + System.out.println("Enter key:"); + String str = scanner.nextLine(); + if (str.length() != 34) { + System.out.println("Invalid key"); + return; + } + if (str.charAt(33) != '}') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(32) != '9') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(31) != '8') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(30) != 'c') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(29) != 'a') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(28) != 'c') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(27) != '8') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(26) != '3') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(25) != '7') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(24) != '_') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(23) != 'd') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(22) != '3') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(21) != 'r') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(20) != '1') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(19) != 'u') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(18) != 'q') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(17) != '3') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(16) != 'r') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(15) != '_') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(14) != 'g') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(13) != 'n') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(12) != '1') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(11) != 'l') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(10) != '0') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(9) != '0') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(8) != '7') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(7) != '{') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(6) != 'F') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(5) != 'T') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(4) != 'C') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(3) != 'o') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(2) != 'c') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(1) != 'i') { + System.out.println("Invalid key"); + return; + } + if (str.charAt(0) != 'p') { + System.out.println("Invalid key"); + return; + } + System.out.println("Valid key"); + } +} \ No newline at end of file diff --git a/rev/fresh_java/flag.txt b/rev/fresh_java/flag.txt new file mode 100644 index 0000000..c789543 --- /dev/null +++ b/rev/fresh_java/flag.txt @@ -0,0 +1 @@ +picoCTF{700l1ng_r3qu1r3d_738cac89} \ No newline at end of file diff --git a/rev/patchme_py/flag.txt.enc b/rev/patchme_py/flag.txt.enc new file mode 100644 index 0000000..92dba38 --- /dev/null +++ b/rev/patchme_py/flag.txt.enc @@ -0,0 +1,3 @@ + +* ' UYX+ CR1@ +6U]WVM \ No newline at end of file diff --git a/rev/patchme_py/output.txt b/rev/patchme_py/output.txt new file mode 100644 index 0000000..e805493 --- /dev/null +++ b/rev/patchme_py/output.txt @@ -0,0 +1,4 @@ +$ python patchme.flag.py +Please enter correct password for flag: ak98-=90adfjhgj321sleuth9000 +Welcome back... your flag, user: +picoCTF{p47ch1ng_l1f3_h4ck_c4a4688b} diff --git a/rev/patchme_py/patchme.flag.py b/rev/patchme_py/patchme.flag.py new file mode 100644 index 0000000..38a930d --- /dev/null +++ b/rev/patchme_py/patchme.flag.py @@ -0,0 +1,31 @@ +### THIS FUNCTION WILL NOT HELP YOU FIND THE FLAG --LT ######################## +def str_xor(secret, key): + #extend key to secret length + new_key = key + i = 0 + while len(new_key) < len(secret): + new_key = new_key + key[i] + i = (i + 1) % len(key) + return "".join([chr(ord(secret_c) ^ ord(new_key_c)) for (secret_c,new_key_c) in zip(secret,new_key)]) +############################################################################### + + +flag_enc = open('flag.txt.enc', 'rb').read() + + + +def level_1_pw_check(): + user_pw = input("Please enter correct password for flag: ") + if( user_pw == "ak98" + \ + "-=90" + \ + "adfjhgj321" + \ + "sleuth9000"): + print("Welcome back... your flag, user:") + decryption = str_xor(flag_enc.decode(), "utilitarian") + print(decryption) + return + print("That password is incorrect") + + + +level_1_pw_check() diff --git a/rev/reverse/ret b/rev/reverse/ret new file mode 100755 index 0000000..f017a50 Binary files /dev/null and b/rev/reverse/ret differ diff --git a/rev/reverse/solve.sh b/rev/reverse/solve.sh new file mode 100755 index 0000000..3b64b6b --- /dev/null +++ b/rev/reverse/solve.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p bash binutils + +strings ./ret | grep -o "picoCTF{.*}" diff --git a/rev/safe_opener/SafeOpener.java b/rev/safe_opener/SafeOpener.java new file mode 100644 index 0000000..fb96d16 --- /dev/null +++ b/rev/safe_opener/SafeOpener.java @@ -0,0 +1,42 @@ +import java.io.*; +import java.util.*; +public class SafeOpener { + public static void main(String args[]) throws IOException { + BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in)); + Base64.Encoder encoder = Base64.getEncoder(); + String encodedkey = ""; + String key = ""; + int i = 0; + boolean isOpen; + + + while (i < 3) { + System.out.print("Enter password for the safe: "); + key = keyboard.readLine(); + + encodedkey = encoder.encodeToString(key.getBytes()); + System.out.println(encodedkey); + + isOpen = openSafe(encodedkey); + if (!isOpen) { + System.out.println("You have " + (2 - i) + " attempt(s) left"); + i++; + continue; + } + break; + } + } + + public static boolean openSafe(String password) { + String encodedkey = "cGwzYXMzX2wzdF9tM18xbnQwX3RoM19zYWYz"; + + if (password.equals(encodedkey)) { + System.out.println("Sesame open"); + return true; + } + else { + System.out.println("Password is incorrect\n"); + return false; + } + } +} \ No newline at end of file diff --git a/rev/safe_opener/a.out b/rev/safe_opener/a.out new file mode 100644 index 0000000..e69de29 diff --git a/rev/safe_opener/flag.txt b/rev/safe_opener/flag.txt new file mode 100644 index 0000000..20c9758 --- /dev/null +++ b/rev/safe_opener/flag.txt @@ -0,0 +1,3 @@ +# NOTE: password in source code is base64 encoded + +picoCTF{pl3as3_l3t_m3_1nt0_th3_saf3} \ No newline at end of file diff --git a/rev/safe_opener_2/SafeOpener.class b/rev/safe_opener_2/SafeOpener.class new file mode 100644 index 0000000..54025cd Binary files /dev/null and b/rev/safe_opener_2/SafeOpener.class differ diff --git a/rev/safe_opener_2/solve.sh b/rev/safe_opener_2/solve.sh new file mode 100755 index 0000000..606cb71 --- /dev/null +++ b/rev/safe_opener_2/solve.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p bash binutils + +strings ./SafeOpener.class | grep -o "picoCTF{.*}" diff --git a/rev/speeds_and_feeds/flag.txt b/rev/speeds_and_feeds/flag.txt new file mode 100644 index 0000000..0bc13d7 --- /dev/null +++ b/rev/speeds_and_feeds/flag.txt @@ -0,0 +1,3 @@ +# NOTE: open the file in FreeCAD + +picoCTF{num3r1cal_c0ntr0l_84d2d117} \ No newline at end of file diff --git a/rev/speeds_and_feeds/output.nc b/rev/speeds_and_feeds/output.nc new file mode 100644 index 0000000..8da5904 --- /dev/null +++ b/rev/speeds_and_feeds/output.nc @@ -0,0 +1,1099 @@ +G17 G21 G40 G90 G64 P0.003 F50 +G0Z0.1 +G0Z0.1 +G0X0.8276Y3.8621 +G1Z0.1 +G1X0.8276Y-1.9310 +G0Z0.1 +G0X1.1034Y3.8621 +G1Z0.1 +G1X1.1034Y-1.9310 +G0Z0.1 +G0X1.1034Y3.0345 +G1Z0.1 +G1X1.6552Y3.5862 +G1X2.2069Y3.8621 +G1X2.7586Y3.8621 +G1X3.5862Y3.5862 +G1X4.1379Y3.0345 +G1X4.4138Y2.2069 +G1X4.4138Y1.6552 +G1X4.1379Y0.8276 +G1X3.5862Y0.2759 +G1X2.7586Y0.0000 +G1X2.2069Y0.0000 +G1X1.6552Y0.2759 +G1X1.1034Y0.8276 +G0Z0.1 +G0X2.7586Y3.8621 +G1Z0.1 +G1X3.3103Y3.5862 +G1X3.8621Y3.0345 +G1X4.1379Y2.2069 +G1X4.1379Y1.6552 +G1X3.8621Y0.8276 +G1X3.3103Y0.2759 +G1X2.7586Y0.0000 +G0Z0.1 +G0X0.0000Y3.8621 +G1Z0.1 +G1X1.1034Y3.8621 +G0Z0.1 +G0X0.0000Y-1.9310 +G1Z0.1 +G1X1.9310Y-1.9310 +G0Z0.1 +G0X7.2414Y5.7931 +G1Z0.1 +G1X6.9655Y5.5172 +G1X7.2414Y5.2414 +G1X7.5172Y5.5172 +G1X7.2414Y5.7931 +G0Z0.1 +G0X7.2414Y3.8621 +G1Z0.1 +G1X7.2414Y0.0000 +G0Z0.1 +G0X7.5172Y3.8621 +G1Z0.1 +G1X7.5172Y0.0000 +G0Z0.1 +G0X6.4138Y3.8621 +G1Z0.1 +G1X7.5172Y3.8621 +G0Z0.1 +G0X6.4138Y0.0000 +G1Z0.1 +G1X8.3448Y0.0000 +G0Z0.1 +G0X13.6552Y3.0345 +G1Z0.1 +G1X13.3793Y2.7586 +G1X13.6552Y2.4828 +G1X13.9310Y2.7586 +G1X13.9310Y3.0345 +G1X13.3793Y3.5862 +G1X12.8276Y3.8621 +G1X12.0000Y3.8621 +G1X11.1724Y3.5862 +G1X10.6207Y3.0345 +G1X10.3448Y2.2069 +G1X10.3448Y1.6552 +G1X10.6207Y0.8276 +G1X11.1724Y0.2759 +G1X12.0000Y0.0000 +G1X12.5517Y0.0000 +G1X13.3793Y0.2759 +G1X13.9310Y0.8276 +G0Z0.1 +G0X12.0000Y3.8621 +G1Z0.1 +G1X11.4483Y3.5862 +G1X10.8966Y3.0345 +G1X10.6207Y2.2069 +G1X10.6207Y1.6552 +G1X10.8966Y0.8276 +G1X11.4483Y0.2759 +G1X12.0000Y0.0000 +G0Z0.1 +G0X17.5862Y3.8621 +G1Z0.1 +G1X16.7586Y3.5862 +G1X16.2069Y3.0345 +G1X15.9310Y2.2069 +G1X15.9310Y1.6552 +G1X16.2069Y0.8276 +G1X16.7586Y0.2759 +G1X17.5862Y0.0000 +G1X18.1379Y0.0000 +G1X18.9655Y0.2759 +G1X19.5172Y0.8276 +G1X19.7931Y1.6552 +G1X19.7931Y2.2069 +G1X19.5172Y3.0345 +G1X18.9655Y3.5862 +G1X18.1379Y3.8621 +G1X17.5862Y3.8621 +G1X17.0345Y3.5862 +G1X16.4828Y3.0345 +G1X16.2069Y2.2069 +G1X16.2069Y1.6552 +G1X16.4828Y0.8276 +G1X17.0345Y0.2759 +G1X17.5862Y0.0000 +G0Z0.1 +G0X18.1379Y0.0000 +G1Z0.1 +G1X18.6897Y0.2759 +G1X19.2414Y0.8276 +G1X19.5172Y1.6552 +G1X19.5172Y2.2069 +G1X19.2414Y3.0345 +G1X18.6897Y3.5862 +G1X18.1379Y3.8621 +G0Z0.1 +G0X25.6552Y4.9655 +G1Z0.1 +G1X25.9310Y4.1379 +G1X25.9310Y5.7931 +G1X25.6552Y4.9655 +G1X25.1034Y5.5172 +G1X24.2759Y5.7931 +G1X23.7241Y5.7931 +G1X22.8966Y5.5172 +G1X22.3448Y4.9655 +G1X22.0690Y4.4138 +G1X21.7931Y3.5862 +G1X21.7931Y2.2069 +G1X22.0690Y1.3793 +G1X22.3448Y0.8276 +G1X22.8966Y0.2759 +G1X23.7241Y0.0000 +G1X24.2759Y0.0000 +G1X25.1034Y0.2759 +G1X25.6552Y0.8276 +G1X25.9310Y1.3793 +G0Z0.1 +G0X23.7241Y5.7931 +G1Z0.1 +G1X23.1724Y5.5172 +G1X22.6207Y4.9655 +G1X22.3448Y4.4138 +G1X22.0690Y3.5862 +G1X22.0690Y2.2069 +G1X22.3448Y1.3793 +G1X22.6207Y0.8276 +G1X23.1724Y0.2759 +G1X23.7241Y0.0000 +G0Z0.1 +G0X29.8621Y5.7931 +G1Z0.1 +G1X29.8621Y0.0000 +G0Z0.1 +G0X30.1379Y5.7931 +G1Z0.1 +G1X30.1379Y0.0000 +G0Z0.1 +G0X28.2069Y5.7931 +G1Z0.1 +G1X27.9310Y4.1379 +G1X27.9310Y5.7931 +G1X32.0690Y5.7931 +G1X32.0690Y4.1379 +G1X31.7931Y5.7931 +G0Z0.1 +G0X29.0345Y0.0000 +G1Z0.1 +G1X30.9655Y0.0000 +G0Z0.1 +G0X34.8966Y5.7931 +G1Z0.1 +G1X34.8966Y0.0000 +G0Z0.1 +G0X35.1724Y5.7931 +G1Z0.1 +G1X35.1724Y0.0000 +G0Z0.1 +G0X36.8276Y4.1379 +G1Z0.1 +G1X36.8276Y1.9310 +G0Z0.1 +G0X34.0690Y5.7931 +G1Z0.1 +G1X38.4828Y5.7931 +G1X38.4828Y4.1379 +G1X38.2069Y5.7931 +G0Z0.1 +G0X35.1724Y3.0345 +G1Z0.1 +G1X36.8276Y3.0345 +G0Z0.1 +G0X34.0690Y0.0000 +G1Z0.1 +G1X36.0000Y0.0000 +G0Z0.1 +G0X41.8621Y6.8966 +G1Z0.1 +G1X41.3103Y6.6207 +G1X41.0345Y6.3448 +G1X40.7586Y5.7931 +G1X40.7586Y5.2414 +G1X41.0345Y4.6897 +G1X41.3103Y4.4138 +G1X41.5862Y3.8621 +G1X41.5862Y3.3103 +G1X41.0345Y2.7586 +G0Z0.1 +G0X41.3103Y6.6207 +G1Z0.1 +G1X41.0345Y6.0690 +G1X41.0345Y5.5172 +G1X41.3103Y4.9655 +G1X41.5862Y4.6897 +G1X41.8621Y4.1379 +G1X41.8621Y3.5862 +G1X41.5862Y3.0345 +G1X40.4828Y2.4828 +G1X41.5862Y1.9310 +G1X41.8621Y1.3793 +G1X41.8621Y0.8276 +G1X41.5862Y0.2759 +G1X41.3103Y0.0000 +G1X41.0345Y-0.5517 +G1X41.0345Y-1.1034 +G1X41.3103Y-1.6552 +G0Z0.1 +G0X41.0345Y2.2069 +G1Z0.1 +G1X41.5862Y1.6552 +G1X41.5862Y1.1034 +G1X41.3103Y0.5517 +G1X41.0345Y0.2759 +G1X40.7586Y-0.2759 +G1X40.7586Y-0.8276 +G1X41.0345Y-1.3793 +G1X41.3103Y-1.6552 +G1X41.8621Y-1.9310 +G0Z0.1 +G0X44.6897Y3.8621 +G1Z0.1 +G1X44.6897Y0.0000 +G0Z0.1 +G0X44.9655Y3.8621 +G1Z0.1 +G1X44.9655Y0.0000 +G0Z0.1 +G0X44.9655Y3.0345 +G1Z0.1 +G1X45.5172Y3.5862 +G1X46.3448Y3.8621 +G1X46.8966Y3.8621 +G1X47.7241Y3.5862 +G1X48.0000Y3.0345 +G1X48.0000Y0.0000 +G0Z0.1 +G0X46.8966Y3.8621 +G1Z0.1 +G1X47.4483Y3.5862 +G1X47.7241Y3.0345 +G1X47.7241Y0.0000 +G0Z0.1 +G0X43.8621Y3.8621 +G1Z0.1 +G1X44.9655Y3.8621 +G0Z0.1 +G0X43.8621Y0.0000 +G1Z0.1 +G1X45.7931Y0.0000 +G0Z0.1 +G0X46.8966Y0.0000 +G1Z0.1 +G1X48.8276Y0.0000 +G0Z0.1 +G0X51.6552Y3.8621 +G1Z0.1 +G1X51.6552Y0.8276 +G1X51.9310Y0.2759 +G1X52.7586Y0.0000 +G1X53.3103Y0.0000 +G1X54.1379Y0.2759 +G1X54.6897Y0.8276 +G0Z0.1 +G0X51.9310Y3.8621 +G1Z0.1 +G1X51.9310Y0.8276 +G1X52.2069Y0.2759 +G1X52.7586Y0.0000 +G0Z0.1 +G0X54.6897Y3.8621 +G1Z0.1 +G1X54.6897Y0.0000 +G0Z0.1 +G0X54.9655Y3.8621 +G1Z0.1 +G1X54.9655Y0.0000 +G0Z0.1 +G0X50.8276Y3.8621 +G1Z0.1 +G1X51.9310Y3.8621 +G0Z0.1 +G0X53.8621Y3.8621 +G1Z0.1 +G1X54.9655Y3.8621 +G0Z0.1 +G0X54.6897Y0.0000 +G1Z0.1 +G1X55.7931Y0.0000 +G0Z0.1 +G0X58.6207Y3.8621 +G1Z0.1 +G1X58.6207Y0.0000 +G0Z0.1 +G0X58.8966Y3.8621 +G1Z0.1 +G1X58.8966Y0.0000 +G0Z0.1 +G0X58.8966Y3.0345 +G1Z0.1 +G1X59.4483Y3.5862 +G1X60.2759Y3.8621 +G1X60.8276Y3.8621 +G1X61.6552Y3.5862 +G1X61.9310Y3.0345 +G1X61.9310Y0.0000 +G0Z0.1 +G0X60.8276Y3.8621 +G1Z0.1 +G1X61.3793Y3.5862 +G1X61.6552Y3.0345 +G1X61.6552Y0.0000 +G0Z0.1 +G0X61.9310Y3.0345 +G1Z0.1 +G1X62.4828Y3.5862 +G1X63.3103Y3.8621 +G1X63.8621Y3.8621 +G1X64.6897Y3.5862 +G1X64.9655Y3.0345 +G1X64.9655Y0.0000 +G0Z0.1 +G0X63.8621Y3.8621 +G1Z0.1 +G1X64.4138Y3.5862 +G1X64.6897Y3.0345 +G1X64.6897Y0.0000 +G0Z0.1 +G0X57.7931Y3.8621 +G1Z0.1 +G1X58.8966Y3.8621 +G0Z0.1 +G0X57.7931Y0.0000 +G1Z0.1 +G1X59.7241Y0.0000 +G0Z0.1 +G0X60.8276Y0.0000 +G1Z0.1 +G1X62.7586Y0.0000 +G0Z0.1 +G0X63.8621Y0.0000 +G1Z0.1 +G1X65.7931Y0.0000 +G0Z0.1 +G0X68.0690Y4.6897 +G1Z0.1 +G1X68.3448Y4.4138 +G1X68.0690Y4.1379 +G1X67.7931Y4.4138 +G1X67.7931Y4.6897 +G1X68.0690Y5.2414 +G1X68.3448Y5.5172 +G1X69.1724Y5.7931 +G1X70.2759Y5.7931 +G1X71.1034Y5.5172 +G1X71.3793Y4.9655 +G1X71.3793Y4.1379 +G1X71.1034Y3.5862 +G1X70.2759Y3.3103 +G1X69.4483Y3.3103 +G0Z0.1 +G0X70.2759Y5.7931 +G1Z0.1 +G1X70.8276Y5.5172 +G1X71.1034Y4.9655 +G1X71.1034Y4.1379 +G1X70.8276Y3.5862 +G1X70.2759Y3.3103 +G1X70.8276Y3.0345 +G1X71.3793Y2.4828 +G1X71.6552Y1.9310 +G1X71.6552Y1.1034 +G1X71.3793Y0.5517 +G1X71.1034Y0.2759 +G1X70.2759Y0.0000 +G1X69.1724Y0.0000 +G1X68.3448Y0.2759 +G1X68.0690Y0.5517 +G1X67.7931Y1.1034 +G1X67.7931Y1.3793 +G1X68.0690Y1.6552 +G1X68.3448Y1.3793 +G1X68.0690Y1.1034 +G0Z0.1 +G0X71.1034Y2.7586 +G1Z0.1 +G1X71.3793Y1.9310 +G1X71.3793Y1.1034 +G1X71.1034Y0.5517 +G1X70.8276Y0.2759 +G1X70.2759Y0.0000 +G0Z0.1 +G0X74.4828Y3.8621 +G1Z0.1 +G1X74.4828Y0.0000 +G0Z0.1 +G0X74.7586Y3.8621 +G1Z0.1 +G1X74.7586Y0.0000 +G0Z0.1 +G0X74.7586Y2.2069 +G1Z0.1 +G1X75.0345Y3.0345 +G1X75.5862Y3.5862 +G1X76.1379Y3.8621 +G1X76.9655Y3.8621 +G1X77.2414Y3.5862 +G1X77.2414Y3.3103 +G1X76.9655Y3.0345 +G1X76.6897Y3.3103 +G1X76.9655Y3.5862 +G0Z0.1 +G0X73.6552Y3.8621 +G1Z0.1 +G1X74.7586Y3.8621 +G0Z0.1 +G0X73.6552Y0.0000 +G1Z0.1 +G1X75.5862Y0.0000 +G0Z0.1 +G0X79.2414Y4.6897 +G1Z0.1 +G1X79.7931Y4.9655 +G1X80.6207Y5.7931 +G1X80.6207Y0.0000 +G0Z0.1 +G0X80.3448Y5.5172 +G1Z0.1 +G1X80.3448Y0.0000 +G0Z0.1 +G0X79.2414Y0.0000 +G1Z0.1 +G1X81.7241Y0.0000 +G0Z0.1 +G0X87.0345Y3.0345 +G1Z0.1 +G1X86.7586Y2.7586 +G1X87.0345Y2.4828 +G1X87.3103Y2.7586 +G1X87.3103Y3.0345 +G1X86.7586Y3.5862 +G1X86.2069Y3.8621 +G1X85.3793Y3.8621 +G1X84.5517Y3.5862 +G1X84.0000Y3.0345 +G1X83.7241Y2.2069 +G1X83.7241Y1.6552 +G1X84.0000Y0.8276 +G1X84.5517Y0.2759 +G1X85.3793Y0.0000 +G1X85.9310Y0.0000 +G1X86.7586Y0.2759 +G1X87.3103Y0.8276 +G0Z0.1 +G0X85.3793Y3.8621 +G1Z0.1 +G1X84.8276Y3.5862 +G1X84.2759Y3.0345 +G1X84.0000Y2.2069 +G1X84.0000Y1.6552 +G1X84.2759Y0.8276 +G1X84.8276Y0.2759 +G1X85.3793Y0.0000 +G0Z0.1 +G0X89.8621Y3.3103 +G1Z0.1 +G1X89.8621Y3.0345 +G1X89.5862Y3.0345 +G1X89.5862Y3.3103 +G1X89.8621Y3.5862 +G1X90.4138Y3.8621 +G1X91.5172Y3.8621 +G1X92.0690Y3.5862 +G1X92.3448Y3.3103 +G1X92.6207Y2.7586 +G1X92.6207Y0.8276 +G1X92.8966Y0.2759 +G1X93.1724Y0.0000 +G0Z0.1 +G0X92.3448Y3.3103 +G1Z0.1 +G1X92.3448Y0.8276 +G1X92.6207Y0.2759 +G1X93.1724Y0.0000 +G1X93.4483Y0.0000 +G0Z0.1 +G0X92.3448Y2.7586 +G1Z0.1 +G1X92.0690Y2.4828 +G1X90.4138Y2.2069 +G1X89.5862Y1.9310 +G1X89.3103Y1.3793 +G1X89.3103Y0.8276 +G1X89.5862Y0.2759 +G1X90.4138Y0.0000 +G1X91.2414Y0.0000 +G1X91.7931Y0.2759 +G1X92.3448Y0.8276 +G0Z0.1 +G0X90.4138Y2.2069 +G1Z0.1 +G1X89.8621Y1.9310 +G1X89.5862Y1.3793 +G1X89.5862Y0.8276 +G1X89.8621Y0.2759 +G1X90.4138Y0.0000 +G0Z0.1 +G0X96.2759Y5.7931 +G1Z0.1 +G1X96.2759Y0.0000 +G0Z0.1 +G0X96.5517Y5.7931 +G1Z0.1 +G1X96.5517Y0.0000 +G0Z0.1 +G0X95.4483Y5.7931 +G1Z0.1 +G1X96.5517Y5.7931 +G0Z0.1 +G0X95.4483Y0.0000 +G1Z0.1 +G1X97.3793Y0.0000 +G0Z0.1 +G0X99.3793Y-0.5517 +G1Z0.1 +G1X103.7931Y-0.5517 +G0Z0.1 +G0X109.1034Y3.0345 +G1Z0.1 +G1X108.8276Y2.7586 +G1X109.1034Y2.4828 +G1X109.3793Y2.7586 +G1X109.3793Y3.0345 +G1X108.8276Y3.5862 +G1X108.2759Y3.8621 +G1X107.4483Y3.8621 +G1X106.6207Y3.5862 +G1X106.0690Y3.0345 +G1X105.7931Y2.2069 +G1X105.7931Y1.6552 +G1X106.0690Y0.8276 +G1X106.6207Y0.2759 +G1X107.4483Y0.0000 +G1X108.0000Y0.0000 +G1X108.8276Y0.2759 +G1X109.3793Y0.8276 +G0Z0.1 +G0X107.4483Y3.8621 +G1Z0.1 +G1X106.8966Y3.5862 +G1X106.3448Y3.0345 +G1X106.0690Y2.2069 +G1X106.0690Y1.6552 +G1X106.3448Y0.8276 +G1X106.8966Y0.2759 +G1X107.4483Y0.0000 +G0Z0.1 +G0X113.0345Y5.7931 +G1Z0.1 +G1X112.2069Y5.5172 +G1X111.6552Y4.6897 +G1X111.3793Y3.3103 +G1X111.3793Y2.4828 +G1X111.6552Y1.1034 +G1X112.2069Y0.2759 +G1X113.0345Y0.0000 +G1X113.5862Y0.0000 +G1X114.4138Y0.2759 +G1X114.9655Y1.1034 +G1X115.2414Y2.4828 +G1X115.2414Y3.3103 +G1X114.9655Y4.6897 +G1X114.4138Y5.5172 +G1X113.5862Y5.7931 +G1X113.0345Y5.7931 +G1X112.4828Y5.5172 +G1X112.2069Y5.2414 +G1X111.9310Y4.6897 +G1X111.6552Y3.3103 +G1X111.6552Y2.4828 +G1X111.9310Y1.1034 +G1X112.2069Y0.5517 +G1X112.4828Y0.2759 +G1X113.0345Y0.0000 +G0Z0.1 +G0X113.5862Y0.0000 +G1Z0.1 +G1X114.1379Y0.2759 +G1X114.4138Y0.5517 +G1X114.6897Y1.1034 +G1X114.9655Y2.4828 +G1X114.9655Y3.3103 +G1X114.6897Y4.6897 +G1X114.4138Y5.2414 +G1X114.1379Y5.5172 +G1X113.5862Y5.7931 +G0Z0.1 +G0X118.0690Y3.8621 +G1Z0.1 +G1X118.0690Y0.0000 +G0Z0.1 +G0X118.3448Y3.8621 +G1Z0.1 +G1X118.3448Y0.0000 +G0Z0.1 +G0X118.3448Y3.0345 +G1Z0.1 +G1X118.8966Y3.5862 +G1X119.7241Y3.8621 +G1X120.2759Y3.8621 +G1X121.1034Y3.5862 +G1X121.3793Y3.0345 +G1X121.3793Y0.0000 +G0Z0.1 +G0X120.2759Y3.8621 +G1Z0.1 +G1X120.8276Y3.5862 +G1X121.1034Y3.0345 +G1X121.1034Y0.0000 +G0Z0.1 +G0X117.2414Y3.8621 +G1Z0.1 +G1X118.3448Y3.8621 +G0Z0.1 +G0X117.2414Y0.0000 +G1Z0.1 +G1X119.1724Y0.0000 +G0Z0.1 +G0X120.2759Y0.0000 +G1Z0.1 +G1X122.2069Y0.0000 +G0Z0.1 +G0X125.0345Y5.7931 +G1Z0.1 +G1X125.0345Y1.1034 +G1X125.3103Y0.2759 +G1X125.8621Y0.0000 +G1X126.4138Y0.0000 +G1X126.9655Y0.2759 +G1X127.2414Y0.8276 +G0Z0.1 +G0X125.3103Y5.7931 +G1Z0.1 +G1X125.3103Y1.1034 +G1X125.5862Y0.2759 +G1X125.8621Y0.0000 +G0Z0.1 +G0X124.2069Y3.8621 +G1Z0.1 +G1X126.4138Y3.8621 +G0Z0.1 +G0X130.0690Y3.8621 +G1Z0.1 +G1X130.0690Y0.0000 +G0Z0.1 +G0X130.3448Y3.8621 +G1Z0.1 +G1X130.3448Y0.0000 +G0Z0.1 +G0X130.3448Y2.2069 +G1Z0.1 +G1X130.6207Y3.0345 +G1X131.1724Y3.5862 +G1X131.7241Y3.8621 +G1X132.5517Y3.8621 +G1X132.8276Y3.5862 +G1X132.8276Y3.3103 +G1X132.5517Y3.0345 +G1X132.2759Y3.3103 +G1X132.5517Y3.5862 +G0Z0.1 +G0X129.2414Y3.8621 +G1Z0.1 +G1X130.3448Y3.8621 +G0Z0.1 +G0X129.2414Y0.0000 +G1Z0.1 +G1X131.1724Y0.0000 +G0Z0.1 +G0X136.4828Y5.7931 +G1Z0.1 +G1X135.6552Y5.5172 +G1X135.1034Y4.6897 +G1X134.8276Y3.3103 +G1X134.8276Y2.4828 +G1X135.1034Y1.1034 +G1X135.6552Y0.2759 +G1X136.4828Y0.0000 +G1X137.0345Y0.0000 +G1X137.8621Y0.2759 +G1X138.4138Y1.1034 +G1X138.6897Y2.4828 +G1X138.6897Y3.3103 +G1X138.4138Y4.6897 +G1X137.8621Y5.5172 +G1X137.0345Y5.7931 +G1X136.4828Y5.7931 +G1X135.9310Y5.5172 +G1X135.6552Y5.2414 +G1X135.3793Y4.6897 +G1X135.1034Y3.3103 +G1X135.1034Y2.4828 +G1X135.3793Y1.1034 +G1X135.6552Y0.5517 +G1X135.9310Y0.2759 +G1X136.4828Y0.0000 +G0Z0.1 +G0X137.0345Y0.0000 +G1Z0.1 +G1X137.5862Y0.2759 +G1X137.8621Y0.5517 +G1X138.1379Y1.1034 +G1X138.4138Y2.4828 +G1X138.4138Y3.3103 +G1X138.1379Y4.6897 +G1X137.8621Y5.2414 +G1X137.5862Y5.5172 +G1X137.0345Y5.7931 +G0Z0.1 +G0X141.5172Y5.7931 +G1Z0.1 +G1X141.5172Y0.0000 +G0Z0.1 +G0X141.7931Y5.7931 +G1Z0.1 +G1X141.7931Y0.0000 +G0Z0.1 +G0X140.6897Y5.7931 +G1Z0.1 +G1X141.7931Y5.7931 +G0Z0.1 +G0X140.6897Y0.0000 +G1Z0.1 +G1X142.6207Y0.0000 +G0Z0.1 +G0X144.6207Y-0.5517 +G1Z0.1 +G1X149.0345Y-0.5517 +G0Z0.1 +G0X152.4138Y5.7931 +G1Z0.1 +G1X151.5862Y5.5172 +G1X151.3103Y4.9655 +G1X151.3103Y4.1379 +G1X151.5862Y3.5862 +G1X152.4138Y3.3103 +G1X153.5172Y3.3103 +G1X154.3448Y3.5862 +G1X154.6207Y4.1379 +G1X154.6207Y4.9655 +G1X154.3448Y5.5172 +G1X153.5172Y5.7931 +G1X152.4138Y5.7931 +G1X151.8621Y5.5172 +G1X151.5862Y4.9655 +G1X151.5862Y4.1379 +G1X151.8621Y3.5862 +G1X152.4138Y3.3103 +G0Z0.1 +G0X153.5172Y3.3103 +G1Z0.1 +G1X154.0690Y3.5862 +G1X154.3448Y4.1379 +G1X154.3448Y4.9655 +G1X154.0690Y5.5172 +G1X153.5172Y5.7931 +G0Z0.1 +G0X152.4138Y3.3103 +G1Z0.1 +G1X151.5862Y3.0345 +G1X151.3103Y2.7586 +G1X151.0345Y2.2069 +G1X151.0345Y1.1034 +G1X151.3103Y0.5517 +G1X151.5862Y0.2759 +G1X152.4138Y0.0000 +G1X153.5172Y0.0000 +G1X154.3448Y0.2759 +G1X154.6207Y0.5517 +G1X154.8966Y1.1034 +G1X154.8966Y2.2069 +G1X154.6207Y2.7586 +G1X154.3448Y3.0345 +G1X153.5172Y3.3103 +G0Z0.1 +G0X152.4138Y3.3103 +G1Z0.1 +G1X151.8621Y3.0345 +G1X151.5862Y2.7586 +G1X151.3103Y2.2069 +G1X151.3103Y1.1034 +G1X151.5862Y0.5517 +G1X151.8621Y0.2759 +G1X152.4138Y0.0000 +G0Z0.1 +G0X153.5172Y0.0000 +G1Z0.1 +G1X154.0690Y0.2759 +G1X154.3448Y0.5517 +G1X154.6207Y1.1034 +G1X154.6207Y2.2069 +G1X154.3448Y2.7586 +G1X154.0690Y3.0345 +G1X153.5172Y3.3103 +G0Z0.1 +G0X159.6552Y5.2414 +G1Z0.1 +G1X159.6552Y0.0000 +G0Z0.1 +G0X159.9310Y5.7931 +G1Z0.1 +G1X159.9310Y0.0000 +G0Z0.1 +G0X159.9310Y5.7931 +G1Z0.1 +G1X156.8966Y1.6552 +G1X161.3103Y1.6552 +G0Z0.1 +G0X158.8276Y0.0000 +G1Z0.1 +G1X160.7586Y0.0000 +G0Z0.1 +G0X166.6207Y5.7931 +G1Z0.1 +G1X166.6207Y0.0000 +G0Z0.1 +G0X166.8966Y5.7931 +G1Z0.1 +G1X166.8966Y0.0000 +G0Z0.1 +G0X166.6207Y3.0345 +G1Z0.1 +G1X166.0690Y3.5862 +G1X165.5172Y3.8621 +G1X164.9655Y3.8621 +G1X164.1379Y3.5862 +G1X163.5862Y3.0345 +G1X163.3103Y2.2069 +G1X163.3103Y1.6552 +G1X163.5862Y0.8276 +G1X164.1379Y0.2759 +G1X164.9655Y0.0000 +G1X165.5172Y0.0000 +G1X166.0690Y0.2759 +G1X166.6207Y0.8276 +G0Z0.1 +G0X164.9655Y3.8621 +G1Z0.1 +G1X164.4138Y3.5862 +G1X163.8621Y3.0345 +G1X163.5862Y2.2069 +G1X163.5862Y1.6552 +G1X163.8621Y0.8276 +G1X164.4138Y0.2759 +G1X164.9655Y0.0000 +G0Z0.1 +G0X165.7931Y5.7931 +G1Z0.1 +G1X166.8966Y5.7931 +G0Z0.1 +G0X166.6207Y0.0000 +G1Z0.1 +G1X167.7241Y0.0000 +G0Z0.1 +G0X170.0000Y4.6897 +G1Z0.1 +G1X170.2759Y4.4138 +G1X170.0000Y4.1379 +G1X169.7241Y4.4138 +G1X169.7241Y4.6897 +G1X170.0000Y5.2414 +G1X170.2759Y5.5172 +G1X171.1034Y5.7931 +G1X172.2069Y5.7931 +G1X173.0345Y5.5172 +G1X173.3103Y5.2414 +G1X173.5862Y4.6897 +G1X173.5862Y4.1379 +G1X173.3103Y3.5862 +G1X172.4828Y3.0345 +G1X171.1034Y2.4828 +G1X170.5517Y2.2069 +G1X170.0000Y1.6552 +G1X169.7241Y0.8276 +G1X169.7241Y0.0000 +G0Z0.1 +G0X172.2069Y5.7931 +G1Z0.1 +G1X172.7586Y5.5172 +G1X173.0345Y5.2414 +G1X173.3103Y4.6897 +G1X173.3103Y4.1379 +G1X173.0345Y3.5862 +G1X172.2069Y3.0345 +G1X171.1034Y2.4828 +G0Z0.1 +G0X169.7241Y0.5517 +G1Z0.1 +G1X170.0000Y0.8276 +G1X170.5517Y0.8276 +G1X171.9310Y0.2759 +G1X172.7586Y0.2759 +G1X173.3103Y0.5517 +G1X173.5862Y0.8276 +G0Z0.1 +G0X170.5517Y0.8276 +G1Z0.1 +G1X171.9310Y0.0000 +G1X173.0345Y0.0000 +G1X173.3103Y0.2759 +G1X173.5862Y0.8276 +G1X173.5862Y1.3793 +G0Z0.1 +G0X178.8966Y5.7931 +G1Z0.1 +G1X178.8966Y0.0000 +G0Z0.1 +G0X179.1724Y5.7931 +G1Z0.1 +G1X179.1724Y0.0000 +G0Z0.1 +G0X178.8966Y3.0345 +G1Z0.1 +G1X178.3448Y3.5862 +G1X177.7931Y3.8621 +G1X177.2414Y3.8621 +G1X176.4138Y3.5862 +G1X175.8621Y3.0345 +G1X175.5862Y2.2069 +G1X175.5862Y1.6552 +G1X175.8621Y0.8276 +G1X176.4138Y0.2759 +G1X177.2414Y0.0000 +G1X177.7931Y0.0000 +G1X178.3448Y0.2759 +G1X178.8966Y0.8276 +G0Z0.1 +G0X177.2414Y3.8621 +G1Z0.1 +G1X176.6897Y3.5862 +G1X176.1379Y3.0345 +G1X175.8621Y2.2069 +G1X175.8621Y1.6552 +G1X176.1379Y0.8276 +G1X176.6897Y0.2759 +G1X177.2414Y0.0000 +G0Z0.1 +G0X178.0690Y5.7931 +G1Z0.1 +G1X179.1724Y5.7931 +G0Z0.1 +G0X178.8966Y0.0000 +G1Z0.1 +G1X180.0000Y0.0000 +G0Z0.1 +G0X182.0000Y4.6897 +G1Z0.1 +G1X182.5517Y4.9655 +G1X183.3793Y5.7931 +G1X183.3793Y0.0000 +G0Z0.1 +G0X183.1034Y5.5172 +G1Z0.1 +G1X183.1034Y0.0000 +G0Z0.1 +G0X182.0000Y0.0000 +G1Z0.1 +G1X184.4828Y0.0000 +G0Z0.1 +G0X186.4828Y4.6897 +G1Z0.1 +G1X187.0345Y4.9655 +G1X187.8621Y5.7931 +G1X187.8621Y0.0000 +G0Z0.1 +G0X187.5862Y5.5172 +G1Z0.1 +G1X187.5862Y0.0000 +G0Z0.1 +G0X186.4828Y0.0000 +G1Z0.1 +G1X188.9655Y0.0000 +G0Z0.1 +G0X190.9655Y5.7931 +G1Z0.1 +G1X190.9655Y4.1379 +G0Z0.1 +G0X190.9655Y4.6897 +G1Z0.1 +G1X191.2414Y5.2414 +G1X191.7931Y5.7931 +G1X192.3448Y5.7931 +G1X193.7241Y4.9655 +G1X194.2759Y4.9655 +G1X194.5517Y5.2414 +G1X194.8276Y5.7931 +G0Z0.1 +G0X191.2414Y5.2414 +G1Z0.1 +G1X191.7931Y5.5172 +G1X192.3448Y5.5172 +G1X193.7241Y4.9655 +G0Z0.1 +G0X194.8276Y5.7931 +G1Z0.1 +G1X194.8276Y4.9655 +G1X194.5517Y4.1379 +G1X193.4483Y2.7586 +G1X193.1724Y2.2069 +G1X192.8965Y1.3793 +G1X192.8965Y0.0000 +G0Z0.1 +G0X194.5517Y4.1379 +G1Z0.1 +G1X193.1724Y2.7586 +G1X192.8965Y2.2069 +G1X192.6207Y1.3793 +G1X192.6207Y0.0000 +G0Z0.1 +G0X196.8276Y6.8966 +G1Z0.1 +G1X197.3793Y6.6207 +G1X197.6552Y6.3448 +G1X197.9310Y5.7931 +G1X197.9310Y5.2414 +G1X197.6552Y4.6897 +G1X197.3793Y4.4138 +G1X197.1034Y3.8621 +G1X197.1034Y3.3103 +G1X197.6552Y2.7586 +G0Z0.1 +G0X197.3793Y6.6207 +G1Z0.1 +G1X197.6552Y6.0690 +G1X197.6552Y5.5172 +G1X197.3793Y4.9655 +G1X197.1034Y4.6897 +G1X196.8276Y4.1379 +G1X196.8276Y3.5862 +G1X197.1034Y3.0345 +G1X198.2069Y2.4828 +G1X197.1034Y1.9310 +G1X196.8276Y1.3793 +G1X196.8276Y0.8276 +G1X197.1034Y0.2759 +G1X197.3793Y0.0000 +G1X197.6552Y-0.5517 +G1X197.6552Y-1.1034 +G1X197.3793Y-1.6552 +G0Z0.1 +G0X197.6552Y2.2069 +G1Z0.1 +G1X197.1034Y1.6552 +G1X197.1034Y1.1034 +G1X197.3793Y0.5517 +G1X197.6552Y0.2759 +G1X197.9310Y-0.2759 +G1X197.9310Y-0.8276 +G1X197.6552Y-1.3793 +G1X197.3793Y-1.6552 +G1X196.8276Y-1.9310 +G0Z0.1 diff --git a/rev/unpackme_py/unpackme.flag.py b/rev/unpackme_py/unpackme.flag.py new file mode 100755 index 0000000..0e9f99b --- /dev/null +++ b/rev/unpackme_py/unpackme.flag.py @@ -0,0 +1,15 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i python3 -p python3 python3Packages.cryptography + +import base64 +from cryptography.fernet import Fernet + +payload = b'gAAAAABkzWGWvEp8gLI9AcIn5o-ahDUwkTvM6EwF7YYMZlE-_Gf9rcNYjxIgX4b0ltY6bcxKarib2ds6POclRwCwhsRb1LOXVt4Q3ePtMY4BmHFFZlIHLk05CjwigT7hiI9p3sH9e7Cpk1uO90xbHbuy-mfi3nkmn411aBgwxyWpJvykpkuBIG_nty6zbox3UhbB85TOis0TgM0zG4ht0-GUW4wTq2_5-wkw3kV1ZAisLJHzF-Z9oLMmwFZU0UCAcHaBTGDF5BnVLmUeCGTgzVLSNn6BmB61Yg==' + +key_str = 'correctstaplecorrectstaplecorrec' +key_base64 = base64.b64encode(key_str.encode()) +f = Fernet(key_base64) +plain = f.decrypt(payload) + +print(plain.decode()) +# exec(plain.decode()) diff --git a/rev/vault_door_training/VaultDoorTraining.java b/rev/vault_door_training/VaultDoorTraining.java new file mode 100644 index 0000000..98027a4 --- /dev/null +++ b/rev/vault_door_training/VaultDoorTraining.java @@ -0,0 +1,26 @@ +import java.util.*; + +class VaultDoorTraining { + public static void main(String args[]) { + VaultDoorTraining vaultDoor = new VaultDoorTraining(); + Scanner scanner = new Scanner(System.in); + System.out.print("Enter vault password: "); + String userInput = scanner.next(); + String input = userInput.substring("picoCTF{".length(),userInput.length()-1); + if (vaultDoor.checkPassword(input)) { + System.out.println("Access granted."); + } else { + System.out.println("Access denied!"); + } + } + + // The password is below. Is it safe to put the password in the source code? + // What if somebody stole our source code? Then they would know what our + // password is. Hmm... I will think of some ways to improve the security + // on the other doors. + // + // -Minion #9567 + public boolean checkPassword(String password) { + return password.equals("w4rm1ng_Up_w1tH_jAv4_eec0716b713"); + } +} diff --git a/rev/vault_door_training/flag.txt b/rev/vault_door_training/flag.txt new file mode 100644 index 0000000..08434a7 --- /dev/null +++ b/rev/vault_door_training/flag.txt @@ -0,0 +1 @@ +picoCTF{w4rm1ng_Up_w1tH_jAv4_eec0716b713}