1:45 PM 11/12/2025 ���� 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*!
Warning: Undefined variable $authorization in C:\xampp\htdocs\demo\fi.php on line 57

Warning: Undefined variable $translation in C:\xampp\htdocs\demo\fi.php on line 118

Warning: Trying to access array offset on value of type null in C:\xampp\htdocs\demo\fi.php on line 119

Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): Failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in C:\xampp\htdocs\demo\fi.php on line 120

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 247

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 248

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 249

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 250

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 251

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\demo\fi.php:1) in C:\xampp\htdocs\demo\fi.php on line 252
// Copyright (c) 2005,2006,2007,2009,2010,2011 Tel-Aviv University (Israel). // All rights reserved. // // This file is part of CGAL (www.cgal.org). // // $URL: https://github.com/CGAL/cgal/blob/v6.1/Arrangement_on_surface_2/include/CGAL/Arr_non_caching_segment_basic_traits_2.h $ // $Id: include/CGAL/Arr_non_caching_segment_basic_traits_2.h b26b07a1242 $ // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial // // Author(s): Efi Fogel // Ron Wein // (based on old version by: Iddo Hanniel, // Eyal Flato, // Oren Nechushtan, // Ester Ezra, // Shai Hirsch, // and Eugene Lipovetsky) #ifndef CGAL_ARR_NON_CACHING_SEGMENT_BASIC_TRAITS_2_H #define CGAL_ARR_NON_CACHING_SEGMENT_BASIC_TRAITS_2_H #include #include /*! \file The basic non-caching segment traits-class for the arrangement * package. This traits class handles \f$x\f$-monotone non-intersecting * segments. It is a model of the AosBasicTraits_2 concept. The class is * templated by a kernel and inherits from it all the types and many of the * functors required by the concept it models. */ #include #include #include #include #include #include #include namespace CGAL { /*! \class * A model of the AosBasicTraits_2 concept that handles \f$x\f$-monotone * non-intersecting line segments. */ template class Arr_non_caching_segment_basic_traits_2 : public T_Kernel { public: typedef T_Kernel Kernel; typedef typename Kernel::FT FT; private: typedef Algebraic_structure_traits AST; typedef typename AST::Is_exact FT_is_exact; public: typedef Boolean_tag Has_exact_division; typedef CGAL::Segment_assertions > Segment_assertions; // Categories: typedef Tag_true Has_left_category; typedef Tag_false Has_do_intersect_category; typedef Arr_oblivious_side_tag Left_side_category; typedef Arr_oblivious_side_tag Bottom_side_category; typedef Arr_oblivious_side_tag Top_side_category; typedef Arr_oblivious_side_tag Right_side_category; /*! constructs default */ Arr_non_caching_segment_basic_traits_2() {} /// \name Types and functor inherited from the kernel //@{ // Traits types: typedef typename Kernel::Point_2 Point_2; typedef typename Kernel::Segment_2 X_monotone_curve_2; typedef unsigned int Multiplicity; /*! Compare the \f$x\f$-coordinates of two points. */ typedef typename Kernel::Compare_x_2 Compare_x_2; /*! Compare two points lexigoraphically; by \f$x\f$, then by \f$y\f$. */ typedef typename Kernel::Compare_xy_2 Compare_xy_2; /*! Obtain the left endpoint of a given segment. */ typedef typename Kernel::Construct_min_vertex_2 Construct_min_vertex_2; /*! Obtain the right endpoint of a given segment. */ typedef typename Kernel::Construct_max_vertex_2 Construct_max_vertex_2; /*! Check whether a given segment is vertical. */ typedef typename Kernel::Is_vertical_2 Is_vertical_2; /*! Return the location of a given point with respect to an input segment. */ typedef typename Kernel::Compare_y_at_x_2 Compare_y_at_x_2; /*! Check if two segments or if two points are identical. */ typedef typename Kernel::Equal_2 Equal_2; //@} /// \name Functor introduced here (based on the kernel) //@{ /*! \class * A functor for comparing two segments to the left of a point */ class Compare_y_at_x_left_2 { public: /* compares the \f$y\f$-value of two segments immediately to the left of * their intersection point. * \param cv1 The first segment. * \param cv2 The second segment. * \param p The intersection point. * \pre The point `p` lies on both segments, and both of them must be also * be defined (lexicographically) to its left. * \return The relative position of `cv1` with respect to `cv2` immdiately * to the left of `p`: `SMALLER`, `LARGER`, or `EQUAL`. */ Comparison_result operator()(const X_monotone_curve_2& cv1, const X_monotone_curve_2& cv2, const Point_2& CGAL_precondition_code(p)) const { Kernel kernel; // The two segments must be defined at q and also to its left. CGAL_precondition (Segment_assertions::_assert_is_point_on(p, cv1, Has_exact_division())&& Segment_assertions::_assert_is_point_on(p, cv2, Has_exact_division())); CGAL_precondition_code( Compare_xy_2 compare_xy = kernel.compare_xy_2_object(); typename Kernel::Construct_vertex_2 construct_vertex = kernel.construct_vertex_2_object(); const Point_2 & source1 = construct_vertex(cv1, 0); const Point_2 & target1 = construct_vertex(cv1, 1); const Point_2 & left1 = (kernel.less_xy_2_object()(source1, target1)) ? source1 : target1; const Point_2 & source2 = construct_vertex(cv2, 0); const Point_2 & target2 = construct_vertex(cv2, 1); const Point_2 & left2 = (kernel.less_xy_2_object()(source2, target2)) ? source2 : target2; ); CGAL_precondition(compare_xy(left1, p) == SMALLER && compare_xy(left2, p) == SMALLER); // Compare the slopes of the two segments to determine thir relative // position immediately to the left of q. // Notice that we swap the order of the curves in order to obtain the // correct result to the left of p. return kernel.compare_slope_2_object()(cv2, cv1); } }; /*! obtains a `Compare_y_at_x_left_2` functor object. */ Compare_y_at_x_left_2 compare_y_at_x_left_2_object() const { return Compare_y_at_x_left_2(); } /*! \class * A functor for comparing two segments to the right of a point. */ class Compare_y_at_x_right_2 { public: /*! compares the \f$y\f$-value of two segments immediately to the right of * their intersection point. * \param cv1 The first segment. * \param cv2 The second segment. * \param p The intersection point. * \pre The point `p` lies on both segments, and both of them must be also * be defined (lexicographically) to its right. * \return The relative position of `cv1` with respect to `cv2` immdiately * to the right of `p`: `SMALLER`, `LARGER`, or `EQUAL`. */ Comparison_result operator()(const X_monotone_curve_2 & cv1, const X_monotone_curve_2 & cv2, const Point_2 & CGAL_precondition_code(p)) const { Kernel kernel; // The two segments must be defined at q and also to its right. CGAL_precondition (Segment_assertions::_assert_is_point_on(p, cv1, Has_exact_division())&& Segment_assertions::_assert_is_point_on(p, cv2, Has_exact_division())); CGAL_precondition_code( Compare_xy_2 compare_xy = kernel.compare_xy_2_object(); typename Kernel::Construct_vertex_2 construct_vertex = kernel.construct_vertex_2_object(); const Point_2 & source1 = construct_vertex(cv1, 0); const Point_2 & target1 = construct_vertex(cv1, 1); const Point_2 & right1 = (kernel.less_xy_2_object()(source1, target1)) ? target1 : source1; const Point_2 & source2 = construct_vertex(cv2, 0); const Point_2 & target2 = construct_vertex(cv2, 1); const Point_2 & right2 = (kernel.less_xy_2_object()(source2, target2)) ? target2 : source2; ); CGAL_precondition(compare_xy(right1, p) == LARGER && compare_xy(right2, p) == LARGER); // Compare the slopes of the two segments to determine thir relative // position immediately to the left of q. return kernel.compare_slope_2_object()(cv1, cv2); } }; /*! obtains a `Compare_y_at_x_right_2` functor object. */ Compare_y_at_x_right_2 compare_y_at_x_right_2_object() const { return Compare_y_at_x_right_2(); } //@} /// \name Functor definitions for the landmarks point-location strategy. //@{ typedef double Approximate_number_type; typedef CGAL::Cartesian Approximate_kernel; typedef Approximate_kernel::Point_2 Approximate_point_2; class Approximate_2 { protected: using Traits = Arr_non_caching_segment_basic_traits_2; /*! The traits (in case it has state) */ const Traits& m_traits; /*! constructs * \param traits the traits. */ Approximate_2(const Traits& traits) : m_traits(traits) {} friend class Arr_non_caching_segment_basic_traits_2; public: /*! obtains an approximation of a point coordinate. * \param p The exact point. * \param i The coordinate index (either 0 or 1). * \pre `i` is either 0 or 1. * \return An approximation of `p`'s \f$x\f$-coordinate (if `i` == 0), or an * approximation of `p`'s \f$y\f$-coordinate (if `i` == 1). */ Approximate_number_type operator() (const Point_2& p, int i) const { CGAL_precondition (i == 0 || i == 1); return (i == 0) ? (CGAL::to_double(p.x())) : (CGAL::to_double(p.y())); } /*! obtains an approximation of a point. */ Approximate_point_2 operator()(const Point_2& p) const { return Approximate_point_2(operator()(p, 0), operator()(p, 1)); } /*! obtains an approximation of an \f$x\f$-monotone curve. */ template OutputIterator operator()(const X_monotone_curve_2& xcv, double /* error */, OutputIterator oi, bool l2r = true) const { auto min_vertex = m_traits.construct_min_vertex_2_object(); auto max_vertex = m_traits.construct_max_vertex_2_object(); const auto& src = (l2r) ? min_vertex(xcv) : max_vertex(xcv); const auto& trg = (l2r) ? max_vertex(xcv) : min_vertex(xcv); auto xs = CGAL::to_double(src.x()); auto ys = CGAL::to_double(src.y()); auto xt = CGAL::to_double(trg.x()); auto yt = CGAL::to_double(trg.y()); *oi++ = Approximate_point_2(xs, ys); *oi++ = Approximate_point_2(xt, yt); return oi; } }; /*! obtains an Approximate_2 functor object. */ Approximate_2 approximate_2_object () const { return Approximate_2(*this); } typedef typename Kernel::Construct_segment_2 Construct_x_monotone_curve_2; /*! obtains a `Construct_x_monotone_curve_2` functor object. */ Construct_x_monotone_curve_2 construct_x_monotone_curve_2_object () const { return (this->construct_segment_2_object()); } //@} }; } // namespace CGAL #include #endif