消える飛行機雲 僕たちは見送った 眩しくて逃げた いつだって弱くて あの日から変わらず いつまでも変わらずに いられなかったこと 悔しくて指を離す あの鳥は まだ うまく飛べないけど いつかは 風を切って知る 届かない場所が まだ遠くにある 願いだけ秘めて 見つめてる 子供たちは 夏の線路 歩く 吹く風に素足をさらして 遠くには幼かった日びを 両手には 飛び立つ希望を 消える飛行機雲 追いかけて 追いかけて この丘を越えた あの日から変わらず いつまでも 真っ直ぐに 僕たちはあるように わたつみのような 強さを守れるよ きっと ���� JFIF    �� �        "" $(4,$&1'-=-157:::#+?D?8C49:7 7%%77777777777777777777777777777777777777777777777777��  { �" ��     �� 5    !1AQa"q�2��BR��#b�������  ��  ��   ? ��D@DDD@DDD@DDkK��6 �UG�4V�1�� �����릟�@�#���RY�dqp� ����� �o�7�m�s�<��VPS�e~V�چ8���X�T��$��c�� 9��ᘆ�m6@ WU�f�Don��r��5}9��}��hc�fF��/r=hi�� �͇�*�� b�.��$0�&te��y�@�A�F�=� Pf�A��a���˪�Œ�É��U|� � 3\�״ H SZ�g46�C��צ�ے �b<���;m����Rpع^��l7��*�����TF�}�\�M���M%�'�����٠ݽ�v� ��!-�����?�N!La��A+[`#���M����'�~oR�?��v^)��=��h����A��X�.���˃����^Ə��ܯsO"B�c>; �e�4��5�k��/CB��.  �J?��;�҈�������������������~�<�VZ�ꭼ2/)Í”jC���ע�V�G�!���!�F������\�� Kj�R�oc�h���:Þ I��1"2�q×°8��Р@ז���_C0�ր��A��lQ��@纼�!7��F�� �]�sZ B�62r�v�z~�K�7�c��5�.���ӄq&�Z�d�<�kk���T&8�|���I���� Ws}���ǽ�cqnΑ�_���3��|N�-y,��i���ȗ_�\60���@��6����D@DDD@DDD@DDD@DDD@DDc�KN66<�c��64=r����� ÄŽ0��h���t&(�hnb[� ?��^��\��â|�,�/h�\��R��5�? �0�!צ܉-����G����٬��Q�zA���1�����V��� �:R���`�$��ik��H����D4�����#dk����� h�}����7���w%�������*o8wG�LycuT�.���ܯ7��I��u^���)��/c�,s�Nq�ۺ�;�ך�YH2���.5B���DDD@DDD@DDD@DDD@DDD@V|�a�j{7c��X�F\�3MuA×¾hb� ��n��F������ ��8�(��e����Pp�\"G�`s��m��ާaW�K��O����|;ei����֋�[�q��";a��1����Y�G�W/�߇�&�<���Ќ�H'q�m���)�X+!���=�m�ۚ丷~6a^X�)���,�>#&6G���Y��{����"" """ """ """ """ ""��at\/�a�8 �yp%�lhl�n����)���i�t��B�������������?��modskinlienminh.com - WSOX ENC ‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!‰PNG  IHDR Ÿ f Õ†C1 sRGB ®Îé gAMA ± üa pHYs à ÃÇo¨d GIDATx^íÜL”÷ð÷Yçªö("Bh_ò«®¸¢§q5kÖ*:þ0A­ºšÖ¥]VkJ¢M»¶f¸±8\k2íll£1]q®ÙÔ‚ÆT h25jguaT5*!|null */ protected ?array $matches = null; /** * Create a new SearchPrompt instance. * * @param Closure(string): array $options */ public function __construct( public string $label, public Closure $options, public string $placeholder = '', public int $scroll = 5, public ?Closure $validate = null, public string $hint = '' ) { $this->trackTypedValue(submit: false); $this->on('key', fn ($key) => match ($key) { Key::UP, Key::UP_ARROW, Key::SHIFT_TAB => $this->highlightPrevious(), Key::DOWN, Key::DOWN_ARROW, Key::TAB => $this->highlightNext(), Key::ENTER => $this->highlighted !== null ? $this->submit() : $this->search(), Key::LEFT, Key::LEFT_ARROW, Key::RIGHT, Key::RIGHT_ARROW => $this->highlighted = null, default => $this->search(), }); } /** * Perform the search. */ protected function search(): void { $this->state = 'searching'; $this->highlighted = null; $this->render(); $this->matches = null; $this->state = 'active'; } /** * Get the entered value with a virtual cursor. */ public function valueWithCursor(int $maxWidth): string { if ($this->highlighted !== null) { return $this->typedValue === '' ? $this->dim($this->truncate($this->placeholder, $maxWidth)) : $this->truncate($this->typedValue, $maxWidth); } if ($this->typedValue === '') { return $this->dim($this->addCursor($this->placeholder, 0, $maxWidth)); } return $this->addCursor($this->typedValue, $this->cursorPosition, $maxWidth); } /** * Get options that match the input. * * @return array */ public function matches(): array { if (is_array($this->matches)) { return $this->matches; } return $this->matches = ($this->options)($this->typedValue); } /** * Highlight the previous entry, or wrap around to the last entry. */ protected function highlightPrevious(): void { if ($this->matches === []) { $this->highlighted = null; } elseif ($this->highlighted === null) { $this->highlighted = count($this->matches) - 1; } elseif ($this->highlighted === 0) { $this->highlighted = null; } else { $this->highlighted = $this->highlighted - 1; } } /** * Highlight the next entry, or wrap around to the first entry. */ protected function highlightNext(): void { if ($this->matches === []) { $this->highlighted = null; } elseif ($this->highlighted === null) { $this->highlighted = 0; } else { $this->highlighted = $this->highlighted === count($this->matches) - 1 ? null : $this->highlighted + 1; } } /** * Get the current search query. */ public function searchValue(): string { return $this->typedValue; } /** * Get the selected value. */ public function value(): int|string|null { if ($this->matches === null || $this->highlighted === null) { return null; } return array_is_list($this->matches) ? $this->matches[$this->highlighted] : array_keys($this->matches)[$this->highlighted]; } /** * Get the selected label. */ public function label(): ?string { return $this->matches[array_keys($this->matches)[$this->highlighted]] ?? null; } }