






from manim import *







class 				lowerCamelCase_     (	a_     ):
							def  SCREAMING_SNAKE_CASE_ (						self		:					Optional[int]					):





								'''simple docstring'''



								a		=			Rectangle(height=0.5							,width=0.5					)
								a		=			Rectangle(height=0.46							,width=0.46					).set_stroke(width=0					)
								a		=			Rectangle(height=0.25							,width=0.25					)

								a		=			[mem.copy() for i in range(6					)]
								a		=			[mem.copy() for i in range(6					)]
								a		=			VGroup(*__lowerCamelCase					).arrange(__lowerCamelCase							,buff=0					)
								a		=			VGroup(*__lowerCamelCase					).arrange(__lowerCamelCase							,buff=0					)
								a		=			VGroup(__lowerCamelCase							,__lowerCamelCase					).arrange(__lowerCamelCase							,buff=0					)
								a		=			Text('''CPU'''							,font_size=24					)
								a		=			Group(__lowerCamelCase							,__lowerCamelCase					).arrange(__lowerCamelCase							,buff=0.5							,aligned_edge=__lowerCamelCase					)
								cpu.move_to([-2.5, -0.5, 0]					)
								self.add(__lowerCamelCase					)

								a		=			[mem.copy() for i in range(4					)]
								a		=			VGroup(*__lowerCamelCase					).arrange(__lowerCamelCase							,buff=0					)
								a		=			Text('''GPU'''							,font_size=24					)
								a		=			Group(__lowerCamelCase							,__lowerCamelCase					).arrange(__lowerCamelCase							,buff=0.5							,aligned_edge=__lowerCamelCase					)
								gpu.move_to([-1, -1, 0]					)
								self.add(__lowerCamelCase					)

								a		=			[mem.copy() for i in range(6					)]
								a		=			VGroup(*__lowerCamelCase					).arrange(__lowerCamelCase							,buff=0					)

								a		=			Text('''Model'''							,font_size=24					)
								a		=			Group(__lowerCamelCase							,__lowerCamelCase					).arrange(__lowerCamelCase							,buff=0.5							,aligned_edge=__lowerCamelCase					)
								model.move_to([3, -1.0, 0]					)
								self.add(__lowerCamelCase					)

								a		=			[]
								a		=			[]

								for i, rect in enumerate(__lowerCamelCase					):
									rect.set_stroke(__lowerCamelCase					)

									a		=			Rectangle(height=0.46 / 4							,width=0.46 / 3					).set_stroke(width=0.0					).set_fill(__lowerCamelCase							,opacity=0.7					)

									if i == 0:
										cpu_target.next_to(cpu_left_col_base[0].get_corner(DOWN + LEFT					)							,buff=0.02							,direction=__lowerCamelCase					)
										cpu_target.set_x(cpu_target.get_x() + 0.1					)
									elif i == 3:
										cpu_target.next_to(model_cpu_arr[0]							,direction=__lowerCamelCase							,buff=0.0					)
									else:
										cpu_target.next_to(model_cpu_arr[i - 1]							,direction=__lowerCamelCase							,buff=0.0					)
									self.add(__lowerCamelCase					)
									model_cpu_arr.append(__lowerCamelCase					)

								self.add(*__lowerCamelCase							,*__lowerCamelCase					)

								a		=			[meta_mem.copy() for i in range(6					)]
								a		=			[meta_mem.copy() for i in range(6					)]
								a		=			VGroup(*__lowerCamelCase					).arrange(__lowerCamelCase							,buff=0					)
								a		=			VGroup(*__lowerCamelCase					).arrange(__lowerCamelCase							,buff=0					)
								a		=			VGroup(__lowerCamelCase							,__lowerCamelCase					).arrange(__lowerCamelCase							,buff=0					)
								a		=			Text('''Disk'''							,font_size=24					)
								a		=			Group(__lowerCamelCase							,__lowerCamelCase					).arrange(__lowerCamelCase							,buff=0.5							,aligned_edge=__lowerCamelCase					)
								disk.move_to([-4.0, -1.25, 0]					)
								self.add(__lowerCamelCase							,__lowerCamelCase					)

								a		=			[]

								for i in range(6					):
									a		=			fill.copy().set_fill(__lowerCamelCase							,opacity=0.8					)
									target.move_to(disk_left_col_base[i]					).scale(0.5					)
									cpu_disk_arr.append(__lowerCamelCase					)

								self.add(*__lowerCamelCase					)

								a		=			Square(side_length=2.2					)
								key.move_to([-5, 2, 0]					)

								a		=			MarkupText(
								    F"""<b>Key:</b>\n\n<span fgcolor='{YELLOW}'>●</span> Empty Model"""							,font_size=18							,)

								key_text.move_to([-5, 2.4, 0]					)

								self.add(__lowerCamelCase							,__lowerCamelCase					)

								a		=			MarkupText(
								    F"""<span fgcolor='{BLUE}'>●</span> Checkpoint"""							,font_size=18							,)

								blue_text.next_to(__lowerCamelCase							,DOWN * 2.4							,aligned_edge=key_text.get_left()					)
								self.add(__lowerCamelCase					)

								a		=			MarkupText(F"""The offloaded weights are all sent to the CPU."""							,font_size=24					)
								step_a.move_to([2, 2, 0]					)

								self.play(Write(__lowerCamelCase							,run_time=3					)					)

								for i in range(6					):
									a		=			cpu_disk_arr[i]
									a		=			rect.copy().set_fill(__lowerCamelCase							,opacity=0.8					).scale(2.0					)
									cpa.generate_target()
									cpa.target.move_to(model_base[i]					)

									if i == 0:
										rect.set_fill(__lowerCamelCase							,opacity=0.8					)
										rect.generate_target()
										rect.target.move_to(cpu_left_col_base[0]					).scale(2.0					)

										self.remove(
										    *__lowerCamelCase							,*__lowerCamelCase							,)

									else:
										rect.generate_target()
										rect.target.move_to(cpu_left_col_base[i]					).scale(2.0					)
									self.play(MoveToTarget(__lowerCamelCase					)							,MoveToTarget(__lowerCamelCase					)							,model_base[i].animate.set_stroke(__lowerCamelCase					)					)
								self.play(FadeOut(__lowerCamelCase					)					)

								a		=			MarkupText(
								    F"""Finally, hooks are added to each weight in the model\nto transfer the weights from CPU to GPU\n\t\tand back when needed."""							,font_size=24							,)
								step_a.move_to([2, 2, 0]					)

								self.play(Write(__lowerCamelCase							,run_time=3					)					)

								a		=			[]
								a		=			[]
								for i in range(6					):
									a		=			Arrow(start=__lowerCamelCase							,end=__lowerCamelCase							,color=__lowerCamelCase							,buff=0.5					)
									a.next_to(model_base[i].get_left()							,__lowerCamelCase							,buff=0.2					)
									arrows.append(__lowerCamelCase					)
									animations.append(Write(__lowerCamelCase					)					)
								self.play(*__lowerCamelCase					)
								self.wait()













UpperCamelCase__						:      Dict								=					10**8





def   SCREAMING_SNAKE_CASE__						(   snake_case_  )   ->  bool:


	"""simple docstring"""



	if n % 1_0 == 0:
		return False
	a		=			str(snake_case_  )
	return s == s[::-1]





def   SCREAMING_SNAKE_CASE__						(   )   ->  int:


	"""simple docstring"""



	a		=			set()
	a		=			1
	a		=			5
	while sum_squares < LIMIT:
		a		=			first_square + 1
		while sum_squares < LIMIT:
			if is_palindrome(snake_case_  ):
				answer.add(snake_case_  )
			last_square += 1
			sum_squares += last_square**2
		first_square += 1
		a		=			first_square**2 + (first_square + 1) ** 2

	return sum(snake_case_  )


if __name__ == "__main__":
				print(solution())





