Skip to content

Commit

Permalink
add new mappings for the sum(range()) combos of unicode, add pyc to g…
Browse files Browse the repository at this point in the history
…itignore and rename find-num.py to findnum.py
  • Loading branch information
sealldeveloper committed Oct 18, 2024
1 parent 4268e2e commit 66d0911
Show file tree
Hide file tree
Showing 4 changed files with 141 additions and 16 deletions.
12 changes: 6 additions & 6 deletions .github/workflows/autocheckcombos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ jobs:

steps:
- name: Checkout code
uses: actions/checkout@v3
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.9'

Expand All @@ -35,10 +35,10 @@ jobs:
run: |
sudo apt-get install -y expect
- name: Run find-num.py
- name: Run findnum.py
id: find_num
run: |
unbuffer python find-num.py --range 255 | tee result.txt
unbuffer python findnum.py --range 255 | tee result.txt
- name: Update originalMappings.csv
id: update_mappings
Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:
body: |
## 🚀 Automatic Shorter Candidates
This PR updates `data/originalMappings.csv` with new shorter candidates discovered by `find-num.py`.
This PR updates `data/originalMappings.csv` with new shorter candidates discovered by `findnum.py`.
Enjoy 🎉
base: main
Expand All @@ -95,7 +95,7 @@ jobs:

- name: Upload Existing Combinations Log
if: steps.update_mappings.outputs.new_candidates == 'false'
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: results-log
path: result.txt
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.pyc
120 changes: 119 additions & 1 deletion data/originalMappings.csv
Original file line number Diff line number Diff line change
Expand Up @@ -253,4 +253,122 @@
252,chr(len(vars(set))+len(vars(set))+len(str(credits)))
253,chr(sum(range(len(str(bin)))))
254,chr((not())+sum(range(len(str(bin)))))
255,chr((not())+(not())+sum(range(len(str(bin)))))
255,chr((not())+(not())+sum(range(len(str(bin)))))
276,chr(sum(range(len(str(hash)))))
300,chr(sum(range(len(str(ascii)))))
325,chr(sum(range(len(ascii(str(hash))))))
351,chr(sum(range(len(ascii(str(ascii))))))
378,chr(sum(range(len(str(set()))+len(str(bin)))))
406,chr(sum(range(len(str(set()))+len(str(hash)))))
435,chr(sum(range(len(str(set()))+len(str(ascii)))))
465,chr(sum(range(len(str(set))+len(str(reversed)))))
496,chr(sum(range(ord(min(str(bin))))))
528,chr(sum(range((not())+ord(min(str(bin))))))
561,chr(sum(range(ord(min(repr(repr(str())))))))
595,chr(sum(range(len(vars(dict)))))
630,chr(sum(range(len(ascii(type(bin))))))
666,chr(sum(range(len(vars(list)))))
703,chr(sum(range((not())+len(vars(list)))))
741,chr(sum(range(ord(max(repr(str()))))))
780,chr(sum(range(ord(min(str(set()))))))
820,chr(sum(range(ord(max(str(()))))))
861,chr(sum(range(ord(max(str(())))+(not()))))
903,chr(sum(range(ord(max(str(())))+(not())+(not()))))
946,chr(sum(range(ord(max(str(tuple(repr(str()))))))))
990,chr(sum(range(len(vars(tuple))+len(str(bin)))))
1035,chr(sum(range(ord(min(str(float()))))))
1081,chr(sum(range(len(vars(set)))))
1128,chr(sum(range(ord(str(int())))))
1176,chr(sum(range(ord(str(+(not()))))))
1225,chr(sum(range(ord(str((not())+(not()))))))
1275,chr(sum(range(ord(str(len(hex(int())))))))
1326,chr(sum(range(ord(str(len(str(not())))))))
1378,chr(sum(range(ord(str(len(str(set())))))))
1431,chr(sum(range(ord(str(len(str(complex(not()))))))))
1485,chr(sum(range(ord(max(str(ord(max(str(not())))))))))
1540,chr(sum(range(ord(max(str(ord(str(int()))))))))
1596,chr(sum(range(ord(max(str(ord(str(+(not())))))))))
1653,chr(sum(range(len(str(bin))+len(vars(dict)))))
1711,chr(sum(range(len(str(hash))+len(vars(dict)))))
1770,chr(sum(range(ord(next(iter(str(bin)))))))
1830,chr(sum(range(len(str(set))+ord(str(int())))))
1891,chr(sum(range(ord(next(reversed(str(object())))))))
1953,chr(sum(range(len(str(bytes))+ord(str(int())))))
2016,chr(sum(range(len(str(bin))+ord(max(str(()))))))
2080,chr(sum(range(len(str(hash))+ord(max(str(()))))))
2145,chr(sum(range(len(str(ascii))+ord(max(str(()))))))
2211,chr(sum(range(ord(next(iter(str(copyright)))))))
2278,chr(sum(range(len(str(frozenset))+ord(str(+(not()))))))
2346,chr(sum(range(len(vars(tuple))+len(vars(set)))))
2415,chr(sum(range(ord(min(str(()in()))))))
2485,chr(sum(range((not())+ord(min(str(()in()))))))
2556,chr(sum(range(len(str(hash))+ord(str(int())))))
2628,chr(sum(range(len(str(ascii))+ord(str(int())))))
2701,chr(sum(range(len(str(ascii))+ord(str(+(not()))))))
2775,chr(sum(range(len(vars(dict))+ord(min(str(set()))))))
2850,chr(sum(range(len(vars(dict))+ord(max(str(()))))))
2926,chr(sum(range(len(vars(list))+ord(min(str(set()))))))
3003,chr(sum(range(sum(range(len(str(set)))))))
3081,chr(sum(range(sum(range(len(str(set))))+(not()))))
3160,chr(sum(range(ord(min(str(bin)))+ord(str(int())))))
3240,chr(sum(range(ord(min(str(bin)))+ord(str(+(not()))))))
3321,chr(sum(range(len(vars(dict))+len(vars(set)))))
3403,chr(sum(range(len(vars(dict))+ord(str(int())))))
3486,chr(sum(range(ord(min(str(not()))))))
3570,chr(sum(range(ord(min(str(not())))+(not()))))
3655,chr(sum(range(len(vars(list))+ord(str(+(not()))))))
3741,chr(sum(range(ord(min(str(set())))+len(vars(set)))))
3828,chr(sum(range(ord(max(str(())))+len(vars(set)))))
3916,chr(sum(range(ord(max(str(())))+ord(str(int())))))
4005,chr(sum(range(ord(max(str(())))+ord(str(+(not()))))))
4095,chr(sum(range(sum(range(len(str(dict)))))))
4186,chr(sum(range(ord(max(repr(repr(repr(str()))))))))
4278,chr(sum(range(len(str(bin))+ord(min(str(()in()))))))
4371,chr(sum(range(len(str(hash))+ord(min(str(()in()))))))
4465,chr(sum(range(len(vars(set))+ord(str(int())))))
4560,chr(sum(range(ord(min(min(vars())))+(not()))))
4656,chr(sum(range(max(range(ord(max(bin(int()))))))))
4753,chr(sum(range(ord(max(bin(int()))))))
4851,chr(sum(range(ord(max(bin(int())))+(not()))))
4950,chr(sum(range((not())+ord(max(bin(int())))+(not()))))
5050,chr(sum(range(ord(next(reversed(str(not())))))))
5151,chr(sum(range(ord(next(iter(str(frozenset())))))))
5253,chr(sum(range(len(str(set()))+ord(max(bin(int()))))))
5356,chr(sum(range(len(str(set))+sum(range(len(str(dict)))))))
5460,chr(sum(range(sum(range(len(repr(str(set))))))))
5565,chr(sum(range(ord(max(str(complex()))))))
5671,chr(sum(range(ord(max(str(complex())))+(not()))))
5778,chr(sum(range(len(str(hash))+ord(min(str(not()))))))
5886,chr(sum(range(len(str(ascii))+ord(min(str(not()))))))
5995,chr(sum(range(max(range(ord(max(oct(int()))))))))
6105,chr(sum(range(ord(max(oct(int()))))))
6216,chr(sum(range(ord(max(oct(int())))+(not()))))
6328,chr(sum(range(ord(max(oct(int())))+(not())+(not()))))
6441,chr(sum(range(ord(max(str(range(int())))))))
6555,chr(sum(range(ord(max(str(range))))))
6670,chr(sum(range(ord(max(str(set))))))
6786,chr(sum(range(ord(max(str(bin))))))
6903,chr(sum(range(ord(max(str(vars))))))
7021,chr(sum(range(ord(max(str(pow))))))
7140,chr(sum(range(ord(max(str(hex))))))
7260,chr(sum(range(ord(max(str(type))))))
7381,chr(sum(range(ord(max(str(zip))))))
7503,chr(sum(range(ord(min(str(dict()))))))
7626,chr(sum(range(ord(min(str(dict())))+(not()))))
7750,chr(sum(range(ord(max(str(dict()))))))
7875,chr(sum(range(ord(max(str(dict())))+(not()))))
8001,chr(sum(range(len(str(set()))+ord(max(str(zip))))))
8128,chr(sum(range(len(str(set))+ord(max(str(range))))))
8256,chr(sum(range(len(str(set))+ord(max(str(set))))))
8385,chr(sum(range(len(str(set))+ord(max(str(bin))))))
8515,chr(sum(range(len(str(set))+ord(max(str(vars))))))
8646,chr(sum(range(len(str(set))+ord(max(str(pow))))))
8778,chr(sum(range(len(str(set))+ord(max(str(hex))))))
8911,chr(sum(range(len(str(set))+ord(max(str(type))))))
9045,chr(sum(range(len(str(set))+ord(max(str(zip))))))
9180,chr(sum(range(len(str(dict))+ord(max(str(zip))))))
9316,chr(sum(range(len(str(bytes))+ord(max(str(zip))))))
9453,chr(sum(range(len(str(bin))+ord(max(str(range))))))
9591,chr(sum(range(len(str(bin))+ord(max(str(set))))))
9730,chr(sum(range(len(str(bin))+ord(max(str(bin))))))
9870,chr(sum(range(len(str(bin))+ord(max(str(vars))))))
24 changes: 15 additions & 9 deletions find-num.py → findnum.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ def find_shortest_combination(target, codes, max_length=4):
# Extract ASCII values from codes
for code in codes:
try:
code = process_code(code)
ascii_value = eval(code)
processed_code = process_code(code)
ascii_value = eval(processed_code)
ascii_values[code] = ascii_value
except Exception:
continue
Expand All @@ -33,25 +33,31 @@ def find_shortest_combination(target, codes, max_length=4):
shortest_length = float('inf')

# Helper function to update shortest result
def update_shortest(expression):
def update_shortest(expression, original_code):
nonlocal shortest_result, shortest_length
current_length = len(f"chr({expression})")
current_length = len(original_code)
if current_length < shortest_length:
shortest_result = f"chr({expression})"
shortest_result = original_code
shortest_length = current_length

# Check individual codes first
for code, value in ascii_values.items():
if value == target:
update_shortest(code, code)
return shortest_result, shortest_length

# Check combinations of codes
for length in range(1, max_length + 1):
for length in range(2, max_length + 1):
for combo in combinations(ascii_values.items(), length):
if sum(val for _, val in combo) == target:
expression = "+".join(code for code, _ in combo)
update_shortest(expression)
if length == 1: # If we found a single code match, we can stop
return shortest_result, shortest_length
combined_code = f"chr({expression})"
update_shortest(expression, combined_code)

return shortest_result, shortest_length



def process_file(filename):
"""Process the CSV file and return a list of codes."""
codes = []
Expand Down

0 comments on commit 66d0911

Please sign in to comment.