<commit_before><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
	<dict>
		<key>title</key>
		<string>Not a Problem</string>
		<key>goal-short</key>
		<string>X = ¬A (X is not A)</string>
		<key>goal-long</key>
		<string>After the train has stopped, output X should show the opposite value as input A.</string>
		<key>goal-values</key>
		<array>
			<integer>1</integer>
			<integer>0</integer>
		</array>
		<key>victory-user-unlocks</key>
		<array>
			<string>FLUserUnlockLevel1</string>
			<string>FLUserUnlockGateNot</string>
		</array>
		<key>record-defaults</key>
		<dict>
			<key>FLUserRecordSegmentsFewest</key>
			<integer>6</integer>
			<key>FLUserRecordJoinsFewest</key>
			<integer>2</integer>
			<key>FLUserRecordSolutionFastest</key>
			<integer>30</integer>
		</dict>
	</dict>
	<dict>
		<key>title</key>
		<string>This And That</string>
		<key>goal-short</key>
		<string>X = A ∧ B (X is A and B)</string>
		<key>goal-long</key>
		<string>After the train has stopped, output X should be 1 if (and only if) A and B are 1.</string>
		<key>goal-values</key>
		<array>
			<integer>0</integer>
			<integer>0</integer>
			<integer>0</integer>
			<integer>1</integer>
		</array>
		<key>victory-user-unlocks</key>
		<array>
			<string>FLUserUnlockLevel2</string>
			<string>FLUserUnlockGateAnd</string>
		</array>
		<key>record-defaults</key>
		<dict>
			<key>FLUserRecordSegmentsFewest</key>
			<integer>8</integer>
			<key>FLUserRecordJoinsFewest</key>
			<integer>4</integer>
			<key>FLUserRecordSolutionFastest</key>
			<integer>60</integer>
		</dict>
	</dict>
	<dict>
		<key>title</key>
		<string>Or Or Or</string>
		<key>goal-short</key>
		<string>X = A ∨ B (X is A or B)</string>
		<key>goal-long</key>
		<string>After the train has stopped, output X should be 1 if (and only if) one or both of A and B are 1.</string>
		<key>goal-values</key>
		<array>
			<integer>0</integer>
			<integer>1</integer>
			<integer>1</integer>
			<integer>1</integer>
		</array>
		<key>victory-user-unlocks</key>
		<array>
			<string>FLUserUnlockLevel3</string>
			<string>FLUserUnlockGateOr</string>
		</array>
		<key>record-defaults</key>
		<dict>
			<key>FLUserRecordSegmentsFewest</key>
			<integer>99</integer>
			<key>FLUserRecordJoinsFewest</key>
			<integer>99</integer>
			<key>FLUserRecordSolutionFastest</key>
			<integer>86400</integer>
		</dict>
	</dict>
	<dict>
		<key>title</key>
		<string>Yeah: XOR</string>
		<key>goal-short</key>
		<string>X = A ⊻ B (X is A xor B)</string>
		<key>goal-long</key>
		<string>After the train has stopped, output X should be 1 if (and only if) A and B are different.</string>
		<key>goal-values</key>
		<array>
			<integer>0</integer>
			<integer>1</integer>
			<integer>1</integer>
			<integer>0</integer>
		</array>
		<key>victory-user-unlocks</key>
		<array>
			<string>FLUserUnlockLevel4</string>
			<string>FLUserUnlockGateXor</string>
			<string>FLUserUnlockCircuitXor</string>
		</array>
		<key>record-defaults</key>
		<dict>
			<key>FLUserRecordSegmentsFewest</key>
			<integer>99</integer>
			<key>FLUserRecordJoinsFewest</key>
			<integer>99</integer>
			<key>FLUserRecordSolutionFastest</key>
			<integer>604800</integer>
		</dict>
	</dict>
	<dict>
		<key>title</key>
		<string>Half Adder</string>
		<key>goal-short</key>
		<string>A + B = 2C + S</string>
		<key>goal-long</key>
		<string>Find the sum of two bits A and B. Output S should contain the sum, and output C should contain the carry bit.</string>
		<key>goal-values</key>
		<array>
			<integer>0</integer>
			<integer>0</integer>
			<integer>1</integer>
			<integer>0</integer>
			<integer>1</integer>
			<integer>0</integer>
			<integer>0</integer>
			<integer>1</integer>
		</array>
		<key>victory-user-unlocks</key>
		<array>
			<string>FLUserUnlockLevel5</string>
			<string>FLUserUnlockCircuitHalfAdder</string>
			<string>FLUserUnlockCircuitFullAdder</string>
		</array>
		<key>record-defaults</key>
		<dict>
			<key>FLUserRecordSegmentsFewest</key>
			<integer>99</integer>
			<key>FLUserRecordJoinsFewest</key>
			<integer>99</integer>
			<key>FLUserRecordSolutionFastest</key>
			<integer>2592000</integer>
		</dict>
	</dict>
</array>
</plist><commit_msg>Establish default records for later challenge levels. Fix incorrect expected results for half-adder level.<commit_after><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
	<dict>
		<key>title</key>
		<string>Not a Problem</string>
		<key>goal-short</key>
		<string>X = ¬A (X is not A)</string>
		<key>goal-long</key>
		<string>After the train has stopped, output X should show the opposite value as input A.</string>
		<key>goal-values</key>
		<array>
			<integer>1</integer>
			<integer>0</integer>
		</array>
		<key>victory-user-unlocks</key>
		<array>
			<string>FLUserUnlockLevel1</string>
			<string>FLUserUnlockGateNot</string>
		</array>
		<key>record-defaults</key>
		<dict>
			<key>FLUserRecordSegmentsFewest</key>
			<integer>6</integer>
			<key>FLUserRecordJoinsFewest</key>
			<integer>2</integer>
			<key>FLUserRecordSolutionFastest</key>
			<integer>30</integer>
		</dict>
	</dict>
	<dict>
		<key>title</key>
		<string>This And That</string>
		<key>goal-short</key>
		<string>X = A ∧ B (X is A and B)</string>
		<key>goal-long</key>
		<string>After the train has stopped, output X should be 1 if (and only if) A and B are 1.</string>
		<key>goal-values</key>
		<array>
			<integer>0</integer>
			<integer>0</integer>
			<integer>0</integer>
			<integer>1</integer>
		</array>
		<key>victory-user-unlocks</key>
		<array>
			<string>FLUserUnlockLevel2</string>
			<string>FLUserUnlockGateAnd</string>
		</array>
		<key>record-defaults</key>
		<dict>
			<key>FLUserRecordSegmentsFewest</key>
			<integer>8</integer>
			<key>FLUserRecordJoinsFewest</key>
			<integer>4</integer>
			<key>FLUserRecordSolutionFastest</key>
			<integer>60</integer>
		</dict>
	</dict>
	<dict>
		<key>title</key>
		<string>Or Or Or</string>
		<key>goal-short</key>
		<string>X = A ∨ B (X is A or B)</string>
		<key>goal-long</key>
		<string>After the train has stopped, output X should be 1 if (and only if) one or both of A and B are 1.</string>
		<key>goal-values</key>
		<array>
			<integer>0</integer>
			<integer>1</integer>
			<integer>1</integer>
			<integer>1</integer>
		</array>
		<key>victory-user-unlocks</key>
		<array>
			<string>FLUserUnlockLevel3</string>
			<string>FLUserUnlockGateOr</string>
		</array>
		<key>record-defaults</key>
		<dict>
			<key>FLUserRecordSegmentsFewest</key>
			<integer>10</integer>
			<key>FLUserRecordJoinsFewest</key>
			<integer>4</integer>
			<key>FLUserRecordSolutionFastest</key>
			<integer>3600</integer>
		</dict>
	</dict>
	<dict>
		<key>title</key>
		<string>Yeah: XOR</string>
		<key>goal-short</key>
		<string>X = A ⊻ B (X is A xor B)</string>
		<key>goal-long</key>
		<string>After the train has stopped, output X should be 1 if (and only if) A and B are different.</string>
		<key>goal-values</key>
		<array>
			<integer>0</integer>
			<integer>1</integer>
			<integer>1</integer>
			<integer>0</integer>
		</array>
		<key>victory-user-unlocks</key>
		<array>
			<string>FLUserUnlockLevel4</string>
			<string>FLUserUnlockGateXor</string>
			<string>FLUserUnlockCircuitXor</string>
		</array>
		<key>record-defaults</key>
		<dict>
			<key>FLUserRecordSegmentsFewest</key>
			<integer>34</integer>
			<key>FLUserRecordJoinsFewest</key>
			<integer>16</integer>
			<key>FLUserRecordSolutionFastest</key>
			<integer>10800</integer>
		</dict>
	</dict>
	<dict>
		<key>title</key>
		<string>Half Adder</string>
		<key>goal-short</key>
		<string>A + B = 2C + S</string>
		<key>goal-long</key>
		<string>Find the sum of two bits A and B. Output S should contain the sum, and output C should contain the carry bit.</string>
		<key>goal-values</key>
		<array>
			<integer>0</integer>
			<integer>0</integer>
			<integer>0</integer>
			<integer>1</integer>
			<integer>0</integer>
			<integer>1</integer>
			<integer>1</integer>
			<integer>0</integer>
		</array>
		<key>victory-user-unlocks</key>
		<array>
			<string>FLUserUnlockLevel5</string>
			<string>FLUserUnlockCircuitHalfAdder</string>
			<string>FLUserUnlockCircuitFullAdder</string>
		</array>
		<key>record-defaults</key>
		<dict>
			<key>FLUserRecordSegmentsFewest</key>
			<integer>25</integer>
			<key>FLUserRecordJoinsFewest</key>
			<integer>10</integer>
			<key>FLUserRecordSolutionFastest</key>
			<integer>10800</integer>
		</dict>
	</dict>
</array>
</plist>
{'fraction_non_alphanumeric': 0.17672116048814185, 'fraction_numerical': 0.01784480773658761, 'mean_word_length': 4.100998238402819, 'pattern_counts': {'":': 0, '<': 531, '<?xml version=': 2, '>': 531, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4093501', 'n_tokens_mistral': 3879, 'n_tokens_neox': 3313, 'n_words': 608}