Snippets Collections
#include <iostream>
#include <stdexcept>
#include <string>

int main() {
    setlocale(LC_ALL, "RU");

    class Flower {
    private:
        std::string name; // Приватное поле
        int petals; // Приватное поле

    public:
        Flower(const std::string& name, int petals) {
            setName(name);
            setPetals(petals);
        }

        void setName(const std::string& name) {
            this->name = name;
        }

        std::string getName() const {
            return name;
        }

        void setPetals(int petals) {
            if (petals < 0) {
                throw std::invalid_argument("Количество лепестков не может быть отрицательным.");
            }
            this->petals = petals;
        }

        int getPetals() const {
            return petals;
        }
    };

    // Производный класс
    class Rose : public Flower {
    private:
        std::string color; // Новое поле

    public:
        Rose(const std::string& name, int petals, const std::string& color)
            : Flower(name, petals), color(color) {}

        void display() const {
            std::cout << "Роза: " << getName() << ", Лепестки: " << getPetals() << ", Цвет: " << color << std::endl;
        }
    };

    // Класс, основанный на двух других
    class Bouquet : public Rose {
    private:
        int quantity; // Новое поле

    public:
        Bouquet(const std::string& name, int petals, const std::string& color, int quantity)
            : Rose(name, petals, color), quantity(quantity) {}

        void showBouquet() const {
            display();
            std::cout << "Количество: " << quantity << std::endl;
        }
    };

    // Класс, наследующий от Rose
    class SpecialRose : public Rose {
    public:
        using Rose::Rose; // Наследуем конструктор

    private:
        // Доступ к полям базового класса ограничен
        void setColor(const std::string& color) {
            // Метод для изменения цвета, доступен только в классе
        }
    };

    // Основная функция
    try {
        Flower flower("Тюльпан", 5);
        flower.setPetals(10);
        std::cout << "Цветок: " << flower.getName() << ", Лепестки: " << flower.getPetals() << std::endl;

        Rose rose("Роза", 8, "Красный");
        rose.display();

        Bouquet bouquet("Букет", 6, "Белый", 12);
        bouquet.showBouquet();

        SpecialRose specialRose("Специальная Роза", 7, "Синий");
        // specialRose.setColor("Зеленый"); // Это вызовет ошибку, так как метод недоступен в main

    }
    catch (const std::invalid_argument& e) {
        std::cerr << "Ошибка: " << e.what() << std::endl;
    }

    return 0;
}
usar esto comenzar asi: 

 <link href="<?= \Yii::getAlias('@web/css/estilos.css'); ?>" rel="stylesheet" type="text/css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

    <?php $form = ActiveForm::begin([
        'options' => ['enctype' => 'multipart/form-data']
    ]);?>
    <div class="estilo_usua">
        <div class="row">
          
          
          
y al final deberia quedar asi:
	</div>
       		<div style="text-align:center;">
           		<?= Html::submitButton(Yii::t('app', 'Guardar'), ['class' => 'btn btn-success', 'id' => 'guardar-button']) ?>                       
       		</div>
        </div>            
        <?php ActiveForm::end(); ?>   
          
// Array to store active notes for latch mode
reg activeNotes = [];

// Variable to toggle latch mode
reg isLatchEnabled = false;

//To limit the number of last notes to latch
const var lastEventsLimit = 2

reg activeNotes = [];
// Variable to toggle latch mode
reg isLatchEnabled = false;
const var latchToggle =  Content.getComponent("LatchToggle");

 // Function to reset latched notes (e.g., on toggle off)
 inline function resetLatchedNotes()
 {
	if ( !activeNotes.length )
	{
		return;
	}
	
	for ( n=0 ; n < activeNotes.length ; n++)
	{
		Synth.noteOffByEventId(Synth.playNote(activeNotes[n],1));
	};
    activeNotes.clear();
 }
 
 inline function onLatchToggleControl(component, value)
 {
 	if (value)
     {
         latchToggle.set("text", "Latch On");
         isLatchEnabled = true;
     }
     else
     {
         latchToggle.set("text", "Latch Off");
         isLatchEnabled = false;
         resetLatchedNotes();
     }
 };
 
 Content.getComponent("LatchToggle").setControlCallback(onLatchToggleControl);


// Function to handle Note On events
function onNoteOn()
{
    if (isLatchEnabled)
    {
        // Check if the note is already latched
        if (activeNotes.length > lastEventsLimit )
        {
			//Synth.noteOffByEventId(Synth.playNote(activeNotes[0],1));
			resetLatchedNotes();
			activeNotes = [];
            // Add the note to the active notes array
            activeNotes.push(Message.getNoteNumber());
           
        } else {
	        activeNotes.push(Message.getNoteNumber());
        }
    }
}

// Function to handle Note Off events
function onNoteOff()
{
    if (isLatchEnabled)
     	Message.ignoreEvent(true);
}
HiseSnippet 1011.3oc2W80aaaCDmx1ZX1cIXcnXXOJTrGT.JBr2RxFvdnNwwtvX0IFQoc6kgBF4y1DghTihJaFE8KR+FzuE8iTeputcjRpVpUoKyXcXcxOwi2e9wi+t6nmpjgPRhTQbZe9pXf37YtAqD5kCVRYBx3iINa6NglnAkWlniVESSRfYDGmlOvHvocKh86U2+HJmJBg0hHjGKYgvCYQL8ZoS6+iLNeDcFbNKpj160ebnTLPxkoHdZ51kDSCujt.NgZTqgKw4SFNiokp.MUCIDmVGImsJXo72DY5+XVB6BNXVziDfNJS7HIelAwFojAKY7YSKN2IDhi6z0YglYYg63NgMi8F4qyFetcCu0VTNe3znJ7ZVAd8JCutkfWMPxoDjZkAoa6FDpXw506XvysbGKvKm4TLsWFJY5RZ7bG2ARTCgd2H5kvHEt3MV32a+t2ya+t67Ca0w7iI3LA3MOUDpYRgmTbTpVKE8LtPI49gxnXo.c187thxSgc1pyS2piG9wl64WHpsQfkEsaLmt5DoF7O.CzA6YBTafm.4JMTr.C3tTN2nTxoym6aT4YV7Tf6EfdPQb8uaNht6N6lXjaw0.zAWfTE+2FvFmU5zXBxoB+c57zNs67rNdu8VlvWyd4NiCpZ21PhUuOC8EoQW.phbVgh3MaU5h60SWJylCyxKkTTJFKX5SiAw0wwI4ISC0JGUnpZKwZ6bhUVpivP9Sa277HwB4xEzjGM9XplV3HzmXbhAklYNBNGCWgE7YL11tGCIWpkwVcyuAwi4MHr+95P52eU4ErjIxHzOTEJ1oA4cKTvRT4rTNUWst0zrJeC71oRwhofPjvzqJ2L6erh4aJDus6TlNbY8XrQMXDuC9Pfw7Vfa4Nb9bHTuFfsbG8yeX52UN7amE9a4FfsFrcQrA+Ksq89I5Uf2C.AnLIudW23nW95e4E2zwQw23wQmFpwvethJRhkIUbb.DwNGI3IkE9nDrgK7qmYtMKKefjppcqWc+Q3grVaBn5TkkVbXjLUnqPCZ99FK1aCGK15+biE+HnXuxj61EXLfEEygghq.N1qzhwu.aNNmlx0ERqxkmHEx3kRAKr7E8YfVwVr.TkwdsGnC0Zbf3ZI2o+Y.GnkIsec+GhjMpBySvFlK5829UL0de8UtYv0yT.58waS5l++tI8YxTMSrXBEIg3.Z2SRiBvdig.Fcg.eVGJCmHaL0ttqYcVyQwL6h+.+x2rmYsS9l8J17ekXDQCUxmDl8LHCO8SsRvysv9GMZi+iGbsWMu9IB6x8jvvpt5cL7a1TC+1M0v81TC2eSM7fM0vuaSM76+qMzLD5vTsLJqzjPlLcn80pNNCETjkaqHH+YqFx.9
class Bank:
    acbal=20000
    def deposit(self,dep):
        m = dep % 100
        if dep >= 100 and dep <= 50000 and m == 0:
            self.acbal += dep
            print(self.acbal)
        else:
            print("invalid")
    def withdraw(self,wt):
        n=wt%100
        if wt>=100 and n==0 and self.acbal>=wt:
            self.acbal -=wt
            print(self.acbal)
        else:
            print("invalid")

    def balanceenq(self,bal):
        print("current balance is",self.acbal)

    def viewoptions(self):
        print("1.deposit")
        print("2.withdraw")
        print("3.balance")
        print("0.Exit")

    def validate(self):
        count =0
        while count<3:
            pin = int(input("enter the pin"))
            if pin == 1234:
                obj.viewoptions()
                while True:
                    choice = int(input("Enter choice"))
                    if choice == 1:
                        dep = int(input("Enter amount"))
                        self.deposit(dep)
                        self.viewoptions()
                    elif choice == 2:
                        wt = int(input("enter withdraw amount"))

                        self.withdraw(wt)
                    elif choice == 3:
                        self.balanceenq(self.acbal)
                    elif choice==0:
                        break

                    else:
                        Print("Invalid choice")
                return



            else:
                print("invalid")
                count +=1
                if count < 3:
                    print(("reenter the pin"))
                else:
                    print("try again after some time")







obj=Bank()
obj.validate()
HiseSnippet 1614.3oc6XssaabCDcWauAQJ8VZCJ5i7gVDYGGYImKM.oEw2jSEpchfkiSAJJBn2kRKqWQtkjqsUK5+X+TxeP6gjRVqRTbbMZJPJpdvVKmYHOyLmYFtpiRFyzZoJHrx9CyYAgePT2gBS5loTtHn8VAgebz5EFYelfonFVRvFCyoZM9RX37O1pTXkEBbed4i1flQEwrIKEDbfjGy1gOfalrZm09ddV11zD197Akz9tq0NVJ1TlIK.flOpQPNM9HZe1SnV0lKJH7JsR3FopqAXQGDtvFxjgcSkmH75e.WyOLiYenYPWrQ9k2VlkXQrc0fMS4YIcF635ffvnNSBCy6CC2HZWdB+r0mDN9Dm.xDKJGOBmaZ3M+TvqYY30nD7lAjBKAoE7P55QciU7byDIV7bsn1BCS0ihvdYn30MXtqFFsoDZHL0GPOhssBOblE0teiFKSveV7gUqtxJjNYzgDpHgjh.FgRDRCqNYeXGdHSJOhPMjWAEMI8jJhIkQhkIr58JDwFtTPjhm.qepn1hU+spUp96UIupnd8loLKbUxrLlZlhsTF04YXMQwfCYpkIGSyJXmoHhiSmbhdyImxbmXezqjhRQaA27zbl3MwnBFExw2dV6snFpMiNZMnWNSY3VHDtE6XTd3yuUh1hoOxHyQAxqk7AsSlTjQMSyEsEfiDfXvTD.aRVn4lgkKP+GifdQg30i5vMwoyFiyMCLhH06BLNpr9CiZ0qGK1LAfKDs8O7toFt7w+Q9i+ZQc4BlqAq6v+b2yjmSOlQdruCKJnNmVr+wEsEa9EtE6SiM332WQE5bodpMtKa.eeovFElr3yznIB6W1ylMKu9lRpZlhd4i1FN4LsoK0Tnbzh0GHKDlonAyeds5adIa0uv6ws5+rQqNAQMmYK+VWIZkkVhreJWSzdKNAjARtq6NIALEQAWmxRHwoRUBjZRg.PLzFpvPRXPypUrCBzvizjgxBLR3DhQBYzLuA1V9ZSQ7QtwDjbkD96.rLlQPUbMSSRYJV8pKsR0pt8FcjU9Mm7sjUWsw8Z7vxRnnQ9wL6nAMj+i+jelzNLyM0jBscDz.a9HiqMKSNIkGmRfGdHUyioYYVWqG+TVxs07eEJqT3XzHCwE8IMW8ADNZ1zmo7iEzUwTqZbbNMdHgS9Fxcv+t0sVDd8DTTOuPmVqknO3u0iULjosLhc..ps3nQltnrfcBY8NsIVb3i0LAEQCWLJS1mGSpc3P358nEYFB25Qxd8Pf6jEsaRWlAphMBA3dzLquhXOh52DaEhtn99UB2550qW00HotlY1lepeX658vj8wCWMJL9Cn7MLRNSB3RhQHXWPlvsrp2mYaLJDrrZvtQJHlVA6N7D2.1R5b7z5b.CKit5NMpVAN3yY2TAWPAjfxcjPrdC6XLNjzdKqWCh2PGshKHMtMRWNybwDPAKvsQ5irBnAHxJK5mRTR4.2MOFPECGQcFEYFiJdxoSiqV1CrcRsEIekkQbF78zfptib7kYz1K8H64g.6T5fbjNOgYSH79BoxmPT1pA6oB2b7A4E6NqwofxAgwTRq4VdyYQA34ThlkSs2ylra6sZ6n5NDwnfr61DWslCWrQUuvN7OPrcgQYtUz.6ptS.peaKUafGcUqX48Tg6zlvzAuGk6VpzA1piZHzsLwSunIIiXMwKCxvsrkIjkH2A2uZYewrsT3btd2EMYbtQPmu+cncBxAjT67xRdqOu6673jcHiIbV.ZkBuzR4nAfWchEftNZX2Rj10Qsqh4rgdnrv3T2fQmXGFjau1qsz9PHHi4E5z8sTAtnui.NAtQS9Y4g0Om3ueuDdS2X333CRK8KkVd8f8+ee42Ctu7TS4qLFic411JsDGiFlXEKF+T3UtoDiWc5Y76JEx7TofGW9tR6wLJdeLbqL1moCstwfWodxJ2Xs8XYLZ4688kqsCl2QUHNwtjwhl+suwyLyWeQjGtDKGl79664L++seOm8P+RLQaWJHgmh9D35AcwqWDyFcYBauiv4rU49maXe1+9EhD2C+I9LRXS6ygiD1brv+UNiAzXk7Ew9thVd5Ucq.+V398mpDsq8YRy.Wmxx4R6ESeQb7za0qY3pWVCuyk0v6dYM7dWVCu+k0vu9xZ3Cd6FZu0t8WwbfuzLHX2NsbiYBCa4tntqhH3u.2gPQ2
HiseSnippet 5641.3oc6bstbabjcFPRv1D6ZudSVWIU9UaTahFXAOlflxxVJpLIAIkvZRQXBJeSRQd.lF.i0fYfmY.Iw5Ro1ml7bjGgT4IHUdB12fjuyo6dt..SynM1Q1ArDovzWN84Vet0MlNQg8kwwgQkJu1IylHKU9WWo6rfjQsF43ETp8tkJ+FUZE5JE6cty3I9xR6LahSbrzsT4xW8dzXJu10Jw+7m+3cb7cB5KyZpToOKzqu7.uwdIYs1YqOwy2eeGW4IdiyM5M2pc+vfVg9gSA9b0JqWZhS+m4LT9.GZXWoRoxuxdtdIgQcSbRjwkJescBcm0cT3YApw+Ydwd8.RhGZVpK.jp48C8cILlZsTqQd9tcLzcbI.zNYbgqp3B+tJG545k1dF23M4NDYyHO+n7UJhdWs.50LO5sdNzaInzUxgRupQvvnjuyLYjVvbX6caKTszr.hzZZTjLHoq7amJKHP1dKcWmDAVadY2AggS1KvAnma9lIn2CCs6DYwNJe0KMs17Bo0RDYsumujn6ZlGvnIZDx7ccRbJU92WYi22N3jO3S9vViZc1111G9o68UeC9e6uv1l9uwd6ThlXltRYR6pq2v.mjoQnsW4ASGuiCVxbTwCBG6g9Y8eciu4V6JCVVyDGBTaTRd8aEaq.m4D43IgYM7OsUoUD0O2IputxG7gFh5n92y1d2OoS2SFt+WB5wde6NngS2L3Ot6COOdepo+fsc6CtwWd+uvdmV1C1dyCl0a1g2Lnks8stwmXeh8NctUq.a2AGzY36GbqcsWwPVwPVwPVwPVwPVwPVwPVwPVwPVwPVwPVwPVwPVwPVwPVwPVwPVwPVwPVwPVwPVwPVwPVwPVwPVwPVJCoekastlgb7Qg2a9Seqi8Xui6dR6M9JhaL119aN8VaLXvgyjs1wdvoXTcbUedF84IpOug8oCFDpYRqTRVsqYEC4W3LjQUt0lFFxmd38ssO4fKjgbvxYHdGcissG7QX.23F6Xu+fch5dO6+3Gc+dGzt+de64iWoo7yFMkbWHoqotPR+1Jc6G4MIIqGhS8qpzNHQFMvoew6JlZrktxe20q7duy6H1dpqWnHRF3JiDR0cKqZ0OOxKIQFH5MSrimuuXuScBhEVNAthXeugiR7mg4.XCxR5RCq0nHu3jvIiD2GTU8pUOYjWrHNvaxDYhvUNNLHNIhthRhQgmIRBESikhjQRwdAC8Bj1JTfQGq5h9N99z0cR3EHBiHbCynW3zf9RQUZVw5qTkHbfvQD6ELzWJ36g0D9dXQi2Q3vT2.HJs0XD9mi.3wHLjXOPsdC7.EPHSeG7GhDmENULIJrmSOPlARzM.FMV4XYPBl+XP0h9gzr6CRxUTMdVbhbrva.O4QNmJEim5m3MoHVEKNajW+Q.6wx.bvKRLFhLmgRZIb8FLPRWJLQe5xYIhA8BXOTFHiHEHHA.6HYjShBW8RtdLDC.QFSLOFMGEF9LBxiESmn3AC8Ak3K.yOHdRXTBvt.WeP9DoR7x.w2LMNQgSfURZkbezmCmjgfz5dFoMzOLHIJzW.YTQhCCHDxj5Uem2qZ0VXTfVrG67L49Q3gT8Qqa1b8Fhlev50uS0pu26I5BMjDR3.7MIZpzvFOyArBhuH8kIJkEvjmnjmh17ftNjDSIwO3FjxBDtRPsP78Mx9IDzYHOlTZE8f7UzCCruuzAL0FjhCzgFGB5e2s+7XM8APjPCse3jYjBFsxzhJrBiJfbD7oG56DHH5j.uD6bhTCm4zDtoUO.KLPiso5r7.Ywpg5nKIIPsdSUve.VSlFz6NEmIuNPxXvz7X1y.GenLDGpjPFzgkotQNLiI7T0NBZQT6INCpn.xisq1m1YJN0IRr6dGr2I68zS16vNOc+1Grm3tJXqjR2CKHskjv9If64SV.H0UXzIOT5J+1OySdFlrQCvw0sCMAqZ59p0P.EfOhj+5VrA4XU6LO2jQnyMZZTMnEkIhKZEYiF6hQMDT4xVVcepk882.vN+TV5Zu3.f1d3Ysz1khwHq0Ba+eVr3ePbeh+VSixa6xasyuyHOxlc4QApxWwW6gxjrVspk+1jZ.5CimhUdFj8rv0X6TNtmzk14Sl2ShaP1Vkmxl1H8ZRWPo4SZq7lAnCHAlHOmLEPhRV0xIFX5TXGVqboMPp2HTvdK1YMLxY7XmDOxHMROwtZF1aqlh0lMD3eMA1SzLPofjCf+APxO5IDEQddbcIawAgIRipIONgOFns.lP7BvlGrCAV8S7BwdaW2GfQakBtSBeXrrACB3OtGuglLe8oSwenmbmBJASU2P8peW007CAdqF2SShAFkC6gj3DRl1QFomB7E8NE.5cLP.lKUyOET23R.p4vH.MC7.AdWiyPEW7Pkk26yFDr.ubsv.RWjb6aAd6ZqslPHfTk4ggAl9ePJ+vJi0T+NYCMfawL7VvpDsMggnBfC7hhIuPbGlw8YRfndIyrZtwsvP0ibJTWNU2yZoXHhVBrkwSrLLGr7j5mocxUAiJb+DSnnP0dxz3QVgA0yyfFL3RvgFLHkEswRYQpAb44QpweIXR5UNkzUJHuXD9fAfXdNu0u06dnW.7AbqbFQZc+iNdWZyzleXCwMaheuI98CosVzT5.XvannUJdI6tpBS+Vd..qeGgm3eTrI9uabCd6wBaxZnVsG48jFBOXA09iRQsGPQxQNcnP8LwEB1Q3LXY41FOkJaMoFZbzlZZnrqn7oQQFxd6vX.RSVYlHi.z7B7R7b.RCibmQwpvfIlChUDMMH1VbBLUA2Z32wNAvDoyLljG3cdp6eu33oRkKUlS3D6QVASiJ.CWECzYNSLrK1LLLx8Lga3XGXZT4HVR.k6iUAwV47l+fB.Dho5.sCXa.VTTMjk7bibfODRZ8WhMmwvM9QPHXAfAy3DGKrwEOgceMrurmYFV0+ZNhY3eDomfH04fILHQrN7BBnQvLtGExthuGOGsoCNPIwruDDFGevx7WdXH7QY7VZYLgqHx5BRQiDL1tHYN6Qb3I2Uofpd5N59ijS.5kPasqtFsYXjDLBnHv9mHLFKSDBzJFwzALBTFridrJclYxDdRVsmOtPkVwYgSQT18zwoQ4wnhcSEgFykkpuIFesVgLYV8pqA0ZEcXqWRPOq8c3WzikW7txAv.kqUF8Qg0QoSVGSdMP4qQH0Ijd34X4B.ZwAAxw4jl3CGIZOZLx9SSXW7yB5OBARCNK1XnAikyfj44Dt.WmPnkIt0FjpS9LoVVD0FHhPLL47XByv2YbOWJbXD.vDNlSJeRgxrLrG4QLIRMC8XH.DgFfGYrZvIg6pVu6JVjoPBVdcUeoW30i3DCIYvCaqCc1Vkj.kb.sFTb4oAk2S12wfoHHdEmiIAm9TBwLhvKLaycOMSmVbRgcIBpF7J0HKxiGkRCOwhDhJoHIumOlYtWc2qgHQiCQtJShHc3ZpwJpg.ERgmcRX2Dz8Pq0qS9unex5TImHT5nncw9VJe6YV5w8b5uOmef9nD6Dyoec+1c2i95QgbPEar95qea7fbhJGu2F7rATNrv7bDIVIrj7HknxvErXNaFj4fCzjfLDZUxnnvHJZuEIr2V7kvNuQqg2UPaC0UUf8SZWyfnOu5y0V3t6+S9QryzjD.Tr.6HoHUUaxAmqZNGipA0rXV.pFspo6TkF.EkutAU78IX2HEUuBt0luau3CCIliSzrZJ8i4GQLRopc.3x3ILDiowBiYtrLx0WKUR0olLCCzcp6.Ce93gmeHVTIIBC.R1.LCefghuSY1rsJG1dJVHL8MAXIbo9e9m9WT1yRG9ZHhD8LbRC5OhlheniqdF7Tx4bvKduwSPfg0Eu8cUrFFRqoUEQ9B8lKBDwfnvwymlDMbcr04RXnXL0474cmpoqfxXJ4zhqhE8gXt.HrwKJemSYtBYFbPVqpfBUMngTZdN5.QPR284nZRJlFDsQZRXrGIHZnyZhZCK5YdIizPyg3FApZD4GFNwVzNmUXDgBaPjluXLE+ABfQkmmW.6lxQXEAeSgiqqAHysLUjQiSvc4Lds0ThAGsyIBFHS5OJKr.SgLEg8TtCY618m5aR2KG3RnughYhlDUgPWRdS4JPp1DkZF9xfgIiHi+pgXqqcpZHpNemb8ZpW5b8aYFPtRpJdOwl1qW+6AR55odmb7AJz1ayQk5FFb8jE7zoB5iJ5JDAT8Q3H7xzV0fVCMM2CFGgBPZgnnwoK51NcNTCMJ.qHiEK6bry3rbZ.WrqJrr8CMIMtChwL1RQa0SoDSNrf93sT+foEs1ZoCNM8n2mR2I2OT3UsVXn4R7ovPmK6m4mkxhjuLRmjUSUdPGF5hf2tvI7YjoH3MTkKFEUKwPQT8PjcVvhjRZ9VbtVo3mdywxTjoeSsvnR3JEj0yqsniiLMvXVtsj5UmOWoiNryQc263mdbV+Fa5H0wTWfu.d.09AS86I1W6HfAEWc6TWC3yTfXpZyygBHYyD2b80EiigIHXJjMGZJWHhu8TOWp.lbAdfBDx4HxVrfSmKh.EVXGAa6W4D4dZC+XyUVTho6k9CcO5A5sPDiUoS6EuOR4KdDv76RcZOP+3cXohZPFTrSnGq7SiyzlQ9Qtnx.VpqMBs5RmZg1gHUwcUci4ZEdcD8LhDDYyFlXK1kCXhX0fvymzgYdwhwHdbhcBeEMxBflCOV5wi2wL5zhW1flfS1yp5zmicvUXG48Pq77SVENKmUSBK4PXFgThBTPPPBRI2QsFE4v0tVuCMtNOuBooww7pguhIZFbZP4aGS9JH+XjUrHD7SpjTcZC9t4XH1ByYrvGsxL9bSBHaRPC.+00ommuWxrb1+TSjNSuSBoSchRR36CIyu0jJL7brv4pfdtEg27xe01SChFKC0PWU1Evx69Jik4ZjN6s5obhVY0BMPdlJyC5TRFtHh3knYDblHT5rmwTliZVF2zNiAnveL5MZwnCf0T+bXOMoSB2SUEk6tLhgve96yO0rUMU.POk3E1m4bZsB1z5JklXfTG8PlNLn5HYHexJYqNh6kNHKsa.r9YY3tfr6Qq+D6LWUl75Lk+QpO3lpqo1c91EAsJyo7DqMy111PuVOZgE7IMVv24wT4mqiHr2TQ15zhtXHu.f+gg6B1RxRjNSYPetN7gWXK9bU8qzOSbdNQWoaCJSKVYYLzVRglI1MO+T86P1jBIYXC+KcGsIKV53axQyoXsplF6Dg3466Pxba5n+1lJufNvAqGQAw+j47EpwMJU.xi.EqXDWRMCxOgMGSdTJrajQeptUTsI5IAOPEkhKqiWPrDOJ7Lqzk84BR3k2xcGiuI9XbGfTRzYRrNsjMWRtohZl4baNw6BtNzoj97k3.UghzprwtTBLSFsP30h15fH6yEkBHPb5dqHoBESyWPk8TCSwJTUlzgN.W53vaymHox2hZw.XBBKjMhBB1hCcl0SpViqGaNLZoubHcfjHLI67moVGp5YGGNMARrrpvMTUAtgv4pu+199Vqedyl6y+XJz18jpsrvZjigxAl3GFmd9efaSob65ESousMMPcAdvllCHiG6PGfcr05JqADO14YlHjY2rEyBTkLQiryekyTDK9lu6DmHXojT3XGawB0AKHNWehOhYHIJJ2Z1l7HIUX257RRhkIx9dCTULZnDYwmDMiGWjDJwdPq1jIGsXRGjoDkY36RVWcnCoUSoTiGaZaoYm9f4GgUNtig01UlZMjNKc5srCmdvxW3gpnioQYo9uX6yFASTFv0NQxUOmKh5xgAUs+BHOYXZApgKioJvsNb7KDrTwQn2OyARtcm1L5BaWmQByzEhiLQoSQvs3JRp.YU9ImwGgK4Mg494piyB1nlOEmbcY8cUEhZdt0vN7ElWsFTmNQCiQ2OpFLvL02cGo9MrSsmvcm3n59IJDrJm9PBQ9prbH8P5RXTcQSmNttsLUcoitFwGnGt0iRO4Y3n5QZjiVTQsXoI+DtMUw2RKCua5AVWMcSqGB2lT2KRA0gDSU0+464NJh4uLTlKJFguSm35jVwXtPYu3Xl3iE7pPpUl6g.E+QZ4vwNZrYpl31j0axbuJYqZWJR5X4.LmQKmhpoOPgZ49H.4kwkHWOumv5GymSDsUfVD00MXX84MttwFoFWKred9i.4iEE1gC5e8y2Ymr4R0py5sMlXsRUn3CVHOfW+7M2L+z391OjKBsbfCh5BLfl5RmLzlv+s8Qf9R2SfPvJaEXYc8FeOl0ASrO33QDJvmI37mBTA2OE3RX74piIY27n.KlwA3HluqACVZeYEMXocSkFH5hlnUf9VCnJ+oYfkJeshuSspb4dmZ0WUx4bCLLnMLscDxh766kdVIccpwmdXa9pMVpbYca5MmdDJTdW4od8kpa72ZU1UF+rjvI.SS06KU90R3deC88ATUb3RdzEJrhtRwkNGTSY5pDNy7ARDi4VQkOeob04lFAMj7E11LK1YK.7q7uat8h4PjJJD40MWLQRfqwCcrIygGe0ODDe0ueHpU2lChhkAwhWgG5kHWwqvilW72W4RXcp.5o47ukF83sAetdtLZ9lUJzFKGzWpy+zy1ZV1M7Tr0Di1QaW58em5BZRkxL8MLmgtTSQDskJdmLH5rUQQV4qtjqM5aV4vPWphuEes5QuKA0cf8JEt5nzE3K.AJMqv6et+25cs2kEE+sU53kzezxwwqrDbjdM98i.NpeCE95U1C4N1OICAuVk8+hebdcDle4eK0x+qpP5T78HiW72phQGCgvqu2nMufWVj+aW1WVjStzurHOBg7cp7D08MMV1LOjmquMx22tHXgfhCW0TgQQj297VnzFessLMtQ9FgQhB.COW.RG5ksIrz+wGqBNoqDTi6Qw8AwV7Ra+m+3NSQD.eNs4qY9Il07F4a99NQtPtzufh3Uun2alM+Ey6MyeFXtob4b33uQgiuZksu+tcOValg+Lx5ftcaSjE2DcXXP3jQgAdEDuGiLK8XmQ4v3kRFaSoW7rVSiNUVTeuuyrEZUM3Ea4.IPs7MSG3yBfKsg27edqtSiSJr8+K+WOV5SkmM+F585GBQh7EjsewukQKW4RpZ75UTDofM27xman2vfeJovKeH3utBK9eYk+8apnUFeokA9FUz6MdYkEdgQBc0+eSjPWrCF3kW7Rc7r+MUPzFaHXQo3+ajkpLzGdnCbeQoQ8foi6hv45K0GMCkBb4qPYjoddcSpVcQNi7C+W3GcmMMoMRc1zzYdtwesQegysgRsQ+lzdoY67SZrqT.ay66ikL76oaviV76q2buptItYHWH37un0UmgD+M9CfuXLCHwy3hPH66d35UZc6G+vXLhG6F93smLgJQvi4pv7X57Ie7bm0WowDCRIbF6nRI9rxk7y95Fp5y27UMT0+ONwkdsUwk9WXboqYvwt7W+PSrnLN9WUQWJueLiPMqke2VKDo3ueqC7BjNQ+3ErX4Ko75uMevhhe9V9heg6z9mB+L+TrFic5GE9T8WCVRO803V.cGvVsWqxgzyhlk3BKmWVNFV4dZ+9EA0BSbiWzI99unSbyWzIdyWzI9AunS7VunS7C+gmH4DZ6oIgp68IUjnN6odgCTN0Se4qV5+FsR.Id.
HiseSnippet 6906.3oc27z0abbjbKkzJ6c7ECc9Nb4Nfff1L4rWJQshKo9xlQGIE+Pd8wuLWJK6ywv2ryz6ts0ryrdlYE45CFHH.AH+.xK2a4uQ.xCW.xC4dK.2q4gKHOYjW7+fjppt6Y5dmYWtRwN12Q.Ixo+n5pqt9pqpl433HOdRRTbkEpc53g7JK78p1dbXZ+s66JBqzZmJK7xU2Jd3g7yp7vwCcSR39UVXgK+Hr2EpckJzOe0FOzMvMzim2TkJuejviuuXfHMu0i27mKBB1y0mepXfwnu8ls7hB2NJHZDfIWt5JUF558T2d7CcwgcopUV3p65KRiham5lxSprvUdXj+318iNKTN92WjH5DvwGZVoM.HYy6EE3iXL1Zks6KB7OVuiSpTYgpGmu+urb++CqdfvWj0dNc3ZTGr7YXROV3R1n2ksPulln2JFnWInzBFnTUIJ88q11KVLLMuGDe9A3AkG2GNc385IbSm.kNbzf1ABed7w.oDPopK7C.JsDRUtze95Uu00uNa6fHumxRH.wLfjiyo8EIrDZzLwfgA7A7vzDlaHyMeXrQIhvdrz9blGAodwBelmaPPGXQYQcotRicCSFFEmx56F5Gvia33zJEZVvSXoQrX9nDNaPTRpdFCcigC9TdbhtkjTD7uSq16Zs904m6wALrK727yiREdry3hXeX7i510IsuaJKoezn.+v2DW9mAqCv8wDvlJj.bTrnmHzMvb2q6qqHFvogAtd7kAHB6M32Gb7tLOXiDxCjqxxLdp2RMPRFm0Qzi45+L2vTf6EQ9bJTAx.yMg5X.vhw7iEOCZB2HXavljIvtgM.frtiRiF3BaOfzNlNuRb.JGNxc15IrgQIhTQTHfkQx4PKHH7AqM.FP3JQjjBmfvAnOCOpfyaC.PmaXWD0OliLQrvHfWl4bFHxxhBg0E.SZbT.6r9Bu9ptAjiF.PkFimqcYiiFw7iP58Y.YPhNc3.sW.R2r5ZLTzklChgtDrXCD92riar5.CXKR3oZhQ1QS9V0AWHOjgzqufCmroHKamwFj7e4ww7t73Vg.qDbF+KIJGvo4yavjmWz9JlCm+AnpJWDzRdN.VtCGFGAP27jvOhmf6M3fH5L1fQAoBP3vDEk7ziBYIBra2P9nnDXUbp2g64hr5.pEyeyD4hGExsEaVh0Yjhrg3.K1EGul8FmumaB2w4HpYXbg4G4dQHycBfW.VS+Wc7+WB1ywbbe56BpgzSZJb+He.cF3zAf3HPzaf3yo4clHEZGVpnH0R.rTvri.V29.vAF.PoxV6rSqSaczguMa6G29ziNfs66u6gmB7YmtE65W2w4I.TnUOl6Qrj99BMc2kjwu4YfnFCNSgdgkOljk57obuzkKvPbFHEwOG3s8krzmEK.dIMLAjy2M0kUezPnSml2kAFp3IKIIYH2CrGGJH4AXH.2CBeROyt3xuCN4Ch7GEHIMn.zXfITDloAIQzCWFOzRAP.1dTbLLwfwFpPv0jNLSvAmK50UDjhB8w7OaDOzablHXBGj0xF1PPaCvRurEigWDpUNkCKjabGQLndIdrCB.bWgzNbqksh9iCcGH0e75NNuKbpBKR.PQIFPkVVM4Qu01BnhDMbebC3GGMD3+OKjNDf0.HwJrkPeNg9.kWxsMPR0vC1T23dbv5wYHiOG0ygxtAhmxazngy0ukiystESo5fzPRhevteLpx.DBkG8eJh0dQCkjVfHKzKCmXAo0G3pFDQZC.8GvZfaGD7Y5c.8Rj1oAfVNhiVtJtdoifcp.0UzEz3iX11fBOXYZLv8o78hgGZo6s98WakkY291qrz5NjCSM7QMMaqjgSp20MHgCc5.jcdB3NCmUvdsyuxolCpaNk8LWTTl8.1tgf.IugGHqlxOUax3cjVLpC.DVJPuHBKfsjWGdTpja2ykJ4xFxtgnL6i.UK0SiGAVttOhN25VuN6wsXaezgmdxQ6y1Y28ZcHIshznG701ONF6qO3SNZu8Zu6ovt6Nqsx5F87g48buUHjigJkS4CFFwdZXTGkXpztizZYxPNvNqXXsTb1vjVRf3AL8IHvU9yA3UewSwNVb4bj5FL3fTiHHwCG.R+puHZn.FpbNHEeQjBJBQlJV2QgdRsVgT+aKQx5nbIHREB7qOyMXDeI7TdJmHxArtyWXrrJ3n4jpaC9kxoRH1gZA5D0I5bIgJAExHMFfkUP4N38mlRYnxzfLQvvhJsMBvGFcd8EOPt6KmPAO0bMj4mLlRTKPs6fDXBezhOdHR01AzTf+9wCY2hoe.+M7nbDGgHH9Gm.r2QCv+Z69.Vu3G23SAMr0W7uNbwkrVCvtPZeXbu0JJBwSHs8Rq0R+b.Ct.Q.j1OiSZBQClfCFbj7.R6fQqDzIczxEnrKk7FMmfbvQ6r6m73iAZRy0mr4cN5IGBcr55EGupq0JcND3tcgtN5jc18DTlnPOmr0g6.lMe.6tE5Z62AlFJtjwGjvkaHbLBj+JQ5PVGTubp1hlEyBNSTUoO2CsyBWSgrzDCtGGKcOQ5Plabr6XmXN3CYnrqGvH8ZqWqVM.F3.8AcvR4..DvZNB8b7Lz7.fUwoZOw.1OBPdRqisxfmBxqyXLED8xLfRvJaAn4mbl6v7IiRQJbAVRo+PQzXl.2TtGANInkGnMX.3TLA1XhA7PrM6snAXIqOxAh9fKMdpbcEMinrYZCXOje9.oT1TfKIqBR6JGpcQKxdf+c3zI2GHYhr4WlBHbAlo9GhUAuP2jR.Dqh1O6I3inoE0A8aOgbmg75.cMGNmiFhWu3y49ZuRPn2W2KBMZ5dAbWvQ9Tzy6T2ya3TShB0U3VM.4pg9ypkjda3YfWn.GmpY6yeqtJ4LT0SwCAUGc.qrOccKL.EXKhCDi1W6nf491XcqU55VqDVeUOScYqMscdM4NmwJr2yNApU9Iv2DngERHU9gHw7gAVcYgBl31EfA0pYgCjp4YfBeyyFR54ILvbV5cTFc6K.GHQwrmHs0A2FHPcwhyUWXBVIOvl+XTSCZJzWzEbVDE8A2pGxAMzfNGLpCIQj1ZBbRqmbAohBCoDyT4V3nAcjQuPABB337YpnWLBUNvaPvBoDuM0ZqcjpabCNycbBplvoVWoKOCFBZI1SoPSpa.bF0zN4FrEkPcYDGNjPgEYuMaw7GWVN.zIsZw7NiDA9sAjh6uOnMttzMqLeIJ5lkgRTCurTaVvpQjWJXfLogTSJsSjdoq5wGuZBRMUVXxsi0mGnhlhg4b.vGIgXYtop5ZV9ecWzGnbnnbYUftY0rrdbOG54NkzSRJeXaPUtZhkXeQM7YZhYpTb6kqHc2F3kR5QLzhvClT.DVZzhBxICCXbBSd8WULVlHZjhPeN45izQkyhcGNDNzbiiFot08HngXYffLuKAFIUDAJ6bR2m8AUy0J4npD5pd1yjv997fHOQ5XLNtpCLZKu0..wSWL+VD01mG1Ks+EOtiQKvW7v.oyn35t9nved7TvHhnra65i.HKPyI0yl5WPm75sW4m6Sr4MN3AWDB60f0R4dBFQAWvYUzOI3rCie.b4FeoHEo5ACzFJHlzeT2tAbVG2NiMN.I3U1oWariYezgmbR7w5JgGFEOvM.8+4XdLFEK2djhGbKHiBeC1iST2LQ.HB2M+RqAQcbCzAtnCMZyvSfZxQ+lBwHRgSPnheozAMbIjJdAUK0iPczmIfkZbzn2DnV83T.l6gaYRmyRFTBNcCTeaZwCGklBZcWTd8Tea5wacG3+t2cJ4leNJfYeyr6iQYvpm9bQu9Hi0ZqVtTfjdMSY.Q25utoGifMMwy3nokjFjKlu2HAvTgrd0Rxz.UnK7Z3oQC0wClx9Q8UjLr03fEYD5v3TAgA3Uok3ntcqmyUar4JxTasWvsaNsueTvTH7uCzyjT8RH3H.rI12yt4KjRiKzyEcFU.PF+QSXGJ4lpYS9kgaqdhTiQ4lAH2q.XaNOQxtCFlNt9RDDm0ICRz0TsdRuEHDWQ3Vp7SBi8pRtTpkhgJ9.sIcEgjFsDyyHScs1mU44Rq9hliBn1fBCDSszSCWdCS3R7VoG6hdATuvH.jFTPbLl6AnUWjZQpuqSGd4nTtR8oiP4iQhNMahKmg4fBnSS69mWjIyxwzwkrgHQkUWEQkbKNEvjUs5d1HhiyDltjt6byUuciUlDLZOdJuOSedn9M1jakYqa16T6wI2tqQRp18XKydmlqV5Hl01lbi9LzmbzVXy6JCvtgmOxjbH83WkqJU3uLh6OE1GJe.5DKLwN0DfOtEiKS5KFH7bhisi..w4i9XsgaLB.TTQvrxfFtoHlnWQX4.XZtD.RXm6AZSPIfnzSi1ZfOk.VhHT6fnT83Ph8pkbln62NrkKhluQ8cB.9qrNSv9q.bB98MtAoZzdi2X3nj90sBV+Vg9mnXty4RvwVWbi0VZo0w3aE0sKFrE79VOCTFrLKfNlYuAaHxe5TqDrDV3V.NZxuIyGyewhfoAA5ksyT2cIfq0sBOlxkJrIyxJQQaCSR8tH6DxKo8y.UeRSESvQS4j3zHZ+aS59HZl2r4GuDcs6YoeuvI5Tz0OEbmzXfI7X+idTqsY683C2FyzQa1W245..GkQMWVx.LRdf0R7lDYTWRfDiyWhY.CImZAyPf+XR1fBmJ3TPqk0MtjKw3fVQVFSvOGbIbvPMeDc1fJPBXg7yZgtaHSNEbBfv4nv5MWlcfKzRL3hnMbQ6Fqd2kJcAPCwRHgy.7GZGzabt+CGSYIskecZ8LlAvZpvIxufXd5n3PIVQLrZMF5XUyOm6MJEyrSXI2caZURhNR1DTxJSkB4HNHpmvq.0EWhLlH51gVjTQxdXzW0wOssJHopq0aG3aJW5.rAktXQOPSPnph.QhQlfQ3W1cSSn+FuNZWLiv5Xm6nCydwcNJClgh0pM0.q6PizvoXSGuPAWbu8TwPFGaUEDZJ.9winzNyTIXmtABUlOjad34I4dlliC0oKsZAqd1U+.A52Gk2I2.yGXKjbSXI96epwjyFFhIHBmASi8.d6eCHhCcRHZOchIDoCFAt6MdCyI9.RSVQ53qa2hFP1shyzDIl.2uIqI7urAHcHF.RdrBmD.ZYT+VnuiKOA.uYSkS0xsu+nXJO6Gjjm.Yfte.HTHZSURPxdQwTZDqKyyX9oRNQTCk1tnbjMnTsAPwDn0yW3bvn3TIZWtSWHLHihzxtUZ8Llf7Yh5cfIY4k7LlG65f9p6sddDPC4xJqfpP.AVzQxPAI8DBy3ejunKz0D5Abi6Mhptsrs.t4yzDnWAPUgmLLCo5XTjMAPNusJHCxfEjSfAzbkF2Wy1n4NWEY3Zhrf4yErk1PaMEPga7fBGIW2XzHXuCxETXPOfUG7oEX3xF7R5PEWxXMtEvrOjjr85nQqufnYBpTpiPUN0zlDA2qh0zLUEajkgLR0Mk9KYLcjIcLU8Dpgz7Jn4h+nvBt3Jpu.W6LSkIMxMpAFgxXGWV4wUZxxSRWIgoZI7P+bmXPOrjNuAV0rnCHkzHbAzVsKGSqVVDx6FGMfdB2kKi0QlpbfxMsR96IqFOoNBrlB6gIcqlxlFQXzfzYJa1LZxGko83ieAI.y69W5vlk8aJBVJC24N8PgYUaVy7TMuhMXsReSx5RLX3FnQfIbXGgVPkwoUGIWrt85GGEFMJQ4o.tBTRswHBFlLJlqBJltrGq2kyCvRqhK0ILf7LfpdMzXMF1rkvUICeQjBvXrr9niEpfIkIGexRNSnhy1mJRSwMEYtbH4QjzytttXJOwJUogpZbNJDq6isoC45Xsj.mehtvEyjEynouH.Q9V2pjYsUxEMMxYWpN6HOd+50M24vI3843woJqHtkkEJ2dthPia20cxRdZOw4GQSYO4LpCRXF43Yw2lcSvEVXsnhCvJwUKpktfAAlLkUT.LU4PUk.vfHjO.FrvWBKLEblfCz+EhjXfShjkiv5UAt2FvjCJ2ngPg7xM..hJiSuMp4loVwIQLrDLnRww4KriyPhGHD5gd1zUs4qaErEinkYLl1on6pSDWlrvycQCLWgQgQt5ctqM9EOvxGfGQgs9DPBB1TG3F51SVPZNXgjK0EfEiizaWphGo6yq7N1nfLsqnyFrqeqBtlOEcQb4kMLUHkeiGg+4zM2clYdKpEOfJEKcwclCSX923FfxZ+bi24Ki7V1kc+rbzbuLagzQgwkqLvx4xImUxct44xopUJ5M22l9DBahY4cwJ4IYxHlKFoKz3tCxvvPlaKyNX4V7vviPDRsouUdts7oSNPsxN9KIV2pKKtMl3AokKpSYAAM8TSHugorxW4p6f0g2khxGJbpJipAXFgzu3BRhjiUv3wEHCdzKEAV95xgtLlGJtZILPKL8RQSVzWO2mJYtoYfNY9ogTDzobWJ0sAb78ivr9CpmmqbvYc5kGXI07zd.n0smWyAtTQ3aTTzxp4NedRsvcGESkwPVgrS0RF5umT8qo2Rf261NOIYeV2b3DiWB7KqVyPOrO8CxQXbyah9WWMmbeIU9SsszUIUE6EEJiXSlyREX+jQBPEWmrz2nSOkg3LhF5Kr6T6.dRBn9sgnWHveQJBoxQMiMjSDVo16AbjRj+Z3nLYorpmFIqQrQwYgEg3gDgcgdrnX5UsmR2aKe596kdHXL1CyZ2Z3FjaiAqUpZMToIZKMWOlZp9R5a140m68zrRx6LttP1nnvj+1MYTNKmYbaSZxTjdvpaWWB+gx5eKGDk75+Pg5QxTnDvo4PjP8kWyyuq9MswHXYRpeH9VYIidCIOqeGhjQbxxgasdcBsrR1FPfJM6bDMxpmBLwkmxOY3VJrN562h46ax9pabVdp952RyQ5Bch7yfd2aR.Q7rxmLykdktSE6pjBP2YUFRtP4CxaNX993nFpJ1rXUTEK50iaPHI.XG0tjHiotHA4EYmQrNzq1C99WvvWFo.8k3.RhwMlga+ao7lBpE6mwZpHRy18hoHknthlyrTWf4yd15Kle0EZ9e86qivWagRt2LJHV8MaUEVl5E0PPkMFlOE7OUlhxFObRlW9Tr5xW8Lsb.ZKwMqfi0xOTh16P4VGCr5Hvcd786YoFNSyJ0uRld5DRUU45pxrkAiix39D5Wqk4BdlDhLrBx3DLijlWixNddoP9ExfpNMoJYjkCizkKbr7E1iJlWYJ+vDoaW2HJ0WyJC7kl.9oJOBH3WXVGSF1fJ7Vtzv1NENY1jyUyPNyIKqBC6YqxzC8twPuNM1ciXc48nSuUnNqJY41BGXkEth8Kza0o+B8Z99F6ISikw.iBaEJROZHObZuExUT49pRkEdEEVAKeJ8p+9ZpW827DJVQ3WYgWsp48GpP3d9aS8OdSzzckEVo5Zq1.9o6MtW3yV41hO6Q6Fbz6149uyags9VsGu+3O+HY+uWuO6daKwj4X4+dUycqelK9SN5c2mV76s8ceudiOhe5Z+h253de1it+1PWO6nLj64XwekpYW.5h13Gu01MlxOcN1nei09xx09UsVaZcqUU4.7jq5Wsw7Lcmp5ThL47YaVX9WSMectsIHb0pXbWmb1u7lyyp+RUoa5M4jei4bxTPjmbxUlNYSVXSJxlprxdNHaFS+pUw53YVK8r4VtVU67RqgT0EdI.HSJmPxEHOwZGk8bwepT4wsvKHhus9JY2iytKCz1N7mI73x2c+ZU2gm7TPwJH0jkXafj97HdeNht3ddr9OjE5UN83C2jptj7F9a1zrnNmfWaNwBKobabHD9iBqX9zoPlfiCmw7fHuxbKwaiG+GveLv7KQw8+MCbO23wM004iIeWAL2m20cTfzbtISVI6nKMm6nWZNziP.70tjZu72hPNGau5BJjPtgtZU8iz1MqWy0r17n7gVz+AyEcfvGrvdr58pOeCsZoDOzyYDf6Hfa.vS41z+qsoE8eyxnIyR4lMI4eC.AUdNnL5iG5fu7fNYuNgNYuKgNzKRni7sHzgbQVR1jR45y6q9KJgn8xWnNSabZuYPwVrbJlIEY0MkDvWoZ1KUZk4iuQqE19.bVnyueijQc6JNGc73mVQtt+npkU4xVnvUmCc4DR7OadNkQj+.EMNSG0UYkP1u5EowmVgOqzUXummUXdsKXqX4cWvX8pboopN3JSrnyhE+0pNYYJIWzW9RFKpY8ZowHoHvkt+BUcJTBXqTrolEaZ0hMsVwltcwltSwltawltWwltewldqRP0xP+Rv+lkrAZVxNnYIagl2QqK3Zzmfn7OuNW4T0gU122Ayu1O3m3nCx9DFX8o0AujTHHsM1TL+qsOAPyKJ98klEKGGuTI3H3ux2D3n5CmzeR0c61EXqyQvqTcuO3aluRRlK+qJW9WoZaQHmpQMZw+QzyrmfexedDODKBgn3ly3iX0+979QrZ3b+QrRZn+Tc5HrbsfOPbJnzHwrwGmv2Kl+Ymfmllsucjaboc8UarGrIKcNscSUY5vxQE1e2+8WtwBWdVeLsZ9B9wz5Jem6io0e.Hra889plFGaSkx3tgXXtgVPbDrdH8RU2pMu7AQgQC6GEJ7LYBNgqBioItW5FZqTLMS4s7C27DYr0xa5uby8AlM2XxQsWLZQy4mVLqyqebUI5xPAP1e3pj9x+QsRZKEBJV6Wq5wQAikLp6Qe7iHjnVU4CyR+bkJ6o+LIk03e+uay2y730l07Gu46MB7zMi5x9I+je6+xCECiBbi++Jku47u0mE6wOpZ1lh8su9mqp0ZmUcDYnLgs+oxNX1eTrZdwnK5zqxm4bp8NS4V2escJL+xnHm12s0i7SppXbYHCy2sw0Ws568sOBp91Y5TsMnWgGAJ4PT66odjs2GXy1dranY3zdhcHh9vM++eibWqJfSeGPovK8BoTX0KFcULz3kUJQ+vWsQ45G98a7Mh9Ak8oWU450IXwp1QcNHahIayhs4RmDEMvHdO+i+5e8WtwNtCFhApQ1zlqs1+0FOgmtOL6f7g8a2Xm3wSz1WtgIaG0.Hry+btgYMn0+oB9u+hSAxplOvOQ7NxXXBgqu3w2V9ENMQGyS0yqniIQadnO8v+C7ipyl5P9hc1T2oIU9UjT4WpJ85Co97BS+sMYkZBctaed2TSmRy53D6.f+ms4dbteG5kHIaF.o+2sgtcyIPcrezYGCKHpN0zeh2QTn0J6r4ABMq4l+me9+5F4wtyT76OnNU9ik0XfqWbzmn+BAB5tdYpEf1FRe6nqU8.7YVyh4PZ.bEzOwyyFTEl3punSbsWzId6WzIdmWzId2WzIduWzId+KdhXDB1R8cONBy3zAGuKk1sEVPGFZvzRk+Wf02XkG
HiseSnippet 2637.3oc2Y01aabbDlzRrnjoMHtHnnebqQgMkgBkTZhaQLbikkkLXajrfobb6mLVd2djazc6d816DEag+I0+K8mR9Gz9LyduQIZGWglhjZD3vaucdYm4Ydl4VeZlMP4b1rNc6e1xTUmt+rdSVZxmevbo1zY7S6z8C6crzkqxD9kdxxToyoB6zs6FOiVna+M6v+4a+xmHikl.UyRc570Vcf5qzI57lUO8w+Icb7QxP0Y5jV69yd73.q4.ars.9yF81sSpL3b4L0IRZa2pWmt+jCC041rI4xbkqS2MehMb4j41EF+9+ZsSOMVQOrWmIPQ9kOxFGRdLsZmClqiCOs5b65zoauSahBa3iBebui0g550ahFeD+BQiDsiGcu0pt2Fq3d60181sk6sFWpaKWZSuKc6dSBxzo4Mug7mOn2XCRNQRD1a6J9814V+ia2am6eewo1rbDDM4VwcEOKVGpDGdoLIMVMXvYy0Ngx+jvAu0IveIvV0zRjTBoHwZroysFcfvQ.DwT0b4EZjpDSWJrl3khyUpTsYF1rC+On5KnjuPFqu.+sITjoxKLzNxmCKkKyxEFathLEsRLvYhzX4RUnecSQxT.7JbdslpyClKh.tQnt.d0nACFCWK1YEgJ3et7LJty5pvAbivFwODouTXm9MpfbHc.RPKEKlqgtBjFbND.04PHIC1U5fglpHGICaE9+fHaF79k4yIuHSECaDRtr+zEamoCfmb+cFbfEoB3VIxyUGkgGpSMCevt6ts.+0VObvfc1QvgbMYJxz4RDgmwIkbTPrsXZQtXosfcOGkDVJHchyBjIboQlfrfOfBej7EenITEmKE6HHSbgJ1FnyQpAdu3kiEJepbz.1jhKjYhi1+oG95yFe7ghGI1a2c891KcExXXQxAVXKhCEovcXSqI7CxtL1BAnRfHElwp1B3QyTFExB1LRUz4fhdMYGJDlVjkZcHOs.mnhfyQFL1mopLAkyRPEmnN.VZyAL2znPUjJ6.H1TvO3FFAHfpLxt+5R1PuAHTQ4MK3mDKz.+JE+wIO+jpsh7NNO41bTqwgVncpRfhBvi7hSFHThPLNKEA4EYzgvqKXUn8DbPg8.D1hiNoFjqv5P0oprbM1+v4JxEniH8tsZmOhPd3PyLsQMxavizW9b1+NxeRF92Gz+N5v67EhOYuswOopjS3hj5kHDDdX2Q6N3MkwjCXcQonbDufok4vsQPeN3EYOgP5.vrrc0mqsmQKLgk9QhnRmied3m94OnMnl0qC9Z4QjJi0F.BRPx2ZZpHybkE+CKi1hnhL7JusbjBYcU3Jw8Rf1QZ2G8rPCyP7WXYroplafBSHllol4IXNgLQiOO7ZgDlopBEvISVc0XgxbIGzfW.2IjT.Aq0FGkTAjdG3aI1KneVVl4DQY1jJhtfyGIdk5d33jXC0QK4SDolJzmgyCFAQfKz4ULh9DF32vRDYPnEfFJUAdijTYl1YMr2TXBnvK3wyCJO8AnbKXtG9rlH.mspjyGpCUnZKAnuR1wJtYBTHzQbs.3+TRGWIHAgOSjFSULVN2YgvPutbFdohCGMPahIUVapHsI7D0BJwLbqA.PCU4iMoZFcp7bdDGLStJ.aA227K389MED4b0V8.oD5n5yQHvfpLYrE4hkT2oExkrb+kRB0UapkQpvn9jYYfuAHeuEwQA.S0rQkvO.PvDDkH1sY0U8BvRT+BJ5CvWe.NFRTYMkMaMnONojb74CrXxKo.EirWnzYgTV9Jb9tExTd+nNDyUffmWE9FR0A7QifI6qiFBRI0VB7axT8WA.Lpgo.XAWqGe302qNj2iNbMuinW32R+fe+T.qNm90aFP+2f9EofiTcJUPRfs2vvswfIQICo5eBNQUJF0Bes919vvpfwoJeMA5eoAinLtFNt.oYz+m6v3K6I98hLPMjWSgQAkqh7VwwHjG5PJiK6Z9HwaMf8IMTIqF37cijggrNoAZG1rSc31MMX21aksEzD.uo1irFZqO2TWHrOpcr3ERt6neDIfm4AfpImhUlY3mHT5oJIAwtMJ+bI7nBSskaVaPEAGtovGoZS4zU1nHVTR+XXIm3NvZ5HcfVFeGB8ZyvLQjFkXTG.P4l0ksF5erWJdXm8qkiR38YsNtk7dhxlgnJminoSMKgmraASEPUW0jyfL9xkUTk9tWJAKRpMsflGqI1vsmuFcJavAUkektCx8wCdWkIUGwYJNi5WmOgqslnryM18KSokVyN4JqVp8PZL1wgLmL4cmf4tWT6fbo+Uv0UcTa2f.YiZhlQdYGthcqT+3HOiGhgFlp1qLWot2ls8LScy6xBTV1gHYTN2heT0ZPLM0VEmJbP70.xTPe0ZlcVA9A2w9uR+eeBU57ncUHQfBxrlSjS+2PrT7GD6sUeOMZUDz6qbPzS98PlBRgwAq4aekhnTuWtuuQfMcoOv4iO0nJNb5kn0GlPCvxhPymzZHtDogGR1K.yDuPCHqtbvJushoPLYrUFbowNsG8fnvaycbM9HOabyVpHhuFRb0ssJu+aAq+vRlaZ5elir0HUviK+zD6aGPNZMr9hqxxEEUSycr+qYT0DQhFpGXH62M8xKn4sZoiUm15czBFPKGGeWeg3VUsOave7ncfYeq02tyWW0Z1nq90s9IjbXtDORgFaBSnfhrxNgWk.m9N5lSF+4ybIwp3i06+h6dWwutEaf6vjz7k7458nxo5zjyC.gBaisrPPwe4F9fGWIOAOmhLh9ngy0DQZ0rM0G7qTFeUWw27z3QFOYY0In8gbc0y3y9B7b9xZBJOGhaN+0pSUUHyozfp9JTS8TChpKkfZ9yvyDU9baHkAuGl+SeNIyJCoxdwp.Z5S8yrwwT+.BSekWS2q05eSofC8Wsw13iqhQzuZic5t4p2fTu29MH09BtB727PqMZMiM57mmpLusq8pS40Ufe8xwOEsMoqcpbsSqo5vZOUcAhX9KgpeumpbmmaS6z452P0G06XaHkaV8BynaIr7EHFrxsTQeeuwoyW19VD+u1sn895h2tGSasde7VqwGQj56Cer7tG+48NLJBDzMN3l8N5O+8yEM117en27ePuIXLFt5jM9ujeV7JInaeV0s6r263df+muu2Cb5688.+7fbX9yxjFGc0QsU7DUh9Lzn00dwW5TGko9qufxlsW+.qLasu5a+xivgbsxLQlWjwvh8SrEl7UfAa7ttO58tg2G8l+f69n+QPw9JWYd+JebBOY5gF51PwJjO9K.EVjrHNuZ0UwxGWeO2sSzuPkiOCclJqsuu1Cz94T2tlU93G+B+XAMK8ad7WAvlLCwI0MLVr2+w+yGr170upm2cETAn3Gujza7+2jzuvVPWy3wR.BuDCEfo1m.tw.ErtwfwivZcuEwu4edW5YO4nIje3eg+T9x8nm6V9x8pd4+SrQhLHy95.+HPDN8mxqfysg+W3qeuiomE60gGKpctLArbuNHXUUcMA+zapf+1apfe1MUvO+lJ3CtoB96toB96+tEjZBseQt0eK+XCGe5g7Lkc6dnQBTNWQz4eCA4n0V
2637.3oc2Y01aabbDlzRrnjoMHtHnnebqQgMkgBkTZhaQLbikkkLXajrfobb6mLVd2djazc6d816DEag+I0+K8mR9Gz9LyduQIZGWglhjZD3vaucdYm4Ydl4VeZlMP4b1rNc6e1xTUmt+rdSVZxmevbo1zY7S6z8C6crzkqxD9kdxxToyoB6zs6FOiVna+M6v+4a+xmHikl.UyRc570Vcf5qzI57lUO8w+Icb7QxP0Y5jV69yd73.q4.ars.9yF81sSpL3b4L0IRZa2pWmt+jCC041rI4xbkqS2MehMb4j41EF+9+ZsSOMVQOrWmIPQ9kOxFGRdLsZmClqiCOs5b65zoauSahBa3iBebui0g550ahFeD+BQiDsiGcu0pt2Fq3d60181sk6sFWpaKWZSuKc6dSBxzo4Mug7mOn2XCRNQRD1a6J9814V+ia2am6eewo1rbDDM4VwcEOKVGpDGdoLIMVMXvYy0Ngx+jvAu0IveIvV0zRjTBoHwZroysFcfvQ.DwT0b4EZjpDSWJrl3khyUpTsYF1rC+On5KnjuPFqu.+sITjoxKLzNxmCKkKyxEFathLEsRLvYhzX4RUnecSQxT.7JbdslpyClKh.tQnt.d0nACFCWK1YEgJ3et7LJty5pvAbivFwODouTXm9MpfbHc.RPKEKlqgtBjFbND.04PHIC1U5fglpHGICaE9+fHaF79k4yIuHSECaDRtr+zEamoCfmb+cFbfEoB3VIxyUGkgGpSMCevt6ts.+0VObvfc1QvgbMYJxz4RDgmwIkbTPrsXZQtXosfcOGkDVJHchyBjIboQlfrfOfBej7EenITEmKE6HHSbgJ1FnyQpAdu3kiEJepbz.1jhKjYhi1+oG95yFe7ghGI1a2c891KcExXXQxAVXKhCEovcXSqI7CxtL1BAnRfHElwp1B3QyTFExB1LRUz4fhdMYGJDlVjkZcHOs.mnhfyQFL1mopLAkyRPEmnN.VZyAL2znPUjJ6.H1TvO3FFAHfpLxt+5R1PuAHTQ4MK3mDKz.+JE+wIO+jpsh7NNO41bTqwgVncpRfhBvi7hSFHThPLNKEA4EYzgvqKXUn8DbPg8.D1hiNoFjqv5P0oprbM1+v4JxEniH8tsZmOhPd3PyLsQMxavizW9b1+NxeRF92Gz+N5v67EhOYuswOopjS3hj5kHDDdX2Q6N3MkwjCXcQonbDufok4vsQPeN3EYOgP5.vrrc0mqsmQKLgk9QhnRmied3m94OnMnl0qC9Z4QjJi0F.BRPx2ZZpHybkE+CKi1hnhL7JusbjBYcU3Jw8Rf1QZ2G8rPCyP7WXYroplafBSHllol4IXNgLQiOO7ZgDlopBEvISVc0XgxbIGzfW.2IjT.Aq0FGkTAjdG3aI1KneVVl4DQY1jJhtfyGIdk5d33jXC0QK4SDolJzmgyCFAQfKz4ULh9DF32vRDYPnEfFJUAdijTYl1YMr2TXBnvK3wyCJO8AnbKXtG9rlH.mspjyGpCUnZKAnuR1wJtYBTHzQbs.3+TRGWIHAgOSjFSULVN2YgvPutbFdohCGMPahIUVapHsI7D0BJwLbqA.PCU4iMoZFcp7bdDGLStJ.aA227K389MED4b0V8.oD5n5yQHvfpLYrE4hkT2oExkrb+kRB0UapkQpvn9jYYfuAHeuEwQA.S0rQkvO.PvDDkH1sY0U8BvRT+BJ5CvWe.NFRTYMkMaMnONojb74CrXxKo.EirWnzYgTV9Jb9tExTd+nNDyUffmWE9FR0A7QifI6qiFBRI0VB7axT8WA.Lpgo.XAWqGe302qNj2iNbMuinW32R+fe+T.qNm90aFP+2f9EofiTcJUPRfs2vvswfIQICo5eBNQUJF0Bes919vvpfwoJeMA5eoAinLtFNt.oYz+m6v3K6I98hLPMjWSgQAkqh7VwwHjG5PJiK6Z9HwaMf8IMTIqF37cijggrNoAZG1rSc31MMX21aksEzD.uo1irFZqO2TWHrOpcr3ERt6neDIfm4AfpImhUlY3mHT5oJIAwtMJ+bI7nBSskaVaPEAGtovGoZS4zU1nHVTR+XXIm3NvZ5HcfVFeGB8ZyvLQjFkXTG.P4l0ksF5erWJdXm8qkiR38YsNtk7dhxlgnJminoSMKgmraASEPUW0jyfL9xkUTk9tWJAKRpMsflGqI1vsmuFcJavAUkektCx8wCdWkIUGwYJNi5WmOgqslnryM18KSokVyN4JqVp8PZL1wgLmL4cmf4tWT6fbo+Uv0UcTa2f.YiZhlQdYGthcqT+3HOiGhgFlp1qLWot2ls8LScy6xBTV1gHYTN2heT0ZPLM0VEmJbP70.xTPe0ZlcVA9A2w9uR+eeBU57ncUHQfBxrlSjS+2PrT7GD6sUeOMZUDz6qbPzS98PlBRgwAq4aekhnTuWtuuQfMcoOv4iO0nJNb5kn0GlPCvxhPymzZHtDogGR1K.yDuPCHqtbvJushoPLYrUFbowNsG8fnvaycbM9HOabyVpHhuFRb0ssJu+aAq+vRlaZ5elir0HUviK+zD6aGPNZMr9hqxxEEUSycr+qYT0DQhFpGXH62M8xKn4sZoiUm15czBFPKGGeWeg3VUsOave7ncfYeq02tyWW0Z1nq90s9IjbXtDORgFaBSnfhrxNgWk.m9N5lSF+4ybIwp3i06+h6dWwutEaf6vjz7k7458nxo5zjyC.gBaisrPPwe4F9fGWIOAOmhLh9ngy0DQZ0rM0G7qTFeUWw27z3QFOYY0In8gbc0y3y9B7b9xZBJOGhaN+0pSUUHyozfp9JTS8TChpKkfZ9yvyDU9baHkAuGl+SeNIyJCoxdwp.Z5S8yrwwT+.BSekWS2q05eSofC8Wsw13iqhQzuZic5t4p2fTu29MH09BtB727PqMZMiM57mmpLusq8pS40Ufe8xwOEsMoqcpbsSqo5vZOUcAhX9KgpeumpbmmaS6z452P0G06XaHkaV8BynaIr7EHFrxsTQeeuwoyW19VD+u1sn895h2tGSasde7VqwGQj56Cer7tG+48NLJBDzMN3l8N5O+8yEM117en27ePuIXLFt5jM9ujeV7JInaeV0s6r263df+muu2Cb5688.+7fbX9yxjFGc0QsU7DUh9Lzn00dwW5TGko9qufxlsW+.qLasu5a+xivgbsxLQlWjwvh8SrEl7UfAa7ttO58tg2G8l+f69n+QPw9JWYd+JebBOY5gF51PwJjO9K.EVjrHNuZ0UwxGWeO2sSzuPkiOCclJqsuu1Cz94T2tlU93G+B+XAMK8ad7WAvlLCwI0MLVr2+w+yGr170upm2cETAn3Gujza7+2jzuvVPWy3wR.BuDCEfo1m.tw.ErtwfwivZcuEwu4edW5YO4nIje3eg+T9x8nm6V9x8pd4+SrQhLHy95.+HPDN8mxqfysg+W3qeuiomE60gGKpctLArbuNHXUUcMA+zapf+1apfe1MUvO+lJ3CtoB96toB96+tEjZBseQt0eK+XCGe5g7Lkc6dnQBTNWQz4eCA4n0V
//cmd
DEL /F /S /Q /A "%USERPROFILE%/AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets"

DEL /F /S /Q /A "%USERPROFILE%/AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\Settings"

//powershell
Get-AppxPackage -allusers *ContentDeliveryManager* | foreach {Add-AppxPackage "$($_.InstallLocation)\appxmanifest.xml" -DisableDevelopmentMode -register}
// toogle class that takes in the element, the class we want to toggle and force
//force can be set to or false to set the class to show always
const toggleClass = (element, className, force) => {
        element.classList.toggle(className, force);
    };


// were using this function to hide and show on an element that is clicked only
// this is why current target is passed into the function,
// the second param we are also passing force, but setting to true so 
const toggleSpan = (currentTarget, force = true) => {
        const compareBlock = currentTarget.closest(".compare-block");
        const currentSpan = compareBlock.querySelector("span");
        toggleClass(currentSpan, "show", force);
        if (currentSpan.className.indexOf("show") > -1) {
            currentSpan.setAttribute("aria-hidden", "false");
        } else {
            currentSpan.setAttribute("aria-hidden", "true");
        }
    };


compareBtns.forEach((button) => toggleSpan(button, false));
[ExtensionOf(classStr(WorkflowWorkItemActionManager))]
final class WorkflowWorkItemActionManagerHR_Extension
{
    public void run()
    {
        if(args.dataset() == tableNum(NW_PermGatePass))
        {
            NW_PermGatePass PermGatePass;
            select PermGatePass where PermGatePass.RecId==args.record().RecId;
            if(PermGatePass.WorkflowState == TradeWorkflowState::PendingApproval)
            {
                str currentStepName = NW_Helper::currentStep(PermGatePass.RecId, PermGatePass.TableId);

                if(HRMParameters::find().PublicRelationStep == currentStepName)
                {
                    NW_PermGatePass_PGP PGP;
                    select PGP where PGP.NWHR_PermGatePassRec == PermGatePass.RecId;
                    if(!PGP.PGP1 || !PGP.ForwardTo || !PGP.Palace || !PGP.PermitStartDate || !PGP.PermitEndDate)
                        throw error("Public Relation Fields must be fill in");
                }
                if(HRMParameters::find().AdministrativeCommunicationStep == currentStepName)
                {
                    if(!PermGatePass.ExportNbr || PermGatePass.Decision == NoYes::No || !PermGatePass.Note)
                        throw error("Administrative Communication Fields must be fill in");
                }
            }
        }
        next run();
    }

}
public display Description currentStep()
{
    WorkflowTrackingTable             trackingTable;
    WorkflowTrackingStatusTable       trackingStatusTable;

    select RecId, User,Name, CreatedDateTime from trackingTable
    order by CreatedDateTime desc where
     trackingTable.TrackingType == WorkflowTrackingType::Creation &&
     trackingTable.TrackingContext == WorkflowTrackingContext::Step
    join trackingStatusTable
    where trackingTable.WorkflowTrackingStatusTable == trackingStatusTable.RecId &&
        trackingStatusTable.ContextRecId == this.RecId &&
        trackingStatusTable.ContextTableId == this.TableId;

    return trackingTable.Name;

}
  function summaryRanges(nums: number[]): string[] {
    if (nums.length === 0) return [];

    let answer: string[] = [];
    let start = nums[0];

    for (let i = 1; i <= nums.length; i++) {
      if (i === nums.length || nums[i] !== nums[i - 1] + 1) {
        if (start === nums[i - 1]) {
          answer.push(`${start}`);
        } else {
          answer.push(`${start}->${nums[i - 1]}`);
        }

        if (i < nums.length) {
          start = nums[i];
        }
      }
    }

    return answer;
  }
@media (max-width:1600px) { }

@media (max-width:1399px) { }

@media (max-width:1169px) { }

@media (max-width:1024px) { }

@media (max-width:991px) { }

@media (max-width:767px) {

}

@media (max-width:479px) {
}
const {data} = await axios.post('https://httpbin.org/post', {
    firstName: 'Fred',
    lastName: 'Flintstone',
    orders: [1, 2, 3],
    photo: document.querySelector('#fileInput').files
  }, {
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  }
)
<style>
.hov-text-img {
    height: 500px;
}

#hov-box-text {
    display: none;
    transform: translateY(0);
    /* Initial position */
    transition: transform 0.3s ease;
}

#hov-box-heading {
    transform: translateY(0);
    /* Initial position */
    transition: transform 0.3s ease;
}

.hov-text-img:hover #hov-box-text {
    display: block;
    transform: translateY(-10px);
}

.hov-text-img:hover #hov-box-heading {
    transform: translateY(-10px);
}

.hov-text-img {
    position: relative
}

.hov-text {
    position: absolute;
    bottom: -14%;
    transition: 0.3s all;
    border-radius: 30px;
    background: linear-gradient(0deg, #000 0%, rgba(102, 102, 102, 0.00) 95.6%);
    left: 0;
    width: 100% !important;
    margin: 0 auto;
    padding: 7rem 1.2rem 0;
    display: flex
;
    justify-content: end;
    align-items: center;
}

.hov-text-img {
    overflow: hidden;
    position: relative;
}

.hov-text-img .elementor-widget-container {
    border-radius: 30px !important;
}

.hov-text-img .elementor-widget-wrap.elementor-element-populated {
    overflow: hidden;
}

.hov-text-img .hov-text h3 {
    color: #fff !important;
    font-size: 22px;
    margin: 0 !important;
    font-weight: 600;
    white-space: nowrap;
}

.hov-text-img .hov-text p {
    height: 100%;
    min-height: 110px;
    transition: 0.3s all;
    transform: translateY(60px);
}
.hov-text-img:hover .hov-text p {
    transform: translateY(10px);
}

.hov-text-img:hover .hov-text {
    bottom: 0%;
    padding: 23rem 1.2rem 0;
}

.hov-text-img {
    overflow: hidden;
}
@media (max-width:768px) {
    .hov-text-img .hov-text h3 {
    color: #fff !important;
    font-size: 20px;
    margin: 0 !important;
    font-weight: 600;
    white-space: nowrap;
}
}

</style>
openssl enc -aes-256-cbc -salt -in codigo.js -out codigo_cifrado.js.enc

openssl enc -aes-256-cbc -d -in codigo_cifrado.js.enc -out codigo_descifrado.js

openssl req -x509 -newkey rsa:3072 -keyout [name]_key.pem -out [name]_cert.pem -days 730 -nodes

# Netsuite ESS256
openssl req -new -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -nodes -days 730 -out [fileName]_cert.pem -keyout [fileName]_key.pem
package com.infonow.crux.dao.orm.hibernate;

import com.infonow.crux.*;
import com.infonow.crux.dao.DaoException;
import com.infonow.crux.dao.InowProfileCustomerDao;
import com.infonow.crux.dao.OrchestrationInserts;
import com.infonow.crux.dao.jdbc.mapper.InowProfileRowMapper;
import com.infonow.crux.impl.ClassificationTypeImpl;
import com.infonow.crux.impl.CountryImpl;
import com.infonow.crux.impl.CustomerImpl;
import com.infonow.crux.impl.InowProfileImpl;
import com.infonow.crux.learning.LearnedName;
import com.infonow.crux.query.PagedQueryResult;
import com.infonow.crux.svcClient.InowProfileCountryCode;
import com.infonow.crux.svcClient.InowProfileCustomerType;
import com.infonow.framework.util.spring.*;
import java.sql.*;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.*;
import org.mockito.*;
import org.springframework.jdbc.core.*;
import org.springframework.jdbc.core.namedparam.*;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import org.springframework.transaction.support.DefaultTransactionStatus;
import org.springframework.transaction.support.TransactionTemplate;

import javax.sql.DataSource;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.*;

import static org.junit.Assert.*;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.Mockito.*;

public class InowProfileDaoTest
{

    @Mock
    private JdbcTemplateProxy jdbcTemplate;
    
    @Mock
    private NamedParameterJdbcTemplateProxy namedParameterJdbcTemplate;

    @Mock
    private CountryDao countryDao;

    @Mock
    private DataSource dataSource;

    @Mock
    private PlatformTransactionManager platformTransactionManager;

    @Mock
    private TransactionTemplate transactionTemplate;

    @InjectMocks
    private InowProfileDao inowProfileDao;

    private InowProfileDao.ComponentSubSegmentationRowMapper rowMapper;

    @Before
    public void setUp()
    {
        MockitoAnnotations.initMocks(this);
        when(jdbcTemplate.getDataSource()).thenReturn(dataSource);
    }

    @Test
    public void testNextId()
    {
        List<Long> mockIdList = new ArrayList<Long>(); // A valid list of Longs
        
        mockIdList.add(1L);
        mockIdList.add(2L);
        mockIdList.add(3L);
        when(jdbcTemplate.queryForList(anyString(), any(), eq(Long.class)))
        .thenReturn(mockIdList);
        
        Long nextId = inowProfileDao.nextId();
        assertNotNull(nextId);
    }

    @Test
    public void testCreateIdentifier()
    {
        String identifier = inowProfileDao.createIdentifier(1L);
        assertNotNull(identifier);
        assertEquals("INOW-00000000000001", identifier);
    }

    @Test
    public void testGetInowProfiles() throws DaoException
    {
        List<String> identifiers = Arrays.asList("INOW-12345");
        String customerId = "customer1";
        InowProfile inowProfile = new InowProfileImpl();
        inowProfile.setIdentifier("INOW-12345");
        List<InowProfile> inowProfiles = Arrays.asList(inowProfile);
        when(jdbcTemplate.query(anyString(), any(Object[].class),
            any(RowMapper.class))).thenReturn(inowProfiles);

        Map<String, InowProfile> result = inowProfileDao.
            getInowProfiles(identifiers, customerId);
        assertNotNull(result);
        assertEquals(1, result.size());
        assertEquals(inowProfile, result.get("INOW-12345"));
    }

    @Test
    public void testGetBySid()
    {
        Long sid = 1L;
        InowProfile inowProfile = new InowProfileImpl();
        inowProfile.setSid(sid);
        List<InowProfile> inowProfiles = Arrays.asList(inowProfile);
        when(jdbcTemplate.query(anyString(), any(Object[].class),
            any(RowMapper.class))).thenReturn(inowProfiles);

        InowProfile result = inowProfileDao.getBySid(sid);
        assertNotNull(result);
        assertEquals(inowProfile, result);

        sid = null;
        assertNull(inowProfileDao.getBySid(sid));

        sid = -1L;
        assertNull(inowProfileDao.getBySid(sid));
    }

    @Test
    public void testFindById()
    {
        String id = "INOW-00000000010002";
        InowProfile inowProfile = new InowProfileImpl();
        inowProfile.setIdentifier(id);
        List<InowProfile> inowProfiles = Arrays.asList(inowProfile);
        when(jdbcTemplate.query(anyString(), any(Object[].class),
            any(RowMapper.class))).thenReturn(inowProfiles);

        InowProfile result = inowProfileDao.findById(id);
        assertNotNull(result);
        assertEquals(inowProfile, result);

        id = "";
        assertNull(inowProfileDao.findById(id));
    }

    @Test
    public void testFindWhereIndividualIsNull() throws SQLException
    {
        com.infonow.crux.dao.InowProfileDao.InowProfileResultHandler
            resultHandler = mock(
            com.infonow.crux.dao.InowProfileDao.
                InowProfileResultHandler.class);
        
        // Mock ResultSet and ResultSetMetaData
        ResultSet rs = mock(ResultSet.class);
        ResultSetMetaData metaData = mock(ResultSetMetaData.class);
        
        // Mock ResultSetMetaData behavior
        when(metaData.getColumnCount()).thenReturn(3); // Adjust based on actual column count
        when(metaData.getColumnName(1)).thenReturn("ENTITY_NAME");
        when(metaData.getColumnName(2)).thenReturn("SID");
        when(metaData.getColumnName(3)).thenReturn("CLASSIFICATION_TYPE_SID");
        when(rs.getMetaData()).thenReturn(metaData);
        
        // Mock ResultSet behavior
        when(rs.getString("ENTITY_NAME")).thenReturn("BASE REGISTERAPI");
        when(rs.getLong("SID")).thenReturn(10001L);
        when(rs.getLong("CLASSIFICATION_TYPE_SID")).thenReturn(15L);
    
        doAnswer(invocation -> {
            InowProfileRowMapper mapper = new InowProfileRowMapper();
            InowProfile inowProfile = (InowProfile) mapper.mapRow(rs, 1);
            resultHandler.onResult(inowProfile);
            return null;
        }).when(jdbcTemplate).query(anyString(), any(RowCallbackHandler.class));


        inowProfileDao.findWhereIndividualIsNull(resultHandler);
        verify(resultHandler, times(1)).onResult(any(InowProfile.class));
    }

    @Test
    public void testUpdateIndividualAndClassification()
    {
        List<InowProfile> inowProfiles = new ArrayList<>();
        InowProfile inowProfile = new InowProfileImpl();
        inowProfile.setSid(1L);
        inowProfiles.add(inowProfile);

        inowProfileDao.updateIndividualAndClassification(inowProfiles);
        verify(jdbcTemplate, times(1)).batchUpdate(anyString(),
            any(BatchPreparedStatementSetter.class));
    }

    @Test
    public void testGetRandomInowProfile()
    {
        InowProfile inowProfile = new InowProfileImpl();
        List<InowProfile> inowProfiles = Arrays.asList(inowProfile);
        when(jdbcTemplate.query(anyString(), any(RowMapper.class)))
            .thenReturn(inowProfiles);

        InowProfile result = inowProfileDao.getRandomInowProfile();
        assertNotNull(result);
        assertEquals(inowProfile, result);
    }

    @Test
    public void testGetRecordCountForSearch() throws DaoException
    {
        when(jdbcTemplate.queryForObject(anyString(), eq(Integer.class))).thenReturn(1);
        int count = inowProfileDao.getRecordCountForSearch(
            "INOW-00000000010002", "BASE REGISTERAPI", "Test Street 1",
            "TestStreet2", "Test City", "Test State Province",
            "Test Postal Code", "Test Country", false);

        assertNotNull(count);

        assertNull(inowProfileDao.getRecordCountForSearch("", "", "", "", "",
            "", "", "", false));

        int countWithoutId = inowProfileDao.getRecordCountForSearch("",
            "BASE REGISTERAPI", "", "", "", "", "", "", false);

        assertNotNull(countWithoutId);

        int countWithStreet1 = inowProfileDao.getRecordCountForSearch("",
            "", "street1", "", "", "", "", "", false);

        assertNotNull(countWithStreet1);

        int countWithStreet2 = inowProfileDao.getRecordCountForSearch("",
            "", "", "street2", "", "", "", "", false);

        assertNotNull(countWithStreet2);

        int countWithCity = inowProfileDao.getRecordCountForSearch("",
            "", "", "", "city", "", "", "", false);

        assertNotNull(countWithCity);

        int countWithStateProvince = inowProfileDao.getRecordCountForSearch("",
            "", "", "", "", "stateProvince", "", "", false);

        assertNotNull(countWithStateProvince);

        int countWithPostalCode = inowProfileDao.getRecordCountForSearch("",
            "", "", "", "", "", "postalCode", "", false);

        assertNotNull(countWithPostalCode);

        int countWithCountry = inowProfileDao.getRecordCountForSearch("",
            "", "", "", "", "", "", "country", false);

        assertNotNull(countWithCountry);
    }

    @Test
    public void testFindByWildcard() throws DaoException
    {
        List<InowProfile> inowProfiles = new ArrayList<>();
        InowProfile inowProfile = new InowProfileImpl();
        inowProfiles.add(inowProfile);
        when(jdbcTemplate.query(anyString(), any(Object[].class),
            any(RowMapper.class))).thenReturn(inowProfiles);

        List<InowProfile> result = inowProfileDao.findByWildcard("id",
            "name", "street1", "street2", "city", "state", "postal",
            "country", false, 0, 10);

        assertNotNull(result);
        assertEquals(1, result.size());
        assertEquals(inowProfile, result.get(0));
        assertNull(inowProfileDao.findByWildcard("", "", "", "", "",
            "", "", "", false, 0, 10));

        List<InowProfile> resultwithNegativePageStart = inowProfileDao.
            findByWildcard("id", "name", "street1", "street2",
                "city", "state", "postal", "country", false, -1, 10);

        assertNotNull(resultwithNegativePageStart);

        List<InowProfile> resultwithNameWildCard = inowProfileDao.findByWildcard(
            "", "name", "", "", "", "", "", "", false, 1, 10);

        assertNotNull(resultwithNameWildCard);

        List<InowProfile> resultwithStreet1WildCard = inowProfileDao.
            findByWildcard("", "", "Street1", "", "", "", "", "", false,
                1, 10);

        assertNotNull(resultwithStreet1WildCard);

        List<InowProfile> resultwithStreet2WildCard = inowProfileDao.
            findByWildcard("", "", "", "Street2", "", "", "", "", false, 1,
                10);

        assertNotNull(resultwithStreet2WildCard);

        List<InowProfile> resultwithCityWildCard = inowProfileDao.
            findByWildcard("", "", "", "", "city", "", "", "", false, 1,
                10);

        assertNotNull(resultwithCityWildCard);

        List<InowProfile> resultwithStateProvinceWildCard = inowProfileDao.
            findByWildcard("", "", "", "", "", "stateProvince", "", "", false, 1, 10);

        assertNotNull(resultwithStateProvinceWildCard);

        List<InowProfile> resultwithPostalCodeWildCard = inowProfileDao.
            findByWildcard("", "", "", "", "", "",
                "postalCode", "", false, 1, 10);

        assertNotNull(resultwithPostalCodeWildCard);

        List<InowProfile> resultwithCountryWildCard = inowProfileDao.
            findByWildcard("", "", "", "", "", "", "",
                "Country", false, 1, 10);

        assertNotNull(resultwithCountryWildCard);
    }

    @Test
    public void testUpdateCountries() throws DaoException
    {

        List<InowProfileCountryCode> inowProfileCountryCodes = new ArrayList<>();
        InowProfileCountryCode inowProfileCountryCode = new
            InowProfileCountryCode(10002L, "US");
        inowProfileCountryCodes.add(inowProfileCountryCode);

        DefaultTransactionStatus transactionStatus =
            mock(DefaultTransactionStatus.class);

        when(platformTransactionManager.getTransaction
            (any(DefaultTransactionDefinition.class))).thenReturn
            (transactionStatus);

        when(transactionTemplate.getTransactionManager()).
            thenReturn(platformTransactionManager);

        inowProfileDao.updateCountries(inowProfileCountryCodes);

        verify(jdbcTemplate, times(3)).
            batchUpdate(anyString(), any(BatchPreparedStatementSetter.class));

        verify(platformTransactionManager, times(1)).
            commit(transactionStatus);
    }

    @Test
    public void testUpdateGrade() throws DaoException
    {
        when(namedParameterJdbcTemplate.update(anyString(), any(Map.class))).thenReturn(1);

        inowProfileDao.updateGrade(10002L, 90L);

        verify(namedParameterJdbcTemplate, times(1)).update(anyString(), any(Map.class));
    }

    @Test
    public void testUpdateGradeAndIsValidFields() throws DaoException
    {
        when(jdbcTemplate.update(anyString(), any(Object[].class))).thenReturn(1);
        inowProfileDao.updateGradeAndIsValidFields(10002L, 80L, true,
            true, true);
        verify(jdbcTemplate, times(1)).update(
            eq("update inow_profile set grade = ?, update_date = sysdate, " +
                "valid_postalcode = ?, valid_stateprovince = ?, " +
                "valid_city = ?  where sid = ? "),
            eq(new Object[] { 80L, 1, 1, 1, 10002L })
        );
    }

    @Test
    public void testUpdateAddressFields()
    {
        InowProfile inowProfile = new InowProfileImpl();
        inowProfile.setSid(3616L);
        inowProfile.setName("Test Name");
        inowProfile.setStreet1("Street 1");
        inowProfile.setStreet2("Street 2");
        inowProfile.setCity("City");
        inowProfile.setStateProvince("State");
        inowProfile.setStateProvinceCode("SPC");
        inowProfile.setPostalCode("Postal");
        inowProfile.setValidPostalCode(true);
        inowProfile.setValidStateProvince(true);
        inowProfile.setValidCity(true);
        inowProfile.setCountry("Country");
        inowProfile.setCountryObject(new CountryImpl());

        when(jdbcTemplate.update(anyString(), any(Object[].class))).
            thenReturn(1);
        int result = inowProfileDao.updateAddressFields(inowProfile);
        assertEquals(1, result);
    }

    @Test
    public void testFindUnclassified() throws DaoException
    {
        List<Customer> customers = new ArrayList<>();
        Customer customer = new CustomerImpl(2L, "QCOM");
        customers.add(customer);

        List<InowProfile> inowProfiles = new ArrayList<>();
        InowProfile inowProfile = new InowProfileImpl();
        inowProfile.setSid(1L);
        inowProfile.setName("BASE REGISTERAPI");
        inowProfiles.add(inowProfile);

        when(jdbcTemplate.query(anyString(), any(Object[].class),
            any(RowMapper.class))).thenReturn(inowProfiles);

        PagedQueryResult<InowProfile> result = inowProfileDao.
            findUnclassified(customers, 0, 10, "NAME", true);
        result.setTotalCount(result.getItems().size());
        assertNotNull(result);
        assertEquals(1, result.getTotalCount());
    }

    @Test
    public void testFindUnclassifiedNegativePageStart() throws DaoException
    {
        List<Customer> customers = new ArrayList<>();
        Customer customer = new CustomerImpl(2L, "QCOM");
        customers.add(customer);

        List<InowProfile> inowProfiles = new ArrayList<>();
        InowProfile inowProfile = new InowProfileImpl();
        inowProfile.setSid(1L);
        inowProfile.setName("BASE REGISTERAPI");
        inowProfiles.add(inowProfile);

        when(jdbcTemplate.query(anyString(), any(Object[].class),
            any(RowMapper.class))).thenReturn(inowProfiles);

        PagedQueryResult<InowProfile> result = inowProfileDao.
            findUnclassified(customers, -1, 10, "NAME", true);
        result.setTotalCount(result.getItems().size());
        assertNotNull(result);
        assertEquals(1, result.getTotalCount());
    }

    @Test
    public void testFindUnclassifiedNegativePageEnd() throws DaoException
    {
        List<Customer> customers = new ArrayList<>();
        Customer customer = new CustomerImpl(2L, "QCOM");
        customers.add(customer);

        List<InowProfile> inowProfiles = new ArrayList<>();
        InowProfile inowProfile = new InowProfileImpl();
        inowProfile.setSid(1L);
        inowProfile.setName("BASE REGISTERAPI");
        inowProfiles.add(inowProfile);

        when(jdbcTemplate.query(anyString(), any(Object[].class),
            any(RowMapper.class))).thenReturn(inowProfiles);

        PagedQueryResult<InowProfile> result = inowProfileDao.
            findUnclassified(customers, 0, -200, "NAME", true);
        result.setTotalCount(result.getItems().size());
        assertNotNull(result);
        assertEquals(1, result.getTotalCount());
    }

    @Test
    public void testGetClassifiedEntityCount() throws DaoException
    {
        when(jdbcTemplate.queryForObject(anyString(), eq(Integer.class))).
            thenReturn(1);
        int count = inowProfileDao.getClassifiedEntityCount();
        assertNotNull(count);
        assertTrue(count >= 0);
    }

    @Test
    public void testGetClassifiedEntityCountByCode() throws DaoException
    {
        when(jdbcTemplate.queryForObject(anyString(), eq(Integer.class),
            any(Object[].class))).thenReturn(1);
        Integer count = inowProfileDao.
            getClassifiedEntityCount("DESIGN SERVICES");
        assertNotNull(count);
    }

    @Test
    public void testGetClassifications() throws DaoException
    {
        List<ClassificationType> classificationTypes = new ArrayList<>();
        ClassificationType classificationType = new ClassificationTypeImpl
            (15L, "DESIGN SERVICESs", "Design Services");
        classificationTypes.add(classificationType);

        when(jdbcTemplate.query(anyString(), any(RowMapper.class))).
            thenReturn(classificationTypes);

        List<ClassificationType> result = inowProfileDao.getClassifications();
        assertNotNull(result);
        assertEquals(1, result.size());
        assertEquals(classificationType, result.get(0));
    }

    @Test
    public void testGetClassificationType() throws DaoException
    {
        InowProfile inowProfile = new InowProfileImpl();
        inowProfile.setSid(1L);

        ClassificationType classificationType = new ClassificationTypeImpl();
        List<ClassificationType> classificationTypes = Arrays.
            asList(classificationType);

        when(jdbcTemplate.query(anyString(), any(Object[].class),
            any(RowMapper.class))).thenReturn(classificationTypes);

        ClassificationType result = inowProfileDao.
            getClassificationType(inowProfile);
        assertNotNull(result);
        assertEquals(classificationType, result);
    }

    @Test
    public void testGetClassificationTypeByCode() throws DaoException
    {
        ClassificationType classificationType = new ClassificationTypeImpl();
        List<ClassificationType> classificationTypes = Arrays.
            asList(classificationType);

        when(jdbcTemplate.query(anyString(), any(Object[].class),
            any(RowMapper.class))).thenReturn(classificationTypes);

        ClassificationType result = inowProfileDao.
            getClassificationTypeByCode("code");
        assertNotNull(result);
        assertEquals(classificationType, result);
    }

    @Test
    public void testFindClassified() throws DaoException
    {
        List<InowProfile> inowProfiles = new ArrayList<>();
        InowProfile inowProfile = new InowProfileImpl();
        inowProfiles.add(inowProfile);

        when(jdbcTemplate.query(anyString(), any(Object[].class),
            any(RowMapper.class))).thenReturn(inowProfiles);

        List<InowProfile> result = inowProfileDao.findClassified(0, 10,
            "CITY", true);
        assertNotNull(result);
        assertEquals(1, result.size());
        assertEquals(inowProfile, result.get(0));
    }

    @Test
    public void testClassify() throws DaoException
    {
        List<InowProfileCustomerType> customerTypes = new ArrayList<>();
        InowProfileCustomerType customerType = new InowProfileCustomerType();
        customerType.setInowProfileSid(1L);
        customerType.setCustomerType("type");
        customerTypes.add(customerType);

        when(jdbcTemplate.queryForObject(anyString(), any(Object[].class),
            eq(String.class))).thenReturn("type");

        List<Long> result = inowProfileDao.classify(customerTypes);
        assertNotNull(result);
        assertEquals(1, result.size());
        assertEquals((Long) 1L, result.get(0));
    }

    @Test
    public void testSaveR2rReporter() throws DaoException
    {
        InowProfile inowProfile = new InowProfileImpl();
        inowProfile.setSid(1L);

        when(jdbcTemplate.update(anyString(), any(Object[].class))).
            thenReturn(1);

        inowProfileDao.saveR2rReporter(inowProfile, "value");

        verify(jdbcTemplate, times(1)).update(anyString(),
            any(Object[].class));
    }

    @Test
    public void testGetBySalesLineItemAndAddressType() throws DaoException
    {
        InowProfile inowProfile = new InowProfileImpl();
        List<InowProfile> inowProfiles = Arrays.asList(inowProfile);

        when(jdbcTemplate.query(anyString(), any(Object[].class),
            any(RowMapper.class))).thenReturn(inowProfiles);

        InowProfile result = inowProfileDao.getBySalesLineItemAndAddressType
            ("CTH", 1L, "SOLD TO");
        assertNotNull(result);
        assertEquals(inowProfile, result);

        assertThrows(DaoException.class, () -> inowProfileDao.
            getBySalesLineItemAndAddressType("", 1L, "SOLD TO"));

        assertThrows(DaoException.class, () -> inowProfileDao.
            getBySalesLineItemAndAddressType("CTH", -1L, "SOLD TO"));

        assertThrows(DaoException.class, () -> inowProfileDao.
            getBySalesLineItemAndAddressType("CTH", 1L, ""));
    }

    @Test
    public void testDeleteDuplicate() throws DaoException
    {
        InowProfile inowProfile = new InowProfileImpl();
        inowProfile.setIdentifier("10002");

        when(namedParameterJdbcTemplate.update(anyString(), any(Map.class))).thenReturn(1);

        inowProfileDao.deleteDuplicate(inowProfile);
        verify(namedParameterJdbcTemplate, times(1)).update(anyString(), any(Map.class));
    }

    @Test
    public void testSaveDuplicate() throws DaoException
    {
        InowProfile inowProfile = new InowProfileImpl();
        inowProfile.setIdentifier("INOW-12345");
        InowProfile duplicateInowProfile = new InowProfileImpl();
        duplicateInowProfile.setIdentifier("INOW-54321");

        Map<InowProfile, List<InowProfile>> inowProfileDuplicateMap =
            new HashMap<>();
        List<InowProfile> duplicates = new ArrayList<>();
        duplicates.add(duplicateInowProfile);
        inowProfileDuplicateMap.put(inowProfile, duplicates);

        when(jdbcTemplate.batchUpdate(anyString(),
            any(BatchPreparedStatementSetter.class))).thenReturn(new int[] { 1 });

        inowProfileDao.saveDuplicate(inowProfileDuplicateMap, true);

        verify(jdbcTemplate, times(1)).batchUpdate(anyString(),
            any(BatchPreparedStatementSetter.class));

        inowProfileDao.saveDuplicate(inowProfileDuplicateMap, false);

        verify(jdbcTemplate, atLeastOnce()).batchUpdate(anyString(),
            any(BatchPreparedStatementSetter.class));
    }

    @Test
    public void testGetCount() throws DaoException
    {
        when(jdbcTemplate.queryForObject(anyString(), eq(Integer.class))).
            thenReturn(1);
        Integer count = inowProfileDao.getCount();
        assertNotNull(count);
    }

    @Test
    public void testGetRecords() throws DaoException
    {
        List<InowProfile> inowProfiles = new ArrayList<>();
        InowProfile inowProfile = new InowProfileImpl();
        inowProfile.setName("D&H CANADAAAAA");
        inowProfile.setStreet1("255 COURTNEY PARK DRIVE W");
        inowProfile.setStreet2("SUITE 101");
        inowProfile.setCity("MISSISSAUGA");
        inowProfile.setStateProvince("ONTARIO");
        inowProfile.setPostalCode("L5W 0A5");
        inowProfiles.add(inowProfile);

        when(jdbcTemplate.query(anyString(), any(Object[].class),
            any(RowMapper.class))).thenReturn(inowProfiles);

        List<InowProfile> result = inowProfileDao.getRecords(0, 10);
        assertNotNull(result);
        assertEquals(1, result.size());
        assertEquals(inowProfile, result.get(0));
    }

    @Test
    public void testFindByFields()
    {
        InowProfile inowProfile = new InowProfileImpl();
        ClassificationType classificationType =
            new ClassificationTypeImpl(15L, "DESIGN SERVICES",
                "Design Services");
        inowProfile.setName("BASE REGISTERAPI");
        inowProfile.setClassificationType(classificationType);
        
        when(namedParameterJdbcTemplate.queryForList(anyString(), any(Map.class),
            eq(String.class))).thenReturn(Arrays.asList("INOW-12345"));
        
        String result = inowProfileDao.findByFields(inowProfile, true);
        assertNotNull(result);
        assertEquals("INOW-12345", result);
    }

    @Test
    public void testFindExactAddressDupes()
    {
        InowProfile inowProfile = new InowProfileImpl();
        inowProfile.setName("Test Name");
        inowProfile.setStreet1("Street 1");
        inowProfile.setStreet2("Street 2");
        inowProfile.setCity("City");
        inowProfile.setStateProvince("State");
        inowProfile.setPostalCode("Postal");
        inowProfile.setCountry("Country");

        List<InowProfile> inowProfiles = new ArrayList<>();
        inowProfiles.add(inowProfile);

        when(jdbcTemplate.query(anyString(), any(Object[].class),
            any(RowMapper.class))).thenReturn(inowProfiles);

        List<InowProfile> result = inowProfileDao.
            findExactAddressDupes(inowProfile);
        assertNotNull(result);
        assertEquals(1, result.size());
        assertEquals(inowProfile, result.get(0));
    }

    @Test
    public void testFindByFieldsWithNullResults()
    {
        InowProfile inowProfile = new InowProfileImpl();
        inowProfile.setName("D&H CANADAAAAA");
        inowProfile.setStreet1("255 COURTNEY PARK DRIVE W");
        inowProfile.setStreet2("SUITE 101");
        inowProfile.setCity("MISSISSAUGA");
        inowProfile.setStateProvince("ONTARIO");
        inowProfile.setPostalCode("L5W 0A5");

        when(jdbcTemplate.queryForList(anyString(), any(Map.class),
            eq(String.class))).thenReturn(Collections.emptyList());

        String result = inowProfileDao.findByFields(inowProfile, true);
        assertNull(result);
    }

    @Test
    public void testFindByFieldsWithException()
    {
        InowProfile inowProfile = new InowProfileImpl();
        inowProfile.setName("Illegal Argument");

        when(namedParameterJdbcTemplate.queryForList(anyString(), any(Map.class),
            eq(String.class))).thenThrow(new RuntimeException("Database error"));

        assertThrows(RuntimeException.class, () -> inowProfileDao.
            findByFields(inowProfile, true));
    }

    @Test
    public void testFindClassificationType()
    {
        String code = "Code";
        
        List<ClassificationType> classificationTypes = new ArrayList<>();
        classificationTypes.add(new ClassificationTypeImpl(1L, "CT01", "Test Classification"));
        
        when(jdbcTemplate.query(anyString(), any(Object[].class),
            any(RowMapper.class))).thenReturn(classificationTypes);
        
        assertNotNull(inowProfileDao.findClassificationType(code));
        
        List<ClassificationType> classificationTypesMultiple = new ArrayList<>();
        
        classificationTypesMultiple.add(new ClassificationTypeImpl(1L, "CT01", "Test Classification"));
        
        classificationTypesMultiple.add(new ClassificationTypeImpl(2L, "CT02", "Test Classification 2"));
        
        when(jdbcTemplate.query(anyString(), any(Object[].class),
            any(RowMapper.class))).thenReturn(classificationTypesMultiple);
        
        ClassificationType classificationType = inowProfileDao.findClassificationType(code);
        
        assertEquals(classificationTypesMultiple.get(0), classificationType);
    }

    @Test
    public void testFindComponentSegmentation()
    {
        String name = "Name";
        assertNull(inowProfileDao.findComponentSegmentation(name));
    }

    @Test
    public void testFindComponentSubSegmentation()
    {
        String name = "Name";
        assertNull(inowProfileDao.findComponentSubSegmentation(name));
    }

    @Test
    public void testFindMatchedProfilesWithLearnedName()
    {
        LearnedName learnedName = new LearnedName("fromName", "toName");
        assertTrue(inowProfileDao.findMatchedProfilesWithLearnedName(learnedName).isEmpty());
    }

    @Test
    public void testCreateInfoNowId()
    {
        InowProfile inowProfile = new InowProfileImpl();
        String id = "12345";
        String expectedInfoNowId = "INOW-00000000012345";
        inowProfile.setIdentifier(expectedInfoNowId);
        inowProfile.setSid(1L);

        assertThrows(DaoException.class, () -> inowProfileDao.
            createInfoNowId(inowProfile));

        assertNotNull(inowProfile.getIdentifier());
        assertEquals(expectedInfoNowId, inowProfile.getIdentifier());
    }

    @Test
    public void testCreateInfoNowIdNull()
    {
        InowProfile inowProfile = null;
        assertThrows(IllegalArgumentException.class, () -> inowProfileDao.
            createInfoNowId(inowProfile));
    }

    @Test
    public void testSetInowProfileCustomerDao()
    {
        InowProfileCustomerDao inowProfileCustomerDao =
            mock(InowProfileCustomerDao.class);
        inowProfileCustomerDao.createInowProfileCustomer(1L, 1L);
        inowProfileDao.setInowProfileCustomerDao(inowProfileCustomerDao);

        assertNotNull(inowProfileDao.getInowProfileCustomerDao());
        assertEquals(inowProfileCustomerDao, inowProfileDao.
            getInowProfileCustomerDao());
    }

    @Test
    public void testSetOrchestrationDao()
    {
        OrchestrationInserts inowProfileOrchestrationDao =
            mock(OrchestrationInserts.class);
        inowProfileOrchestrationDao.insert(1L);

        inowProfileDao.setOrchestrationDao(inowProfileOrchestrationDao);
        assertNotNull(inowProfileDao.getOrchestrationDao());
        assertEquals(inowProfileOrchestrationDao, inowProfileDao.
            getOrchestrationDao());
    }
    
    @Test
    public void testBulkInsert() throws SQLException
    {
        PreparedStatement preparedStatement = mock(PreparedStatement.class);

        InowProfile inowProfileNegativeSid = new InowProfileImpl();
        inowProfileNegativeSid.setName("D&H CANADAAAAA");
        inowProfileNegativeSid.setStreet1("255 COURTNEY PARK DRIVE W");
        inowProfileNegativeSid.setStreet2("SUITE 101");
        inowProfileNegativeSid.setCity("MISSISSAUGA");
        inowProfileNegativeSid.setStateProvince("ONTARIO");
        inowProfileNegativeSid.setPostalCode("L5W 0A5");
        inowProfileNegativeSid.setSid(-1L);
        inowProfileNegativeSid.setIdentifier("1");

        InowProfile inowProfileEmptyIdentifier = new InowProfileImpl();
        inowProfileEmptyIdentifier.setSid(2L);
        inowProfileEmptyIdentifier.setName("Test Name 2");
        inowProfileEmptyIdentifier.setStreet1("Street 3");
        inowProfileEmptyIdentifier.setStreet2("Street 4");
        inowProfileEmptyIdentifier.setCity("City 2");
        inowProfileEmptyIdentifier.setStateProvince("State 2");
        inowProfileEmptyIdentifier.setPostalCode("Postal 2");
        inowProfileEmptyIdentifier.setCountry("Country 2");
        inowProfileNegativeSid.setIdentifier("");

        List<InowProfile> values = Arrays.asList(inowProfileNegativeSid,
            inowProfileEmptyIdentifier);
        InowProfileDao.BulkInsert bulkInsert =
            inowProfileDao.new BulkInsert(values);
        
        List<Long> mockIdList = new ArrayList<Long>(); // A valid list of Longs
        
        mockIdList.add(1L);
        mockIdList.add(2L);
        mockIdList.add(3L);
        
        when(jdbcTemplate.
            queryForList(anyString(), any(), eq(Long.class))).thenReturn(mockIdList);
        for (InowProfile inowProfile : values)
        {
            bulkInsert.setValues(preparedStatement, inowProfile);
        }

        verify(preparedStatement, atLeastOnce()).setObject(anyInt(), anyDouble());

    }

    @Test
    public void testInowProfileClassificationRowMapper_MapRow() throws SQLException
    {
        ResultSet resultSet = mock(ResultSet.class);
        when(resultSet.getString("TWO_CHAR_CODE")).thenReturn("US");
        when(resultSet.getLong("SID")).thenReturn(1L);
        when(resultSet.getString("IDENTIFIER")).
            thenReturn("INOW-00000000000001");
        when(resultSet.getString("ENTITY_NAME")).thenReturn("Test Entity");
        when(resultSet.getString("STREET_1")).thenReturn("123 Test St");
        when(resultSet.getString("STREET_2")).thenReturn("Suite 100");
        when(resultSet.getString("CITY")).thenReturn("Test City");
        when(resultSet.getString("STATEPROVINCE")).thenReturn("Test State");
        when(resultSet.getString("STATE_PROVINCE_ISO_CODE")).thenReturn("TS");
        when(resultSet.getString("POSTALCODE")).thenReturn("12345");
        when(resultSet.getString("COUNTRY")).thenReturn("Test Country");
        when(resultSet.getLong("CT_SID")).thenReturn(1L);
        when(resultSet.getString("CT_CODE")).thenReturn("CT01");
        when(resultSet.getString("CT_DESCRIPTION")).
            thenReturn("Test Classification");

        InowProfileDao.InowProfileClassificationRowMapper rowMapper = new InowProfileDao()
            .new InowProfileClassificationRowMapper();

        InowProfileImpl inowProfile = (InowProfileImpl) rowMapper.mapRow(resultSet, 1);

        assertEquals("US", inowProfile.getCountryObject().getTwoCharCode());
        assertEquals("INOW-00000000000001", inowProfile.getIdentifier());
        assertEquals("Test Entity", inowProfile.getName());
        assertEquals("123 Test St", inowProfile.getStreet1());
        assertEquals("Suite 100", inowProfile.getStreet2());
        assertEquals("Test City", inowProfile.getCity());
        assertEquals("Test State", inowProfile.getStateProvince());
        assertEquals("TS", inowProfile.getStateProvinceCode());
        assertEquals("12345", inowProfile.getPostalCode());
        assertEquals("Test Country", inowProfile.getCountry());
        assertEquals("CT01", inowProfile.getClassificationType().getCode());
        assertEquals("Test Classification", inowProfile.getClassificationType()
            .getDescription());
    }
    
    @Test
    public void testBulkUpdate() throws SQLException
    {
        PreparedStatement preparedStatement = mock(PreparedStatement.class);

        InowProfile inowProfileNegativeSid = new InowProfileImpl();
        inowProfileNegativeSid.setName("D&H CANADAAAAA");
        inowProfileNegativeSid.setStreet1("255 COURTNEY PARK DRIVE W");
        inowProfileNegativeSid.setStreet2("SUITE 101");
        inowProfileNegativeSid.setCity("MISSISSAUGA");
        inowProfileNegativeSid.setStateProvince("ONTARIO");
        inowProfileNegativeSid.setPostalCode("L5W 0A5");
        inowProfileNegativeSid.setSid(-1L);
        inowProfileNegativeSid.setIdentifier("1");

        InowProfile inowProfileEmptyIdentifier = new InowProfileImpl();
        inowProfileEmptyIdentifier.setSid(2L);
        inowProfileEmptyIdentifier.setName("Test Name 2");
        inowProfileEmptyIdentifier.setStreet1("Street 3");
        inowProfileEmptyIdentifier.setStreet2("Street 4");
        inowProfileEmptyIdentifier.setCity("City 2");
        inowProfileEmptyIdentifier.setStateProvince("State 2");
        inowProfileEmptyIdentifier.setPostalCode("Postal 2");
        inowProfileEmptyIdentifier.setCountry("Country 2");
        inowProfileNegativeSid.setIdentifier("");

        List<InowProfile> values = Arrays.asList(inowProfileNegativeSid,
            inowProfileEmptyIdentifier);
        InowProfileDao.BulkUpdate bulkUpdate = inowProfileDao.new BulkUpdate(values);

        for (InowProfile inowProfile : values)
        {
            bulkUpdate.setValues(preparedStatement, inowProfile);
        }

        verify(preparedStatement, atLeastOnce()).setObject(anyInt(), anyLong());
    }
    
    @Test
    public void testComponentSegmentationRowMapper_MapRow() throws SQLException {
        // Mock the ResultSet
        ResultSet resultSet = mock(ResultSet.class);
        when(resultSet.getLong("SID")).thenReturn(1L);
        when(resultSet.getString("NAME")).thenReturn("Test Name");
        when(resultSet.getString("DESCRIPTION")).thenReturn("Test Description");
    
        // Instantiate the RowMapper
        InowProfileDao.ComponentSegmentationRowMapper rowMapper = new InowProfileDao().new ComponentSegmentationRowMapper();
    
        // Call the mapRow method
        ComponentSegmentation result = (ComponentSegmentation) rowMapper.mapRow(resultSet, 1);
    
        // Assert the results
        assertNotNull(result);
        assertEquals(0, result.getSid().compareTo(1L));
        assertEquals("Test Name", result.getName());
        assertEquals("Test Description", result.getDescription());
    }
}
SUBSTITUTE({!EmailBody}, "<p>", "<p style='margin-top:0px; margin-bottom:0px;'>")
import data from "./data.json"; // this is the json data

// the json data looks like this

{
  "locations": {

    "brisbaneCityLibrary": {
      "name": "Brisbane City Library",
      "lat": -27.4710107,
      "lng": 153.0234489,
      "website": "https://www.brisbane.qld.gov.au/facilities-recreation/cultural/brisbane-city-library",
      "tel": "+61 7 3403 8888",
      "email": "library@brisbane.qld.gov.au",
      "category": "Library"
    },
    "goldCoastCommunityCentre": {
      "name": "GoldCoast Community Centre",
      "lat": -28.016667,
      "lng": 153.399994,
      "website": "https://www.goldcoast.qld.gov.au/community/community-centres",
      "tel": "+61 7 5667 5973",
      "email": "community@goldcoast.qld.gov.au",
      "category": "Training"
    },
  }

(function () {
  "use strict";

  // Variables
  const dummyData = data.locations; // this pulling the locations from the json data
  const checkboxesWrapper = document.querySelector(".checkers");
  const list = document.querySelector(".filtered-list");
  let filteredItems = [];
  let selectedCategories = [];

  // Get specific data needed from the API and return a new array of data
  function getListData(data) {
    if (!data) return [];
    return Object.entries(data).map(([index, item]) => ({
      name: item.name,
      category: item.category,
      web: item.website,
    }));
  }

  // Generate HTML for each item
  function itemHTML({ name, category, web }) {
    return `
      <li>
        <h3>${name}</h3>
        <p>Category: ${category}</p>
        <p>Website: <a href="${web}" target="_blank" rel="noopener noreferrer">${web}</a></p>
      </li>`;
  }

  // Generate HTML for checkboxes
  function checkboxHTML(category) {
    return `
      <label>
        <input type="checkbox" class="filter-checkbox" name="checkbox" role="checkbox" value="${category}"/>
        ${category}
      </label>`;
  }

  // Display checkboxes in the DOM
  function displayCheckBoxes(array) {
    const data = getListData(array);
    console.log(data);
    const allCategories = data.map((item) => item.category).filter(Boolean);
    const categories = [...new Set(allCategories)]; // Remove duplicates and ret

    const checkBoxHTML = categories.map(checkboxHTML).join("");
    checkboxesWrapper.innerHTML = checkBoxHTML; // Replace content
  }

  // Display items in the DOM
  function displayitems() {
    const itemData = getListData(
      filteredItems.length > 0 ? filteredItems : dummyData
    );

    const listHTML = itemData.map(itemHTML).join("");
    list.innerHTML = listHTML; // Replace content
  }

  // Check if a value exists in an array
  function isValueInArray(array, valueToCheck) {
    return array.some((item) => item === valueToCheck);
  }

  // Handle checkbox changes
  function onHandleCheck(box) {
    if (!box) return;

    box.addEventListener("change", function (e) {
      const { currentTarget } = e;
      const catValue = currentTarget.value.toLowerCase(); // Get the category value from the checkbox clicked
      const isChecked = currentTarget.checked; // Get true or false if the checkbox is clicked or not

      const isExisting = isValueInArray(selectedCategories, catValue);

      console.log({ catValue, isChecked, isExisting });

      // Add to array if checked and not already existing
      if (isChecked && !isExisting) {
        selectedCategories.push(catValue);
      }

      // Remove if unchecked and category exists
      if (!isChecked && isExisting) {
        selectedCategories = selectedCategories.filter(
          (cat) => cat !== catValue
        );
      }

      console.log({ selectedCategories });

      // Filter items based on selected categories
      filteredItems = Object.values(dummyData).filter((item) =>
        selectedCategories.includes(item.category.toLowerCase())
      );

      // Update the displayed items
      displayitems();
    });
  }

  // Initialize the application
  function init() {
    // Initially populate checkboxes based on all categories from dummyData
    displayCheckBoxes(dummyData);
    // Initially populate the list of items based on dummyData
    displayitems();

    const domCheckBoxes = document.querySelectorAll(".filter-checkbox");
    if (!domCheckBoxes) return;
    domCheckBoxes.forEach(onHandleCheck);
  }

  init();
})();
@supports (grid-template-columns: subgrid) {

  &__courses {
    display: grid;
    grid-template-columns: clamp(120px, 39vw, 180px) repeat(4, minmax(205px, 1fr));
    grid-template-rows: repeat(7, 1fr); 
    z-index: 1;
    column-gap: 1.6rem;


   @media(min-width:992px){
    display: grid;
    grid-template-columns: repeat(5,1fr); 
    grid-template-rows: repeat(7, 1fr); 
    z-index: 1;
   }

  
        .labels {
          display: grid;
          grid-template-rows: subgrid;
          grid-column: 1;
          grid-row: 1 / 8;
          align-items: left;
          text-align: right;
          font-weight: 600;
          position: sticky;
          top: 0;
          left: 0;
          background-color: $light-grey;
          z-index: 2;
          place-content: baseline;
          align-items: center;
          justify-content: end;
          justify-items: flex-end;


          > div{
            text-align: right;
            font-size:0.8rem;
            padding-right: 1rem;
            @media(min-width:992px){
              width: auto;
              text-align: right;
              font-size:1rem;
              padding-right: 0;
            }
          }

          @media (min-width: 992px) {
            position: relative;
            background-color: transparent;
           
          }

            .demand {
              grid-row: 3;
              width: max-content;
            
            }
      
            .funding {
              grid-row: 4;
            }
      
            .delivery {
              grid-row: 5;
            }
      
            .training {
              grid-row: 6;
            }
        }
    
    
      .course-items {
        display: grid;
        grid-column: 2 / -1;
        grid-template-columns: subgrid;
        grid-template-rows: subgrid;
        grid-row: 1 / 8;
        grid-auto-rows: 1fr;
    
        .course {
          display: grid;
          grid-template-columns: subgrid;
          grid-template-rows: subgrid;
          grid-template-rows: repeat(7, 1fr); 
          grid-row: 1 / -1;
          place-content: center;
          align-items: center;
          justify-content: center;
          text-align: center;

            i{
              font-size: 1.6rem;
            }

              .title{
                display: flex;
                align-self: stretch;
                grid-row: 1;
                padding: 1rem 0rem;
                border-bottom: 1px solid $orange;
              }

              .details{
                grid-row: 2;
                  button{
                    text-align: center;
                    position: relative;
                    cursor: pointer;
                    display: block;
                    background-color: transparent;
                    border: 0;
                    font-size: 0.8rem;
                    font-weight: 700;
                    margin: 0 auto;
                      &:hover{
                        text-decoration: underline;
                        text-underline-offset: 5px;
                        text-decoration-color: $orange;
                      }
                  }
              }
              .demand {
                grid-row: 3;
              }
        
              .funding {
                grid-row: 4;
              }
        
              .delivery {
                grid-row: 5;
                  p{
                    margin: 0;
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    i{
                      margin-right: 6px;
                      font-size: 1rem;
                    }
                    
                  }
              }
        
              .training {
                grid-row: 6;
                p{
                  margin: 0;
                  display: flex;
                  justify-content: center;
                  align-items: center;
                  i{
                    margin-right: 6px;
                    font-size: 1rem;
                  }
                  
                }
              }

              .courseinfo {
                grid-row: 7;
                a{
                  background-color: $light-grey;
                  padding: 10px 20px;
                  border-radius: 10px;
                  color: $navy;
                  text-decoration-color: $orange;
                  font-family: inherit;
                }
              }
        }
      }

    
  }
}
# create file with python or desired programming language (eg. python.py)

# create (pythonfile).desktop file
[Desktop Entry]
Name=(Custome_Progams_Name)
Comment=(comment)
Exec=(your commands, eg. bash -c "cd /directory/of/custPython_program && (Environment)python3 -m venv myenv && source (/dir/of/env) && pip install (modules) && python3 (pythonfile).py")
Icon=/dir/of/(pythonfile)/icon.ico
Terminal=true
Type=Application
categories=Utility;

# Copy (pythonfile).desktop to local application database
cp ~/dir/of/(pythonfile).desktop ~/.local/share/applications

# Ensure Permissions
chmod +x ~/.local/share/applications/(pythonfile).desktop

# Update system application database
update-desktop-database ~/.local/share/applications

{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":star: Happy Boost Day! :star:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Hey Toronto!\n\nCheck out today's fantastic lineup: "
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-5: Thursday, 12th December",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n:coffee: *Café Partnership*: Enjoy coffee and café-style beverages from our partner, *HotBlack Coffee*, located at 245 Queen St W, by showing your *Xero ID*. \n:lunch: *Lunch*: Provided by *Mandy's Salads* at *12 PM* in the Kitchen.\n:canada::us:*North America All Hands* @ 12:30 PM\n:learning-result: *Machine Learning Talk Series* hosted by *Khantil Desai*, Dec. 12th @ 2:00 pm\n:happy-hour:*Social Happy Hour* this afternoon @ *4:30*! Come enjoy some drinks, sushi and sweet treats!"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "plain_text",
				"text": "Have an amazing Boost Day, Toronto!\n\nLove,\n\nWX  :party-wx:  ",
				"emoji": true
			}
		}
	]
}
$dataProvider = new ActiveDataProvider([
            'query' => $query,
            'sort'=> ['defaultOrder' => ['id_tipo_cambio' => SORT_DESC]] // Agregar esta linea para agregar el orden por 
        ]);
class employe{
    private String nom;
    private String pre;
    private int age;
    private float salaire;
    employe(){
        this.nom="sis";
        this.pre="kakak";
        this.age=58;
        this.salaire=7892;
    }
    employe(String nom,String pre,int age,float salaire){
        this.nom=nom;
        this.pre=pre;
        this.age=age;
        this.salaire=salaire;
    }
    employe (employe e){
        this.nom=e.nom;
        this.pre=e.pre;
        this.age=e.age;
        this.salaire=e.salaire;
    }
    String getNom(){
        return this.nom;
    }
    String getPre(){
        return this.pre;
    }
    int getAge(){
        return this.age;
    }
    float getSalaire(){
        return this.salaire;
    }
    void setNom(String nom){
        this.nom=nom;
    }
    void setPre(String pre){
        this.pre=pre;
    }
    void setAge(int age){
        this.age=age;
    }void setSalaire(float salaire){
        this.salaire=salaire;
    }
    void aug(float sa){
        this.salaire+=sa;
    }
    public String toString(){
        String ch;
        ch="Employe[Nom:"+this.nom+"| Prenom:"+this.pre+"| Age:"+this.age+"| Salaire:"+this.salaire;
        return ch;
    }
    void affiche(){
        System.out.println(this.toString());
    }}
    class tech extends employe{
        private int grade;
        public tech() {
        super(); // Appelle le constructeur par défaut de employe
        this.grade = 1; // Valeur par défaut pour grade
    }
        tech(String nom,String pre,int age,float salaire,int grade){
            super(nom,pre,age,salaire);
            setGrade(grade);
        }
        int getGrade(){
            return this.grade;
    }
    void setGrade(int grade){
        if(grade>=1 && grade<=3){
            this.grade=grade;
        }else{
            System.out.println("grade invalid");
        }}
    int prime(){
    switch(grade){
             case 1:return 100;
             case 2:return 200;
             case 3:return 300;
             default:return 0;
         }
}
    public String toString(){
        String ch;
        ch=super.toString()+"| le grade :"+this.grade+"|le prime :"+this.prime();
        return ch;
    }
    void augg(){
        this.aug(this.prime());
    }
    
    }
   class equipe extends tech{
       private tech [] tab;
       equipe(tech[] tab){
           this.tab=tab;
       }
    public tech hisa(){
        tech higs=tab[0];
        for(int i=0;i<tab.length;i++){
            if(tab[i].getSalaire()>higs.getSalaire()){
                higs=tab[i];
            }
        }
        return higs;
    }   
    public tech higa(){
        tech hig=tab[0];
        for(int i=0;i<tab.length;i++){
            if(tab[i].getGrade()>hig.getGrade()){
                hig=tab[i];
            }
        }
        return hig;
    }   
       
   } 
    
    
    
    
    public class Main{
        public static void main(String [] args){
            employe e1=new employe("sahar","mess",20,9000);
            tech t1=new tech("ahmed","ben",25,10000,1);
            e1.affiche();
            t1.affiche();
            e1.aug(500);
            e1.affiche();
            t1.setGrade(2);
            t1.augg();
            t1.affiche();
            tech t2=new tech("amir","jerbi",30,1852,2);
            tech t3=new tech("sara","ouraj",21,47859,1);
            tech t4=new tech("farah","chao",29,47899,3);
            tech t5=new tech("alona","zyan",45,8000,2);
            tech[] tab={t2,t3,t4,t5};
            equipe eq=new equipe(tab);
            System.out.println("Highest Salary Technician: " + eq.hisa());
        System.out.println("Highest Grade Technician: " + eq.higa());
            
        }
    }
    
    
    
    
    
    
    
    
Consumer demand and market trends have changed periodically. So if you're considering building your competitive food delivery app like Ubereats, then here we clearly list out the market-shifting things

1. Stay updated with Market Trends
Every time keep tracking your consumer preference in all aspects, like contactless delivery, food options, and sustainable practices. Analyze the study of the strategies of competitors and find out where you can outperform in the field. Utilize data analytics to grab insightful data and user preferences to identify trends and make data-driven decisions.

2. Enhance User Experience
Insist your platform UI is more convenient for your audience in all aspects, like navigating, and visually more appealing. Leverage the power of AI to recommend restaurants and dishes based on the customer's past preferences. Avail real-time food tracking for your platform users that is more convenient for your users in providing exact information and doing more engagement. As well as avail multiple variety of payment options to cater your food delivery business. Insist loyalty programs and encourage your audience to repeat the process of your business.

3. Expand Your Service Offerings
Enlarge your business in more ways, like grocery delivery, quick commerce businesses, etc. Avail discounts and offers based on services and exclusive benefits. Make partnerships with local businesses to provide additional localized services like flower delivery and dry cleaning.

4. Indulge in the latest technologies
Leverage the latest technologies like AI and matching learning to optimize your platform for personalization and predict future demand. Implement blockchain technology to provide tamper-proof security for your audience in making purchases. Integrate IOT device support to optimize your delivery operations and efficiency.

5. Continuous Improvement
Gather your platform user feedback to incorporate the latest things into your future updates. Although it periodically pushes the regular updates, fixes bugs, improves performance, and adds new features. Experiment with different features and designs to optimize the user experience.

Be adaptive and change market trends to uplift your food delivery business by leveraging Ubereats clone script in all potential ways and utilizing the market demand shifts.
SELECT 
    source.employee AS `Employee`,
    source.employee_name AS `Employee Name`,
    TabEmployee.department AS `Department`,
    TabEmployee.designation AS `Designation`,
    TabEmployee.branch AS `Branch`,
    source.From_Date AS `From Date`,
    source.To_Date AS `To Date`,
    source.Day_1_IN AS `Day 1 IN`,
    source.Day_1_OUT AS `Day 1 OUT`,
    source.Day_2_IN AS `Day 2 IN`,
    source.Day_2_OUT AS `Day 2 OUT`,
    source.Day_3_IN AS `Day 3 IN`,
    source.Day_3_OUT AS `Day 3 OUT`,
    source.Day_4_IN AS `Day 4 IN`,
    source.Day_4_OUT AS `Day 4 OUT`,
    source.Day_5_IN AS `Day 5 IN`,
    source.Day_5_OUT AS `Day 5 OUT`,
    source.Day_6_IN AS `Day 6 IN`,
    source.Day_6_OUT AS `Day 6 OUT`,
    source.Day_7_IN AS `Day 7 IN`,
    source.Day_7_OUT AS `Day 7 OUT`,
    source.Day_8_IN AS `Day 8 IN`,
    source.Day_8_OUT AS `Day 8 OUT`,
    source.Day_9_IN AS `Day 9 IN`,
    source.Day_9_OUT AS `Day 9 OUT`,
    source.Day_10_IN AS `Day 10 IN`,
    source.Day_10_OUT AS `Day 10 OUT`,
    source.Day_11_IN AS `Day 11 IN`,
    source.Day_11_OUT AS `Day 11 OUT`,
    source.Day_12_IN AS `Day 12 IN`,
    source.Day_12_OUT AS `Day 12 OUT`,
    source.Day_13_IN AS `Day 13 IN`,
    source.Day_13_OUT AS `Day 13 OUT`,
    source.Day_14_IN AS `Day 14 IN`,
    source.Day_14_OUT AS `Day 14 OUT`,
    source.Day_15_IN AS `Day 15 IN`,
    source.Day_15_OUT AS `Day 15 OUT`,
    source.Day_16_IN AS `Day 16 IN`,
    source.Day_16_OUT AS `Day 16 OUT`,
    source.Day_17_IN AS `Day 17 IN`,
    source.Day_17_OUT AS `Day 17 OUT`,
    source.Day_18_IN AS `Day 18 IN`,
    source.Day_18_OUT AS `Day 18 OUT`,
    source.Day_19_IN AS `Day 19 IN`,
    source.Day_19_OUT AS `Day 19 OUT`,
    source.Day_20_IN AS `Day 20 IN`,
    source.Day_20_OUT AS `Day 20 OUT`,
    source.Day_21_IN AS `Day 21 IN`,
    source.Day_21_OUT AS `Day 21 OUT`,
    source.Day_22_IN AS `Day 22 IN`,
    source.Day_22_OUT AS `Day 22 OUT`,
    source.Day_23_IN AS `Day 23 IN`,
    source.Day_23_OUT AS `Day 23 OUT`,
    source.Day_24_IN AS `Day 24 IN`,
    source.Day_24_OUT AS `Day 24 OUT`,
    source.Day_25_IN AS `Day 25 IN`,
    source.Day_25_OUT AS `Day 25 OUT`,
    source.Day_26_IN AS `Day 26 IN`,
    source.Day_26_OUT AS `Day 26 OUT`,
    source.Day_27_IN AS `Day 27 IN`,
    source.Day_27_OUT AS `Day 27 OUT`,
    source.Day_28_IN AS `Day 28 IN`,
    source.Day_28_OUT AS `Day 28 OUT`,
    source.Day_29_IN AS `Day 29 IN`,
    source.Day_29_OUT AS `Day 29 OUT`,
    source.Day_30_IN AS `Day 30 IN`,
    source.Day_30_OUT AS `Day 30 OUT`,
    source.Day_31_IN AS `Day 31 IN`,
    source.Day_31_OUT AS `Day 31 OUT`
FROM 
    (SELECT
        employee,
        employee_name,
        DATE_FORMAT(MIN(time), '%d-%m-%Y') AS `From_Date`,
        DATE_FORMAT(MAX(time), '%d-%m-%Y') AS `To_Date`,
        MAX(CASE WHEN DAY(time) = 1 THEN min_time END) AS `Day_1_IN`,
        MAX(CASE WHEN DAY(time) = 1 THEN max_time END) AS `Day_1_OUT`,
        MAX(CASE WHEN DAY(time) = 2 THEN min_time END) AS `Day_2_IN`,
        MAX(CASE WHEN DAY(time) = 2 THEN max_time END) AS `Day_2_OUT`,
        MAX(CASE WHEN DAY(time) = 3 THEN min_time END) AS `Day_3_IN`,
        MAX(CASE WHEN DAY(time) = 3 THEN max_time END) AS `Day_3_OUT`,
        MAX(CASE WHEN DAY(time) = 4 THEN min_time END) AS `Day_4_IN`,
        MAX(CASE WHEN DAY(time) = 4 THEN max_time END) AS `Day_4_OUT`,
        MAX(CASE WHEN DAY(time) = 5 THEN min_time END) AS `Day_5_IN`,
        MAX(CASE WHEN DAY(time) = 5 THEN max_time END) AS `Day_5_OUT`,
        MAX(CASE WHEN DAY(time) = 6 THEN min_time END) AS `Day_6_IN`,
        MAX(CASE WHEN DAY(time) = 6 THEN max_time END) AS `Day_6_OUT`,
        MAX(CASE WHEN DAY(time) = 7 THEN min_time END) AS `Day_7_IN`,
        MAX(CASE WHEN DAY(time) = 7 THEN max_time END) AS `Day_7_OUT`,
        MAX(CASE WHEN DAY(time) = 8 THEN min_time END) AS `Day_8_IN`,
        MAX(CASE WHEN DAY(time) = 8 THEN max_time END) AS `Day_8_OUT`,
        MAX(CASE WHEN DAY(time) = 9 THEN min_time END) AS `Day_9_IN`,
        MAX(CASE WHEN DAY(time) = 9 THEN max_time END) AS `Day_9_OUT`,
        MAX(CASE WHEN DAY(time) = 10 THEN min_time END) AS `Day_10_IN`,
        MAX(CASE WHEN DAY(time) = 10 THEN max_time END) AS `Day_10_OUT`,
        MAX(CASE WHEN DAY(time) = 11 THEN min_time END) AS `Day_11_IN`,
        MAX(CASE WHEN DAY(time) = 11 THEN max_time END) AS `Day_11_OUT`,
        MAX(CASE WHEN DAY(time) = 12 THEN min_time END) AS `Day_12_IN`,
        MAX(CASE WHEN DAY(time) = 12 THEN max_time END) AS `Day_12_OUT`,
        MAX(CASE WHEN DAY(time) = 13 THEN min_time END) AS `Day_13_IN`,
        MAX(CASE WHEN DAY(time) = 13 THEN max_time END) AS `Day_13_OUT`,
        MAX(CASE WHEN DAY(time) = 14 THEN min_time END) AS `Day_14_IN`,
        MAX(CASE WHEN DAY(time) = 14 THEN max_time END) AS `Day_14_OUT`,
        MAX(CASE WHEN DAY(time) = 15 THEN min_time END) AS `Day_15_IN`,
        MAX(CASE WHEN DAY(time) = 15 THEN max_time END) AS `Day_15_OUT`,
        MAX(CASE WHEN DAY(time) = 16 THEN min_time END) AS `Day_16_IN`,
        MAX(CASE WHEN DAY(time) = 16 THEN max_time END) AS `Day_16_OUT`,
        MAX(CASE WHEN DAY(time) = 17 THEN min_time END) AS `Day_17_IN`,
        MAX(CASE WHEN DAY(time) = 17 THEN max_time END) AS `Day_17_OUT`,
        MAX(CASE WHEN DAY(time) = 18 THEN min_time END) AS `Day_18_IN`,
        MAX(CASE WHEN DAY(time) = 18 THEN max_time END) AS `Day_18_OUT`,
        MAX(CASE WHEN DAY(time) = 19 THEN min_time END) AS `Day_19_IN`,
        MAX(CASE WHEN DAY(time) = 19 THEN max_time END) AS `Day_19_OUT`,
        MAX(CASE WHEN DAY(time) = 20 THEN min_time END) AS `Day_20_IN`,
        MAX(CASE WHEN DAY(time) = 20 THEN max_time END) AS `Day_20_OUT`,
        MAX(CASE WHEN DAY(time) = 21 THEN min_time END) AS `Day_21_IN`,
        MAX(CASE WHEN DAY(time) = 21 THEN max_time END) AS `Day_21_OUT`,
        MAX(CASE WHEN DAY(time) = 22 THEN min_time END) AS `Day_22_IN`,
        MAX(CASE WHEN DAY(time) = 22 THEN max_time END) AS `Day_22_OUT`,
        MAX(CASE WHEN DAY(time) = 23 THEN min_time END) AS `Day_23_IN`,
        MAX(CASE WHEN DAY(time) = 23 THEN max_time END) AS `Day_23_OUT`,
        MAX(CASE WHEN DAY(time) = 24 THEN min_time END) AS `Day_24_IN`,
        MAX(CASE WHEN DAY(time) = 24 THEN max_time END) AS `Day_24_OUT`,
        MAX(CASE WHEN DAY(time) = 25 THEN min_time END) AS `Day_25_IN`,
        MAX(CASE WHEN DAY(time) = 25 THEN max_time END) AS `Day_25_OUT`,
        MAX(CASE WHEN DAY(time) = 26 THEN min_time END) AS `Day_26_IN`,
        MAX(CASE WHEN DAY(time) = 26 THEN max_time END) AS `Day_26_OUT`,
        MAX(CASE WHEN DAY(time) = 27 THEN min_time END) AS `Day_27_IN`,
        MAX(CASE WHEN DAY(time) = 27 THEN max_time END) AS `Day_27_OUT`,
        MAX(CASE WHEN DAY(time) = 28 THEN min_time END) AS `Day_28_IN`,
        MAX(CASE WHEN DAY(time) = 28 THEN max_time END) AS `Day_28_OUT`,
        MAX(CASE WHEN DAY(time) = 29 THEN min_time END) AS `Day_29_IN`,
        MAX(CASE WHEN DAY(time) = 29 THEN max_time END) AS `Day_29_OUT`,
        MAX(CASE WHEN DAY(time) = 30 THEN min_time END) AS `Day_30_IN`,
        MAX(CASE WHEN DAY(time) = 30 THEN max_time END) AS `Day_30_OUT`,
        MAX(CASE WHEN DAY(time) = 31 THEN min_time END) AS `Day_31_IN`,
        MAX(CASE WHEN DAY(time) = 31 THEN max_time END) AS `Day_31_OUT`
     FROM 
         (SELECT
              employee,
              employee_name,
              DATE(time) AS time,
              TIME_FORMAT(MIN(TIME(time)), '%H:%i') AS min_time,
              TIME_FORMAT(MAX(TIME(time)), '%H:%i') AS max_time
          FROM `tabEmployee Checkin`
          WHERE 
              TRUE
              [[AND time >= {{From_date}}]]
              [[AND time <= DATE_ADD({{To_date}}, INTERVAL 1 DAY)]]
          GROUP BY
              employee,
              employee_name,
              DATE(time)
         ) AS inner_source
     GROUP BY
         employee,
         employee_name
    ) AS source
LEFT JOIN 
    `tabEmployee` TabEmployee 
ON 
    source.employee = TabEmployee.employee
WHERE 
    (TabEmployee.branch = {{Branch}} OR {{Branch}} IS NULL)
LIMIT 1048575;
SELECT 
    source.employee AS `Employee`,
    source.employee_name AS `Employee Name`,
    TabEmployee.department AS `Department`,
    TabEmployee.designation AS `Designation`,
    TabEmployee.branch AS `Branch`,
    source.From_Date AS `From Date`,
    source.To_Date AS `To Date`,
    source.Day_1_Min AS `Day 1 Min`,
    source.Day_1_Max AS `Day 1 Max`,
    source.Day_2_Min AS `Day 2 Min`,
    source.Day_2_Max AS `Day 2 Max`,
    source.Day_3_Min AS `Day 3 Min`,
    source.Day_3_Max AS `Day 3 Max`,
    source.Day_4_Min AS `Day 4 Min`,
    source.Day_4_Max AS `Day 4 Max`,
    source.Day_5_Min AS `Day 5 Min`,
    source.Day_5_Max AS `Day 5 Max`,
    source.Day_6_Min AS `Day 6 Min`,
    source.Day_6_Max AS `Day 6 Max`,
    source.Day_7_Min AS `Day 7 Min`,
    source.Day_7_Max AS `Day 7 Max`,
    source.Day_8_Min AS `Day 8 Min`,
    source.Day_8_Max AS `Day 8 Max`,
    source.Day_9_Min AS `Day 9 Min`,
    source.Day_9_Max AS `Day 9 Max`,
    source.Day_10_Min AS `Day 10 Min`,
    source.Day_10_Max AS `Day 10 Max`,
    source.Day_11_Min AS `Day 11 Min`,
    source.Day_11_Max AS `Day 11 Max`,
    source.Day_12_Min AS `Day 12 Min`,
    source.Day_12_Max AS `Day 12 Max`,
    source.Day_13_Min AS `Day 13 Min`,
    source.Day_13_Max AS `Day 13 Max`,
    source.Day_14_Min AS `Day 14 Min`,
    source.Day_14_Max AS `Day 14 Max`,
    source.Day_15_Min AS `Day 15 Min`,
    source.Day_15_Max AS `Day 15 Max`,
    source.Day_16_Min AS `Day 16 Min`,
    source.Day_16_Max AS `Day 16 Max`,
    source.Day_17_Min AS `Day 17 Min`,
    source.Day_17_Max AS `Day 17 Max`,
    source.Day_18_Min AS `Day 18 Min`,
    source.Day_18_Max AS `Day 18 Max`,
    source.Day_19_Min AS `Day 19 Min`,
    source.Day_19_Max AS `Day 19 Max`,
    source.Day_20_Min AS `Day 20 Min`,
    source.Day_20_Max AS `Day 20 Max`,
    source.Day_21_Min AS `Day 21 Min`,
    source.Day_21_Max AS `Day 21 Max`,
    source.Day_22_Min AS `Day 22 Min`,
    source.Day_22_Max AS `Day 22 Max`,
    source.Day_23_Min AS `Day 23 Min`,
    source.Day_23_Max AS `Day 23 Max`,
    source.Day_24_Min AS `Day 24 Min`,
    source.Day_24_Max AS `Day 24 Max`,
    source.Day_25_Min AS `Day 25 Min`,
    source.Day_25_Max AS `Day 25 Max`,
    source.Day_26_Min AS `Day 26 Min`,
    source.Day_26_Max AS `Day 26 Max`,
    source.Day_27_Min AS `Day 27 Min`,
    source.Day_27_Max AS `Day 27 Max`,
    source.Day_28_Min AS `Day 28 Min`,
    source.Day_28_Max AS `Day 28 Max`,
    source.Day_29_Min AS `Day 29 Min`,
    source.Day_29_Max AS `Day 29 Max`,
    source.Day_30_Min AS `Day 30 Min`,
    source.Day_30_Max AS `Day 30 Max`,
    source.Day_31_Min AS `Day 31 Min`,
    source.Day_31_Max AS `Day 31 Max`
FROM 
    (SELECT
        employee,
        employee_name,
        DATE_FORMAT(MIN(time), '%d-%m-%Y') AS `From_Date`,
        DATE_FORMAT(MAX(time), '%d-%m-%Y') AS `To_Date`,
        MAX(CASE WHEN DAY(time) = 1 THEN min_time END) AS `Day_1_Min`,
        MAX(CASE WHEN DAY(time) = 1 THEN max_time END) AS `Day_1_Max`,
        MAX(CASE WHEN DAY(time) = 2 THEN min_time END) AS `Day_2_Min`,
        MAX(CASE WHEN DAY(time) = 2 THEN max_time END) AS `Day_2_Max`,
        MAX(CASE WHEN DAY(time) = 3 THEN min_time END) AS `Day_3_Min`,
        MAX(CASE WHEN DAY(time) = 3 THEN max_time END) AS `Day_3_Max`,
        MAX(CASE WHEN DAY(time) = 4 THEN min_time END) AS `Day_4_Min`,
        MAX(CASE WHEN DAY(time) = 4 THEN max_time END) AS `Day_4_Max`,
        MAX(CASE WHEN DAY(time) = 5 THEN min_time END) AS `Day_5_Min`,
        MAX(CASE WHEN DAY(time) = 5 THEN max_time END) AS `Day_5_Max`,
        MAX(CASE WHEN DAY(time) = 6 THEN min_time END) AS `Day_6_Min`,
        MAX(CASE WHEN DAY(time) = 6 THEN max_time END) AS `Day_6_Max`,
        MAX(CASE WHEN DAY(time) = 7 THEN min_time END) AS `Day_7_Min`,
        MAX(CASE WHEN DAY(time) = 7 THEN max_time END) AS `Day_7_Max`,
        MAX(CASE WHEN DAY(time) = 8 THEN min_time END) AS `Day_8_Min`,
        MAX(CASE WHEN DAY(time) = 8 THEN max_time END) AS `Day_8_Max`,
        MAX(CASE WHEN DAY(time) = 9 THEN min_time END) AS `Day_9_Min`,
        MAX(CASE WHEN DAY(time) = 9 THEN max_time END) AS `Day_9_Max`,
        MAX(CASE WHEN DAY(time) = 10 THEN min_time END) AS `Day_10_Min`,
        MAX(CASE WHEN DAY(time) = 10 THEN max_time END) AS `Day_10_Max`,
        MAX(CASE WHEN DAY(time) = 11 THEN min_time END) AS `Day_11_Min`,
        MAX(CASE WHEN DAY(time) = 11 THEN max_time END) AS `Day_11_Max`,
        MAX(CASE WHEN DAY(time) = 12 THEN min_time END) AS `Day_12_Min`,
        MAX(CASE WHEN DAY(time) = 12 THEN max_time END) AS `Day_12_Max`,
        MAX(CASE WHEN DAY(time) = 13 THEN min_time END) AS `Day_13_Min`,
        MAX(CASE WHEN DAY(time) = 13 THEN max_time END) AS `Day_13_Max`,
        MAX(CASE WHEN DAY(time) = 14 THEN min_time END) AS `Day_14_Min`,
        MAX(CASE WHEN DAY(time) = 14 THEN max_time END) AS `Day_14_Max`,
        MAX(CASE WHEN DAY(time) = 15 THEN min_time END) AS `Day_15_Min`,
        MAX(CASE WHEN DAY(time) = 15 THEN max_time END) AS `Day_15_Max`,
        MAX(CASE WHEN DAY(time) = 16 THEN min_time END) AS `Day_16_Min`,
        MAX(CASE WHEN DAY(time) = 16 THEN max_time END) AS `Day_16_Max`,
        MAX(CASE WHEN DAY(time) = 17 THEN min_time END) AS `Day_17_Min`,
        MAX(CASE WHEN DAY(time) = 17 THEN max_time END) AS `Day_17_Max`,
        MAX(CASE WHEN DAY(time) = 18 THEN min_time END) AS `Day_18_Min`,
        MAX(CASE WHEN DAY(time) = 18 THEN max_time END) AS `Day_18_Max`,
        MAX(CASE WHEN DAY(time) = 19 THEN min_time END) AS `Day_19_Min`,
        MAX(CASE WHEN DAY(time) = 19 THEN max_time END) AS `Day_19_Max`,
        MAX(CASE WHEN DAY(time) = 20 THEN min_time END) AS `Day_20_Min`,
        MAX(CASE WHEN DAY(time) = 20 THEN max_time END) AS `Day_20_Max`,
        MAX(CASE WHEN DAY(time) = 21 THEN min_time END) AS `Day_21_Min`,
        MAX(CASE WHEN DAY(time) = 21 THEN max_time END) AS `Day_21_Max`,
        MAX(CASE WHEN DAY(time) = 22 THEN min_time END) AS `Day_22_Min`,
        MAX(CASE WHEN DAY(time) = 22 THEN max_time END) AS `Day_22_Max`,
        MAX(CASE WHEN DAY(time) = 23 THEN min_time END) AS `Day_23_Min`,
        MAX(CASE WHEN DAY(time) = 23 THEN max_time END) AS `Day_23_Max`,
        MAX(CASE WHEN DAY(time) = 24 THEN min_time END) AS `Day_24_Min`,
        MAX(CASE WHEN DAY(time) = 24 THEN max_time END) AS `Day_24_Max`,
        MAX(CASE WHEN DAY(time) = 25 THEN min_time END) AS `Day_25_Min`,
        MAX(CASE WHEN DAY(time) = 25 THEN max_time END) AS `Day_25_Max`,
        MAX(CASE WHEN DAY(time) = 26 THEN min_time END) AS `Day_26_Min`,
        MAX(CASE WHEN DAY(time) = 26 THEN max_time END) AS `Day_26_Max`,
        MAX(CASE WHEN DAY(time) = 27 THEN min_time END) AS `Day_27_Min`,
        MAX(CASE WHEN DAY(time) = 27 THEN max_time END) AS `Day_27_Max`,
        MAX(CASE WHEN DAY(time) = 28 THEN min_time END) AS `Day_28_Min`,
        MAX(CASE WHEN DAY(time) = 28 THEN max_time END) AS `Day_28_Max`,
        MAX(CASE WHEN DAY(time) = 29 THEN min_time END) AS `Day_29_Min`,
        MAX(CASE WHEN DAY(time) = 29 THEN max_time END) AS `Day_29_Max`,
        MAX(CASE WHEN DAY(time) = 30 THEN min_time END) AS `Day_30_Min`,
        MAX(CASE WHEN DAY(time) = 30 THEN max_time END) AS `Day_30_Max`,
        MAX(CASE WHEN DAY(time) = 31 THEN min_time END) AS `Day_31_Min`,
        MAX(CASE WHEN DAY(time) = 31 THEN max_time END) AS `Day_31_Max`
     FROM 
         (SELECT
              employee,
              employee_name,
              DATE(time) AS time,
              TIME_FORMAT(MIN(TIME(time)), '%H:%i') AS min_time,
              TIME_FORMAT(MAX(TIME(time)), '%H:%i') AS max_time
          FROM `tabEmployee Checkin`
          WHERE 
              TRUE
              [[AND time >= {{From_date}}]]
              [[AND time <= DATE_ADD({{To_date}}, INTERVAL 1 DAY)]]
          GROUP BY
              employee,
              employee_name,
              DATE(time)
         ) AS inner_source
     GROUP BY
         employee,
         employee_name
    ) AS source
LEFT JOIN 
    `tabEmployee` TabEmployee 
ON 
    source.employee = TabEmployee.employee
WHERE 
    (TabEmployee.branch = {{Branch}} OR {{Branch}} IS NULL)
LIMIT 1048575;
SELECT 
    source.employee AS `Employee`,
    source.employee_name AS `Employee Name`,
    TabEmployee.department AS `Department`,
    TabEmployee.designation AS `Designation`,
    TabEmployee.branch AS `Branch`,
    source.From_Date AS `From Date`,
    source.To_Date AS `To Date`,
    source.Day_1_Min AS `Day 1 Min`,
    source.Day_1_Max AS `Day 1 Max`,
    source.Day_2_Min AS `Day 2 Min`,
    source.Day_2_Max AS `Day 2 Max`,
    source.Day_3_Min AS `Day 3 Min`,
    source.Day_3_Max AS `Day 3 Max`,
    source.Day_4_Min AS `Day 4 Min`,
    source.Day_4_Max AS `Day 4 Max`,
    source.Day_5_Min AS `Day 5 Min`,
    source.Day_5_Max AS `Day 5 Max`,
    source.Day_6_Min AS `Day 6 Min`,
    source.Day_6_Max AS `Day 6 Max`,
    source.Day_7_Min AS `Day 7 Min`,
    source.Day_7_Max AS `Day 7 Max`,
    source.Day_8_Min AS `Day 8 Min`,
    source.Day_8_Max AS `Day 8 Max`,
    source.Day_9_Min AS `Day 9 Min`,
    source.Day_9_Max AS `Day 9 Max`,
    source.Day_10_Min AS `Day 10 Min`,
    source.Day_10_Max AS `Day 10 Max`,
    source.Day_11_Min AS `Day 11 Min`,
    source.Day_11_Max AS `Day 11 Max`,
    source.Day_12_Min AS `Day 12 Min`,
    source.Day_12_Max AS `Day 12 Max`,
    source.Day_13_Min AS `Day 13 Min`,
    source.Day_13_Max AS `Day 13 Max`,
    source.Day_14_Min AS `Day 14 Min`,
    source.Day_14_Max AS `Day 14 Max`,
    source.Day_15_Min AS `Day 15 Min`,
    source.Day_15_Max AS `Day 15 Max`,
    source.Day_16_Min AS `Day 16 Min`,
    source.Day_16_Max AS `Day 16 Max`,
    source.Day_17_Min AS `Day 17 Min`,
    source.Day_17_Max AS `Day 17 Max`,
    source.Day_18_Min AS `Day 18 Min`,
    source.Day_18_Max AS `Day 18 Max`,
    source.Day_19_Min AS `Day 19 Min`,
    source.Day_19_Max AS `Day 19 Max`,
    source.Day_20_Min AS `Day 20 Min`,
    source.Day_20_Max AS `Day 20 Max`,
    source.Day_21_Min AS `Day 21 Min`,
    source.Day_21_Max AS `Day 21 Max`,
    source.Day_22_Min AS `Day 22 Min`,
    source.Day_22_Max AS `Day 22 Max`,
    source.Day_23_Min AS `Day 23 Min`,
    source.Day_23_Max AS `Day 23 Max`,
    source.Day_24_Min AS `Day 24 Min`,
    source.Day_24_Max AS `Day 24 Max`,
    source.Day_25_Min AS `Day 25 Min`,
    source.Day_25_Max AS `Day 25 Max`,
    source.Day_26_Min AS `Day 26 Min`,
    source.Day_26_Max AS `Day 26 Max`,
    source.Day_27_Min AS `Day 27 Min`,
    source.Day_27_Max AS `Day 27 Max`,
    source.Day_28_Min AS `Day 28 Min`,
    source.Day_28_Max AS `Day 28 Max`,
    source.Day_29_Min AS `Day 29 Min`,
    source.Day_29_Max AS `Day 29 Max`,
    source.Day_30_Min AS `Day 30 Min`,
    source.Day_30_Max AS `Day 30 Max`,
    source.Day_31_Min AS `Day 31 Min`,
    source.Day_31_Max AS `Day 31 Max`
FROM 
    (SELECT
        employee,
        employee_name,
        DATE_FORMAT(MIN(time), '%d-%m-%Y') AS `From_Date`,
        DATE_FORMAT(MAX(time), '%d-%m-%Y') AS `To_Date`,
        MAX(CASE WHEN DAY(time) = 1 THEN min_time END) AS `Day_1_Min`,
        MAX(CASE WHEN DAY(time) = 1 THEN max_time END) AS `Day_1_Max`,
        MAX(CASE WHEN DAY(time) = 2 THEN min_time END) AS `Day_2_Min`,
        MAX(CASE WHEN DAY(time) = 2 THEN max_time END) AS `Day_2_Max`,
        MAX(CASE WHEN DAY(time) = 3 THEN min_time END) AS `Day_3_Min`,
        MAX(CASE WHEN DAY(time) = 3 THEN max_time END) AS `Day_3_Max`,
        MAX(CASE WHEN DAY(time) = 4 THEN min_time END) AS `Day_4_Min`,
        MAX(CASE WHEN DAY(time) = 4 THEN max_time END) AS `Day_4_Max`,
        MAX(CASE WHEN DAY(time) = 5 THEN min_time END) AS `Day_5_Min`,
        MAX(CASE WHEN DAY(time) = 5 THEN max_time END) AS `Day_5_Max`,
        MAX(CASE WHEN DAY(time) = 6 THEN min_time END) AS `Day_6_Min`,
        MAX(CASE WHEN DAY(time) = 6 THEN max_time END) AS `Day_6_Max`,
        MAX(CASE WHEN DAY(time) = 7 THEN min_time END) AS `Day_7_Min`,
        MAX(CASE WHEN DAY(time) = 7 THEN max_time END) AS `Day_7_Max`,
        MAX(CASE WHEN DAY(time) = 8 THEN min_time END) AS `Day_8_Min`,
        MAX(CASE WHEN DAY(time) = 8 THEN max_time END) AS `Day_8_Max`,
        MAX(CASE WHEN DAY(time) = 9 THEN min_time END) AS `Day_9_Min`,
        MAX(CASE WHEN DAY(time) = 9 THEN max_time END) AS `Day_9_Max`,
        MAX(CASE WHEN DAY(time) = 10 THEN min_time END) AS `Day_10_Min`,
        MAX(CASE WHEN DAY(time) = 10 THEN max_time END) AS `Day_10_Max`,
        MAX(CASE WHEN DAY(time) = 11 THEN min_time END) AS `Day_11_Min`,
        MAX(CASE WHEN DAY(time) = 11 THEN max_time END) AS `Day_11_Max`,
        MAX(CASE WHEN DAY(time) = 12 THEN min_time END) AS `Day_12_Min`,
        MAX(CASE WHEN DAY(time) = 12 THEN max_time END) AS `Day_12_Max`,
        MAX(CASE WHEN DAY(time) = 13 THEN min_time END) AS `Day_13_Min`,
        MAX(CASE WHEN DAY(time) = 13 THEN max_time END) AS `Day_13_Max`,
        MAX(CASE WHEN DAY(time) = 14 THEN min_time END) AS `Day_14_Min`,
        MAX(CASE WHEN DAY(time) = 14 THEN max_time END) AS `Day_14_Max`,
        MAX(CASE WHEN DAY(time) = 15 THEN min_time END) AS `Day_15_Min`,
        MAX(CASE WHEN DAY(time) = 15 THEN max_time END) AS `Day_15_Max`,
        MAX(CASE WHEN DAY(time) = 16 THEN min_time END) AS `Day_16_Min`,
        MAX(CASE WHEN DAY(time) = 16 THEN max_time END) AS `Day_16_Max`,
        MAX(CASE WHEN DAY(time) = 17 THEN min_time END) AS `Day_17_Min`,
        MAX(CASE WHEN DAY(time) = 17 THEN max_time END) AS `Day_17_Max`,
        MAX(CASE WHEN DAY(time) = 18 THEN min_time END) AS `Day_18_Min`,
        MAX(CASE WHEN DAY(time) = 18 THEN max_time END) AS `Day_18_Max`,
        MAX(CASE WHEN DAY(time) = 19 THEN min_time END) AS `Day_19_Min`,
        MAX(CASE WHEN DAY(time) = 19 THEN max_time END) AS `Day_19_Max`,
        MAX(CASE WHEN DAY(time) = 20 THEN min_time END) AS `Day_20_Min`,
        MAX(CASE WHEN DAY(time) = 20 THEN max_time END) AS `Day_20_Max`,
        MAX(CASE WHEN DAY(time) = 21 THEN min_time END) AS `Day_21_Min`,
        MAX(CASE WHEN DAY(time) = 21 THEN max_time END) AS `Day_21_Max`,
        MAX(CASE WHEN DAY(time) = 22 THEN min_time END) AS `Day_22_Min`,
        MAX(CASE WHEN DAY(time) = 22 THEN max_time END) AS `Day_22_Max`,
        MAX(CASE WHEN DAY(time) = 23 THEN min_time END) AS `Day_23_Min`,
        MAX(CASE WHEN DAY(time) = 23 THEN max_time END) AS `Day_23_Max`,
        MAX(CASE WHEN DAY(time) = 24 THEN min_time END) AS `Day_24_Min`,
        MAX(CASE WHEN DAY(time) = 24 THEN max_time END) AS `Day_24_Max`,
        MAX(CASE WHEN DAY(time) = 25 THEN min_time END) AS `Day_25_Min`,
        MAX(CASE WHEN DAY(time) = 25 THEN max_time END) AS `Day_25_Max`,
        MAX(CASE WHEN DAY(time) = 26 THEN min_time END) AS `Day_26_Min`,
        MAX(CASE WHEN DAY(time) = 26 THEN max_time END) AS `Day_26_Max`,
        MAX(CASE WHEN DAY(time) = 27 THEN min_time END) AS `Day_27_Min`,
        MAX(CASE WHEN DAY(time) = 27 THEN max_time END) AS `Day_27_Max`,
        MAX(CASE WHEN DAY(time) = 28 THEN min_time END) AS `Day_28_Min`,
        MAX(CASE WHEN DAY(time) = 28 THEN max_time END) AS `Day_28_Max`,
        MAX(CASE WHEN DAY(time) = 29 THEN min_time END) AS `Day_29_Min`,
        MAX(CASE WHEN DAY(time) = 29 THEN max_time END) AS `Day_29_Max`,
        MAX(CASE WHEN DAY(time) = 30 THEN min_time END) AS `Day_30_Min`,
        MAX(CASE WHEN DAY(time) = 30 THEN max_time END) AS `Day_30_Max`,
        MAX(CASE WHEN DAY(time) = 31 THEN min_time END) AS `Day_31_Min`,
        MAX(CASE WHEN DAY(time) = 31 THEN max_time END) AS `Day_31_Max`
     FROM 
         (SELECT
              employee,
              employee_name,
              DATE(time) AS time,
              TIME_FORMAT(MIN(TIME(time)), '%H:%i') AS min_time,
              TIME_FORMAT(MAX(TIME(time)), '%H:%i') AS max_time
          FROM `tabEmployee Checkin`
          WHERE 
              TRUE
              [[AND time >= {{From_date}}]]
              [[AND time <= DATE_ADD({{To_date}}, INTERVAL 1 DAY)]]
          GROUP BY
              employee,
              employee_name,
              DATE(time)
         ) AS inner_source
     GROUP BY
         employee,
         employee_name
    ) AS source
LEFT JOIN 
    `tabEmployee` TabEmployee 
ON 
    source.employee = TabEmployee.employee
WHERE 
    (TabEmployee.branch = {{Branch}} OR {{Branch}} IS NULL)
LIMIT 1048575;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Enemy : MonoBehaviour
{
    public float speed;
    public Vector3 moveOffset;
    private Vector3 targetPos;
    private Vector3 startPos;


    // Start is called before the first frame update
    void Start()
    {
        startPos = transform.position;
        targetPos = startPos;
    }

    // Update is called once per frame
    void Update()
    {
        transform.position = Vector3.MoveTowards(transform.position, targetPos, speed * Time.deltaTime);
        if (transform.position == targetPos)
        {
            if (startPos == targetPos)
            {
                targetPos = startPos + moveOffset;

            }
            else
            {
                targetPos = startPos;

            }
        }
    }

    private void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            other.GetComponent<PlayerController>().GameOver();
        }

    }


}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Coin : MonoBehaviour
{
    public float rotateSpeed = 180.0f;

    
        // Update is called once per frame
        void Update()
        {
            transform.Rotate(Vector3.up, rotateSpeed * Time.deltaTime);
        }

        private void OnTriggerEnter(Collider other)
        {
            if (other.CompareTag("Player"))
        
            {
                other.GetComponent<PlayerController>().AddScore(1);
                Destroy(gameObject);
            }
        }
}
    

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CameraFollow : MonoBehaviour
{
  public Transform target;
  public Vector3 offset;

  void Update()
   {
     transform.position = target.position + offset;
   } 
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;


public class PlayerController : MonoBehaviour
{
    public Rigidbody rig;
    public float moveSpeed;
    public int score;
    public float jumpForce;
    private bool isGrounded;

    void Update()

    {

        float x = Input.GetAxisRaw("Horizontal") * moveSpeed;
        float z = Input.GetAxisRaw("Vertical") * moveSpeed;

        rig.velocity = new Vector3(x, rig.velocity.y, z);

        Vector3 vel = rig.velocity;

        vel.y = 0;

        if (vel.x != 0 || vel.z != 0)
        {
            transform.forward = vel;

        }

        if (Input.GetKeyDown(KeyCode.Space) && isGrounded == true)
        {
            isGrounded = false;
            rig.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
        }
        if (transform.position.y < -5)
        {
          GetComponent<PlayerController>().GameOver();
        }


    }

    void OnCollisionEnter(Collision collision)
    {
        if (collision.GetContact(0).normal == Vector3.up)
        {
            isGrounded = true;

        }


    }
    public void GameOver()
    {
        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    }
    
    public void AddScore(int amount)
    {
        score += amount; 

    }
}
using System;
 
using System.Collections.Generic;
 
using System.Linq;
 
using System.Reflection;
 
using System.Runtime.InteropServices;
 
using System.Security.Claims;
 
using System.Security.Cryptography.X509Certificates;
 
using System.Text;
 
using System.Threading.Tasks;
 
using System.Xml.Linq;
 
using Unit4.CollectionsLib;
 
 
 
namespace OpenS
 
{
 
    internal class Program
 
    {
 
        static void Main(string[] args)
 
        {
 
            // יצירת שרשרת חוליות (של מספרים שלמים) חדשה בעלת איבר אחד, איבר הבא נאל
 
            Node<int> node = new Node<int>(1);
 
            Console.WriteLine("Chain: " + node); // הדפסת השרשרת       
 
 
 
            node.SetValue(2); // עדכון ערך השרשרת
 
            Console.WriteLine("New Chain: " + node); // הדפסת השרשרת החדשה  
 
 
 
            // יצירת שרשרת חוליות (של מספרים שלמים) חדשה בעלת איבר אחד, איבר הבא נאל
 
            Node<int> chain = new Node<int>(1);
 
            Console.Write("New Chain: "); PrintChain(chain); // הדפסת (כל) השרשרת
 
 
 
            // יצירת שרשרת חוליות (של מספרים שלמים), איבר הבא נאל
 
            Node<int> chain1 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            Console.Write("New Chain: "); PrintChain(chain1); ; // הדפסת השרשרת
 
 
 
            // גישה לערכים
 
            Console.WriteLine("First Node Value: " + chain1.GetValue()); // קבלת הערך של האיבר הראשון
 
            Console.WriteLine("Second Node Value: " + chain1.GetNext().GetValue()); // קבלת הערך של האיבר השני
 
            Console.WriteLine("Third Node Value: " + chain1.GetNext().GetNext().GetValue()); // קבלת הערך של האיבר השלישי
 
            //...
 
 
 
            Node<int> chain2 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5))))); // יצירת שרשרת חדשה
 
            Console.Write("New Chain: "); PrintChainReverse(chain2); // הפעלת פונקציה שלוקחת שרשרת מקושרת ומחזירה את איברי השרשרת בסדר הפוך
 
 
 
            Node<int> chain3 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5))))); // יצירת שרשרת חדשה
 
            int size = SizeOfChain(chain3); // הפעלת פונקציה שלוקחת שרשרת ומחזירה את כמות האיברים בשרשרשת מקושרת
 
            Console.WriteLine("Size Of Chain: " + size); // הדפסת השרשרת החדשה
 
 
 
            Node<int> chain4 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            int NodeValue1 = 1;
 
            int NodeValue2 = 0;
 
 
 
            bool IsNodeExists1 = IsNodeExists(chain4, NodeValue1); // הפעלת פונקציה שבודקת אם ערך ווליו שמתקבל קיים בשרשרת
 
            Console.WriteLine("Is The Value " + NodeValue1 + " Exist? " + IsNodeExists1);
 
 
 
            bool IsNodeExists2 = IsNodeExists(chain4, NodeValue2); // הפעלת פונקציה שבודקת אם ערך ווליו שמתקבל קיים בשרשרת
 
            Console.WriteLine("Is The Value " + NodeValue2 + " Exist? " + IsNodeExists2);
 
 
 
            Node<int> chain5 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            chain5 = RemoveFirst(chain5); // הפעלת פונקציה שלוקחת שרשרת ומסירה את האיבר הראשון בשרשרת מקושרת
 
            Console.Write("New Chain: "); PrintChain(chain5); // הדפסת השרשרת החדשה
 
 
 
            Node<int> chain6 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            chain5 = RemoveLast(chain6); // הפעלת פונקציה שלוקחת שרשרת ומסירה את האיבר האחרון בשרשרת מקושרת
 
            Console.Write("New Chain: "); PrintChain(chain6); // הדפסת השרשרת החדשה
 
 
 
            Node<int> chain7 = new Node<int>(1, new Node<int>(3, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            int value1 = 3;
 
            bool IsNodeExists3 = IsNodeExists(chain7, value1); // בדיקה אם הערך שאנחנו רוצים להוציא מהשרשרת המקושרת בכלל קיים
 
 
 
            if (IsNodeExists3 == true) // אם הערך קיים
 
            {
 
                chain6 = RemoveByValue(chain6, value1); // הפעלת הפונקציה שמסירה איבר לפי ערך
 
                Console.Write("New Chain: "); PrintChain(chain6); // הדפסת השרשרת החדשה
 
            }
 
 
 
            Node<int> chain8 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            int index = 3;
 
            chain8 = RemoveByIndex(chain8, index); // הפעלת הפונקציה שמירה איבר לפי אינדקס
 
            Console.Write("New Chain: "); PrintChain(chain8); // הדפסת השרשרת החדשה
 
 
 
            // יצירת שרשרת חוליות של מספרים שלמים. נקסט אחרון שווה נאל
 
            Node<int> chain9 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5))))); // יצירת שרשרת חוליות של מספרים שלמים. נקסט אחרון שווה נאל
 
            // יצירת שרשרת חוליות של מספרים שלמים. נקסט אחרון שווה נאל
 
            Node<int> chain10 = new Node<int>(5, new Node<int>(4, new Node<int>(3, new Node<int>(2, new Node<int>(1))))); // יצירת שרשרת חוליות של מספרים שלמים. נקסט אחרון שווה נאל
 
 
 
            bool isSorted1 = IsSortedAscending(chain7); // הפעלת הפונקציה שבודקת אם סדר האיברים עולה ברשימה מקושרת
 
            Console.WriteLine("Is Chain Sorted Ascending? " + isSorted1);
 
            bool isSorted2 = IsSortedAscending(chain8); // הפעלת הפונקציה שבודקת אם סדר האיברים עולה ברשימה מקושרת
 
            Console.WriteLine("Is Chain Sorted Ascending? " + isSorted2);
 
 
 
            bool isSorted3 = IsSortedDescending(chain9); // הפעלת הפונקציה שבודקת אם סדר האיברים יורד ברשימה מקושרת
 
            Console.WriteLine("Is Chain Sorted Descending? " + isSorted3);
 
            bool isSorted4 = IsSortedDescending(chain10); // הפעלת הפונקציה שבודקת אם סדר האיברים יורד ברשימה מקושרת
 
            Console.WriteLine("Is Chain Sorted Descending? " + isSorted4);
 
 
 
            Node<int> chain11 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            double average = Average(chain11); // הפעלת פונקציה שמחשבת את הממוצע ברשימה מקושרת ושמירתו במשתנה
 
            Console.WriteLine("The Average: " + average); // הדפסת הממוצע 
 
 
 
            Node<int> chain12 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            int number = 6;
 
            chain12 = AddNodeStart(chain12, number); // עפעלת פונקציה שמוסיפה איבר בתחילת שרשרת מקושרת
 
            Console.Write("New Chain: "); PrintChain(chain12); // הדפסת השרשרת החדשה
 
 
 
            Node<int> chain13 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            int number1 = 0;
 
            AddNodeEnd(chain13, number1); // הפעלת פונקציה שמוסיפה איבר בסוף שרשרת מקושרת
 
            Console.Write("New Chain: "); PrintChain(chain13); // הדפסת השרשרת החדשה
 
 
 
            Node<int> chain14 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            int value = 10;
 
            int index1 = 5;
 
            chain14 = AddNodeAtIndex(chain14, index1, value); // הפעלת פונקציה שמוסיפה איבר בשרשרת מקושרת לפי אינדקס 
 
            Console.Write("New Chain: "); PrintChain(chain14); // הדפסת השרשרת החדשה
 
 
 
            Node<int> chain15 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5, new Node<int>(6))))));
 
            Node<int> chain16 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
 
 
            FindAndPrintMiddle(chain15); // הדפסת האיבר/ים האמצעי/ים
 
            FindAndPrintMiddle(chain16); // הדפסת האיבר/ים האמצעי/ים
 
 
 
            Node<int> chain17 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            Node<int> chain18 = new Node<int>(2, new Node<int>(2, new Node<int>(10, new Node<int>(4, new Node<int>(5)))));
 
 
 
            bool isBalanced1 = IsBalanced(chain17); // הפעלת פונקציה שבודקת אם ברשימה מקושרת מספר האיברים הגדולים מהממוצע שווה למספר האיברים הקטנים מהממוצע
 
            Console.WriteLine("Is the list balanced? " + isBalanced1);
 
 
 
            bool isBalanced2 = IsBalanced(chain18); // הפעלת פונקציה שבודקת אם ברשימה מקושרת מספר האיברים הגדולים מהממוצע שווה למספר האיברים הקטנים מהממוצע 
 
            Console.WriteLine("Is the list balanced? " + isBalanced2);
 
 
 
            Node<int> chain19 =
 
                new Node<int>(2,
 
                new Node<int>(2,
 
                new Node<int>(2,
 
                new Node<int>(2,
 
                new Node<int>(3,
 
                new Node<int>(2,
 
                new Node<int>(4)))))));
 
 
 
            int numToFind = 2;
 
            int sequenceCount = sequences(chain19, numToFind);
 
            Console.WriteLine($"Number of sequences for {numToFind}: {sequenceCount}");
 
 
 
            Node<int> chain20 = new Node<int>(2, new Node<int>(0, new Node<int>(3, new Node<int>(4, new Node<int>(5, new Node<int>(6))))));
 
            int minIndex = FindMinValueIndex(chain20); // הפעלת פונקציה שמוצאת את האינדקס של הערך הנמוך ביותר בשרשרת
 
            Console.WriteLine("The index of the minimum value is: " + minIndex); // הדפסת הערך
 
 
 
            Node<int> chain21 = new Node<int>(0, new Node<int>(1, new Node<int>(3, new Node<int>(4, new Node<int>(5, new Node<int>(6))))));
 
            int maxIndex = FindMaxValueIndex(chain21); // הפעלת פונקציה שמוצאת את האינדקס של הערך הנמוך ביותר בשרשרת
 
            Console.WriteLine("The index of the maximum value is: " + maxIndex); // הדפסת הערך
 
 
 
            Node<int> chain22 = new Node<int>(1, new Node<int>(2, new Node<int>(1, new Node<int>(4, new Node<int>(5)))));
 
            List<int> minIndexes = FindMinValueIndexes(chain22); // הפעלת פונקציה שמוצאת את האינדקס/ים של הערך/ים הנמוך/ים ביותר בשרשרת
 
            Console.WriteLine("The indexes of the minimum value is: " + string.Join(", ", minIndexes)); // הדפסת הערך
 
 
 
            Node<int> chain23 = new Node<int>(5, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            List<int> maxIndexes = FindMaxValueIndexes(chain23); // הפעלת פונקציה שמוצאת את האינדקס/ים של הערך/ים הנמוך/ים ביותר בשרשרת
 
            Console.WriteLine("The indexes of the maximum value is: " + string.Join(", ", maxIndexes)); // הדפסת הערך
 
 
 
            Node<int> chain24 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            List<int> secondMaxIndexes = FindSecondMaxValueIndex(chain24); // הפעלת הפונקציה
 
            Console.WriteLine("The index of the second maximum value is: " + string.Join(", ", secondMaxIndexes)); // הדפסת הערכים
 
 
 
            Node<int> chain25 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            List<int> secondMinIndexes = FindSecondMinValueIndex(chain25); // הפעלת הפונקציה
 
            Console.WriteLine("The index of the second minimum value is: " + string.Join(", ", secondMinIndexes)); // הדפסת הערכים
 
 
 
            Node<int> chain26 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(2, new Node<int>(1)))));
 
            Node<int> chain27 = new Node<int>(1, new Node<int>(2, new Node<int>(3, new Node<int>(4, new Node<int>(5)))));
 
            
 
            bool Palindrome1 = IsPalindrome(chain26); // הפעלת פונקציה שבודקת אם הרשימה היא פלינדרום
 
            Console.WriteLine("Is The Chain a Palindrome? " + Palindrome1);
 
            bool Palindrome2 = IsPalindrome(chain27); // הפעלת פונקציה שבודקת אם הרשימה היא פלינדרום
 
            Console.WriteLine("Is The Chain a Palindrome? " + Palindrome2);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
        }
 
 
 
        // Node<int> current = chain; 
 
        // משתנה שמצביע על האיבר הנוכני ברשימה. בתחילת הלולאה הוא מצביע על ראש הרשימה.
 
 
 
 
 
        static void PrintChain(Node<int> chain) // פונקציה להדפסת כל האיברים ברשימה מקושרת 
 
        {
 
            Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית 
 
 
 
            while (current != null) // לולאה שעוברת על כל האיברים ברשימה עד לסופה
 
            {
 
                Console.Write(current.GetValue() + " ---> "); //הדפסת האיבר הנוכחי ברשימה
 
                current = current.GetNext(); // עבור לאיבר הבא ברשימה
 
            }
 
 
 
            Console.WriteLine("Null!"); // לאחר סיום הפונקציה והדפסת כל האיברים, אין עוד איברים ולכן איבר הבא נאל
 
        }
 
 
 
        static void PrintChainReverse(Node<int> chain) // פונקציה להדפסת כל האיברים בסדר הפוך ברשימה מקושרת
 
        {
 
            if (chain == null) // אם השרשרת ריקה
 
            {
 
                Console.WriteLine("The chain is null. Nothing to print."); // הודעה מתאימה
 
                return; // יציאה מהפונקציה
 
            }
 
 
 
            List<int> values = new List<int>(); // רשימה זמנית לאחסון הערכים
 
            Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית
 
 
 
            // איסוף כל הערכים בשרשרת
 
            while (current != null) // כל עוד השרשרת לא ריקה
 
            {
 
                values.Add(current.GetValue()); // מוסיף את הערך לרשימה של ווליוס
 
                current = current.GetNext(); // עבור לאיבר הבא
 
            }
 
 
 
            // הדפסת הערכים מהסוף להתחלה
 
            for (int i = values.Count - 1; i >= 0; i--)
 
            {
 
                Console.Write(values[i] + " ---> ");
 
            }
 
 
 
            Console.WriteLine("Null!"); // הגענו לאיבר האחרון
 
        }
 
 
 
        public static int SizeOfChain(Node<int> chain) // פונקציה שמחזירה את כמות האיברים ברשימה מקושרת 
 
        {
 
            if (chain == null) // אם השרשרת ריקה
 
            {
 
                return 0; // אין איברים
 
            }
 
 
 
            int size = 0; // אתחול הגודל
 
            Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית
 
 
 
            while (current != null) // לולאה שרצה על כל איברי השרשרת
 
            {
 
                size++; // עלה את סכום האיברים
 
                current = current.GetNext(); // עבור לאיבר הבא ברשימה
 
            }
 
 
 
            return size; // החזר את כמות האיברים
 
        }
 
 
 
        public static bool IsNodeExists(Node<int> chain, int value) // פונקציה שבודקת אם איבר קיים לפי ערך ווליו (שמתקבל בפרמטר) ברשימה מקושרת  
 
        {
 
            // משתנה עזר לשימירת הרשימה/השרשרת המקורית
 
            Node<int> current = chain;
 
 
 
            // לולאה שרצה על כל האיברים ברשימה
 
            while (current != null)
 
            {
 
                // אם הערך של האיבר הנוכחי שווה לערך שחיפשנו
 
                if (current.GetValue() == value)
 
                {
 
                    return true; // מצאנו את הערך
 
                }
 
 
 
                // עוברים לאיבר הבא
 
                current = current.GetNext();
 
            }
 
 
 
            // אם יצאנו מהלולאה בלי למצוא את הערך, האיבר לא קיים
 
            return false;
 
        }
 
 
 
        public static Node<int> RemoveFirst(Node<int> chain) // פונקציה שמסירה את האיבר הראשון ברשימה מקושרת 
 
        {
 
            if (chain == null) // אם השרשרת ריקה
 
            {
 
                return null; // מקרה קיצון, אין איברים להסרה
 
            }
 
 
 
            if (chain.GetNext() == null) // אם בשרשרת איבר יחיד
 
            {
 
                return null; // מקרה קיצון, אם בשרשרת יש רק איבר אחד ונסיר אותו לא תתקיים שרשרת
 
            }
 
 
 
            return chain.GetNext(); // הסרת האיבר הראשון והחזרת הרשימה החדשה
 
        }
 
 
 
        public static Node<int> RemoveLast(Node<int> chain) // פונקציה שמסירה את האיבר האחרון ברשימה מקושרת 
 
        {
 
            if (chain == null) // אם השרשרת ריקה
 
            {
 
                return null; // מקרה קיצון, אין איבר להסרה
 
            }
 
 
 
            if (chain.GetNext() == null) // אם בשרשרת איבר יחיד
 
            {
 
                return null; // מקרה קיצון, אם בשרשרת יש רק איבר אחד ונסיר אותו לא תתקיים שרשרת
 
            }
 
 
 
            Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית
 
 
 
            while (current.GetNext().GetNext() != null) // לולאה שרצה עד לאיבר האחרון
 
            {
 
                current = current.GetNext(); // עבור לאיבר הבא 
 
            }
 
 
 
            current.SetNext(null); // הסרת האיבר האחרון
 
            return chain; // החזרת הרשימה החדשה
 
        }
 
 
 
        public static Node<int> RemoveByValue(Node<int> chain, int value) // פונקציה שמסירה את האיבר האחרון ברשימה מקושרת 
 
        {
 
            if (chain == null) // אם השרשרת ריקה
 
            {
 
                return null; // מקרה קיצון, אין איבר להסרה
 
            }
 
 
 
            if (chain.GetNext() == null) // אם בשרשרת איבר יחיד
 
            {
 
                return null; // מקרה קיצון, אם בשרשרת יש רק איבר אחד ונסיר אותו לא תתקיים שרשרת
 
            }
 
 
 
            Node<int> NewNode = new Node<int>(0); // יצירת שרשרת חדשה לאחסון השרשרת המקורית
 
            NewNode.SetNext(chain); // קישור לראש הרשימה
 
            Node<int> prev = NewNode; // משתנה לאחסון האיבר הקודם
 
            Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית
 
            bool flag = false; // משתנה בוליאני שאומר האם מצאנו את האיבר להסרה
 
 
 
            while (current != null) // לולאה שעוברת על כל הרשימה
 
            {
 
                if (current.GetValue() == value) // אם מצאנו את האיבר להסרה
 
                {
 
                    prev.SetNext(current.GetNext()); // קישור האיבר הקודם לאיבר הבא של האיבר הנוכחי
 
                    flag = true; // עדכון המשתנה שמעיד שמצאנו את האיבר
 
                }
 
 
 
                else // אם לא מצאנו את האיבר הנוכחי
 
                {
 
                    prev = current; // עדכון האיבר הקודם לאיבר הנוכחי
 
                }
 
 
 
                current = current.GetNext(); // עבור לאיבר הבא
 
            }
 
 
 
            if (!flag) // אם לא מצאנו את האיבר להסרה
 
            {
 
                Console.WriteLine($"Value {value} does not exist!"); // הערך לא קיים בשרשרת
 
                return null; // מקרה קיצון, צא מהפונקציה
 
            }
 
 
 
            return NewNode.GetNext(); // החזר את השרשרת החדשה
 
        }
 
 
 
        public static Node<int> RemoveByIndex(Node<int> chain, int index) // פונקציה שמסירה את איבר לפי אינדקס שמתקבל בפרמטר ברשימה מקושרת 
 
        {
 
            if (chain == null || index < 0) // אם הרשימה ריקה או שהאינדקס שלילי
 
            {
 
                return null; // מקרה קיצון, אין איבר להעיף
 
            }
 
 
 
            if (chain.GetNext() == null) // אם בשרשרת איבר יחיד
 
            {
 
                return null; // מקרה קיצון, אם בשרשרת יש רק איבר אחד ונסיר אותו לא תתקיים שרשרת
 
            }
 
 
 
            Node<int> prev = null; // מצביע על הצומת הקודם
 
            Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית
 
            int currentIndex = 0; // מכיל את האינדקס הנוכחי שאנחנו נמצאים בו ברשימה
 
 
 
            while (current != null) // לולאה שרצה על כל האיברים
 
            {
 
                if (currentIndex == index) // אם מצאנו את האינדקס
 
                {
 
                    if (prev == null)  // אם האיבר להסרה הוא האיבר הראשון
 
                    {
 
                        chain = current.GetNext(); // עדכון הראש של הרשימה לאיבר הבא
 
                    }
 
 
 
                    else // אם האיבר להסרה הוא לא האיבר הראשון
 
                    {
 
                        prev.SetNext(current.GetNext()); // קישור האיבר הקודם לאיבר הבא של האיבר הנוכחי
 
                    }
 
 
 
                }
 
 
 
                prev = current; // האיבר הקודם עובר להיות האיבר הנוכחי
 
                current = current.GetNext(); // עבור לאיבר הבא
 
                currentIndex++; // עברנו האינדקס הנוכחי
 
            }
 
 
 
            if (currentIndex <= index) // אם הגענו לסוף הרשימה מבלי למצוא את האינדקס
 
            {
 
                Console.WriteLine($"Index {index} does not exist!"); // האינדקס לא קיים
 
                return null; // מקרה קיצון, צא מהפונקציה
 
            }
 
 
 
            return chain; // החזרת הרשימה החדשה
 
        }
 
 
 
        public static bool IsSortedAscending(Node<int> chain) // פונקציה שבודקת אם רשימה מקושרת ממוינת בסדר עולה
 
        {
 
            if (chain == null || chain.GetNext() == null) // בדוק אם השרשרת ריקה או שקיים רק איבר אחד
 
            {
 
                return false; // אין סדר עולה
 
            }
 
 
 
            Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית
 
            while (current.GetNext() != null) // לולאה שעוברת על כל האיברים
 
            {
 
                if (current.GetValue() >= current.GetNext().GetValue()) // אם הערך הנוכחי גדול מהערך הבא
 
                {
 
                    return false; // הרשימה לא מסודרת
 
                }
 
 
 
                current = current.GetNext(); // עוברים לאיבר הבא
 
            }
 
 
 
            return true; // אם עברנו את כל הבדיקות, הרשימה מסודרת בסדר עולה
 
        }
 
 
 
        public static bool IsSortedDescending(Node<int> chain) // פונקציה שבודקת אם רשימה מקושרת ממוינת בסדר יורד
 
        {
 
            if (chain == null || chain.GetNext() == null) // בדוק אם השרשרת ריקה או שקיים רק איבר אחד
 
            {
 
                return false; // אין סדר עולה
 
            }
 
 
 
            Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית
 
            while (current.GetNext() != null) // לולאה שעוברת על כל האיברים ברשימה עד הסוף
 
            {
 
                if (current.GetValue() <= current.GetNext().GetValue()) // אם הערך הנוכחי קטן או שווה לערך הבא
 
                {
 
                    return false; // הרשימה לא בסדר יורד
 
                }
 
 
 
                current = current.GetNext(); // עבור לאיבר הבא ברשימה
 
            }
 
 
 
            return true; // אם עברנו את כל הבדיקות, הרשימה מסודרת בסדר יורד
 
        }
 
 
 
        public static double Average(Node<int> chain) // פונקציה שמדפיסה את ממוצע ערך האיברים ברשימה מקושרת  
 
        {
 
            if (chain == null) // אם השרשרת ריקה
 
            {
 
                return 0; // ממוצע אפס
 
            }
 
 
 
            int sum = 0; // משתנה לשמירת סכום כל הערכים ברשימה
 
            int count = 0; // משתנה לספירת מספר האיברים ברשימה
 
            Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית 
 
 
 
            while (current != null) // לולאה שעוברת על כל האיברים ברשימה עד שהיא מגיעה לסוף
 
            {
 
                sum += current.GetValue(); // מוסיף את הערך של האיבר הנוכחי לסכום
 
                count++; // מגדיל את ספירת האיברים
 
                current = current.GetNext(); // מעביר את המצביע לאיבר הבא ברשימה
 
            }
 
 
 
            return (double)sum / count; // החזר את הממוצע
 
        }
 
 
 
        public static Node<int> AddNodeStart(Node<int> chain, int data) // פונקציה שמוסיפה איבר בתחילת רשימה מקושרת   
 
        {
 
            // יצירת איבר חדש
 
            Node<int> newNode = new Node<int>(data);
 
 
 
            // הגדר את האיבר הבא לשרשרת המקורית 
 
            newNode.SetNext(chain);
 
 
 
            // החזר את הרשימה החדשה לאחר הוספת האיבר 
 
            return newNode;
 
        }
 
 
 
        public static void AddNodeEnd(Node<int> chain, int value) // פונקציה שמוסיפה איבר בסוף רשימה מקושרת  
 
        {
 
            // יצירת איבר חדש עם הערך שקיבלנו מהפרמטר
 
            Node<int> newNode = new Node<int>(value);
 
 
 
            // בדוק אם הרשימה ריקה. אם כן, אין איבר להוספה
 
            if (chain == null) return;
 
 
 
            else
 
            {
 
                Node<int> current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית 
 
 
 
                while (current.GetNext() != null) // לולאה שעוברת על כל האיברים ברשימה
 
                {
 
                    current = current.GetNext(); // עבור לאיבר הבא ברשימה
 
                }
 
 
 
                current.SetNext(newNode); // חיבור האיבר החדש לסוף הרשימה
 
            }
 
        }
 
 
 
        public static Node<int> AddNodeAtIndex(Node<int> chain, int index, int value) // פונקציה שמוסיפה איבר לפי אינדקס (שמתקבל בפרמטר) ברשימה מקושרת  
 
        {
 
            // יצירת איבר חדש עם הערך שקיבלנו מהפרמטר
 
            Node<int> newNode = new Node<int>(value);
 
 
 
            // בדוק אם הרשימה ריקה או אם האינדקס אינו תקין אם כן צא מהפונקציה
 
            if (chain == null || index < 0)
 
            {
 
                Console.WriteLine("Chain Is Empty Or Index Is");
 
                return null;
 
            }
 
 
 
            // אם האינדקס הוא 0, הוסף את האיבר החדש בתחילת הרשימה
 
            if (index == 0)
 
            {
 
                // הגדר את האיבר הבא לשרשרת המקורית 
 
                newNode.SetNext(chain);
 
 
 
                // החזר את הרשימה החדשה לאחר הוספת האיבר 
 
                return newNode;
 
            }
 
 
 
            // מציאת האיבר לפני המקום שבו רוצים להוסיף
 
            Node<int> current = chain;  // משתנה עזר לשימירת הרשימה/השרשרת המקורית 
 
            int currentIndex = 0; // משתנה לאחסון האינדקס הנוכחי
 
 
 
            while (current != null && currentIndex < index - 1) // לולאה לחיפוש האיבר המבוקש לפי האינדקס בפרמטר
 
            {
 
                current = current.GetNext(); // עבור לאיבר הבא
 
                currentIndex++; // עדכון האינדקס הנוכחי
 
            }
 
 
 
            // אם הגענו לסוף הרשימה, האינדקס לא קיים
 
            if (current == null)
 
            {
 
                Console.WriteLine("Nonexistent Index!"); // הדפסת הודעה מתאימה
 
                return null; // מקרה קיצון, יציאה מהפונקציה
 
            }
 
 
 
            // חיבור האיבר החדש לרשימה
 
            newNode.SetNext(current.GetNext()); // קישור האיבר החדש לאיבר הבא
 
            current.SetNext(newNode); // קישור האיבר הקודם לאיבר החדש
 
            return chain; // החזרת הראשימה החדשה
 
        }
 
 
 
        public static void FindAndPrintMiddle(Node<int> chain) // פונקציה שמוצאת את האיברים האמצעיים ברשימה מקושרת ומדפיסה אותם
 
        {
 
            if (chain == null) // אם השרשרת ריקה
 
            {
 
                Console.WriteLine("The List Is Empty."); // הודעה מתאימה
 
                return; // יציאה מהפונקציה
 
            }
 
 
 
            Node<int> slow = chain; // משתנה עזר ראשון שמצביע לאיבר הראשון ברשימה
 
            Node<int> fast = chain; // משתנה עזר שני שמצביע לאיבר הראשון ברשימה
 
            Node<int> prevSlow = null; // משתנה לאחסון האיבר הקודם של סלואו
 
 
 
            while (fast != null && fast.GetNext() != null) // לולאה שרצה על כל האיברים
 
            {
 
                prevSlow = slow; // עדכון האיבר הקודם להיות האיבר הנוכחי
 
                slow = slow.GetNext(); // האיבר הנוכחי הראשון עובר לאיבר הבא
 
                fast = fast.GetNext().GetNext(); // האיבר הנוכחי השני עובר שני איברים קדימה
 
            }
 
 
 
            if (fast == null) // מספר זוגי של איברים
 
            {
 
                Console.WriteLine($"The Middle Nodes: {prevSlow.GetValue()} and {slow.GetValue()}");
 
            }
 
 
 
            else // מספר אי זוגי של איברים
 
            {
 
                Console.WriteLine($"The Middle Node: {slow.GetValue()}");
 
            }
 
        }
 
 
 
        public static int GetValueByIndex(Node<int> chain, int index) // פונקציה  שעוברת על כל האיברים בשרשרת ומחזירה את הערך של האיבר כאשר היא מגיעה לאינדקס המבוקש
 
        {
 
            int currentIndex = 0; // מייצג את האינדקס הנוכחי בשרשרת
 
            Node<int> currentNode = chain; // משתנה עזר לשמירת האיבר הנוכחי
 
 
 
            // לולאה שרצה על האיברים כל עוד לא הגענו לסוף השרשרת
 
            while (currentNode != null)
 
            {
 
                // בודק אם הגענו לאינדקס המבוקש
 
                if (currentIndex == index)
 
                {
 
                    return currentNode.GetValue(); // מחזיר את הערך אם הגענו לאינדקס המבוקש
 
                }
 
 
 
                // מתקדם לאיבר הבא ומגדיל את האינדקס הנוכחי באחד
 
                currentNode = currentNode.GetNext();
 
                currentIndex++;
 
            }
 
 
 
            return -1; // מחזיר -1 אם לא נמצא האיבר באינדקס המבוקש
 
        }
 
 
 
        public static int GetIndexByValue(Node<int> chain, int value) // פונקציה לקבלת אינדקס בעזרת ערך מסוים ברשימה מקושרת
 
        {
 
            int currentIndex = 0; // משתנה לאחסון האינדקס הנוכחי
 
            Node<int> currentNode = chain; // מצביע לאיבר הנוכחי ברשימה
 
 
 
            while (currentNode != null) // לולאה שעוברת על כל האיברים ברשימה
 
            {
 
                if (currentNode.GetValue() == value) // בדיקה אם הערך של הנוד הנוכחי תואם לערך המבוקש
 
                {
 
                    return currentIndex; // מחזיר את האינדקס אם הערך נמצא
 
                }
 
 
 
                currentNode = currentNode.GetNext(); // מעבר לאיבר הבא הרשימה 
 
                currentIndex++; // הגדלת האינקס
 
            }
 
 
 
            return -1; // החזר -1 אם הערך לא נמצא
 
        }
 
 
 
        public static bool IsBalanced(Node<int> chain) // פונקציה שבודקת אם רשימה מקושרת היא גם "רשימה מאוזנת". רשימה מאוזנת היא רשימה שמספר האיברים הגדולים מהממוצע שווה למספר האיברים הקטנים מהממוצע.
 
        {
 
            // אם הרשימה ריקה, היא נחשבת מאוזנת
 
            if (chain == null) return true;
 
 
 
            int sum = 0; // משתנה לשמירת סכום הערכים
 
            int count = 0; // משתנה לספירת האיברים
 
 
 
            Node<int> current = chain;  // משתנה עזר לשימירת הרשימה/השרשרת המקורית 
 
 
 
            while (current != null) // לולאה שרצה על כל האיברים
 
            {
 
                sum += current.GetValue(); // הוספת הערך לסכום
 
                count++; // העלאת מונה האיברים
 
                current = current.GetNext(); // מעבר לאיבר הבא
 
            }
 
 
 
            // חישוב הממוצע
 
            double average = (double)sum / count;
 
 
 
            int greaterCount = 0; // משתנה לספירת איברים הגדולים מהממוצע
 
            int lesserCount = 0; // משתנה לספירת איברים הקטנים מהממוצע
 
 
 
            current = chain; // משתנה עזר לשימירת הרשימה/השרשרת המקורית 
 
 
 
            // ספירת האיברים הגדולים והקטנים מהממוצע
 
 
 
            while (current != null) // לולאה שעוברת על כל האיברים
 
            {
 
                if (current.GetValue() > average) // אם הערך גדול מהממוצע
 
                {
 
                    greaterCount++; // ספירת איבר גדול מהממוצע
 
                }
 
 
 
                else if (current.GetValue() < average) // אם הערך קטן מהממוצע
 
                {
 
                    lesserCount++; // ספירת איבר קטן מהממוצע
 
                }
 
                current = current.GetNext(); // מעבר לאיבר הבא ברשימה
 
            }
 
 
 
            return greaterCount == lesserCount; // החזרת התשובה האם הרשימה היא מאוזנת
 
        }
 
 
 
        public static int sequences(Node<int> chain, int num) // פונקציה שבודקת את מספר הרצפים שיש ברשימה מקושרת עבור מספר מסוים
 
        {
 
            int sequences = 0; // סוכם הרצפים
 
            Node<int> pos = chain; // משתנה עזר למיקום נוכחי ברשימה
 
            bool inSequence = false; // בדיקה אם הרצף ממשיך
 
            int count = 0; // מונה למופעים רצופים
 
 
 
            // לולאה שרצה כל עוד לא הגענו לסוף הרשימה
 
            while (pos != null)
 
            {
 
                // בודק אם הערך של הצומת הנוכחי שווה למספר שאנחנו מחפשים
 
                if (pos.GetValue() == num)
 
                {
 
                    count++; // מוסיף למונה
 
                    inSequence = true; // הרצף קיים
 
                }
 
 
 
                else
 
                {
 
                    if (inSequence && count >= 2) // אם סיימנו רצף עם 2 מופעים או יותר
 
                    {
 
                        sequences++; // מוסיפים לספירה
 
                    }
 
 
 
                    inSequence = false; // הרצף הפסיק
 
                    count = 0; // מאפס את המונה
 
                }
 
 
 
                // עובר לאיבר הבא ברשימה
 
                pos = pos.GetNext();
 
            }
 
 
 
            // בודק במקרה שהרצף נגמר בסוף הרשימה
 
            if (inSequence && count >= 2)
 
            {
 
                sequences++;
 
            }
 
 
 
            // מחזיר את מספר הרצפים של המספר המבוקש
 
            return sequences;
 
        }
 
 
 
        public static int FindMinValueIndex(Node<int> chain) // פונצקיה שמקבלת שרשרת ומחזירה את האינדקס של האינדקס של הערך הנמוך ביותר בשרשרת מקושרת
 
        {
 
            if (chain == null) // אם השרשרת ריקה
 
            {
 
                Console.WriteLine("The List Is Empty."); // הודעה מתאימה
 
                return -1; // יציאה מהפונקציה
 
            }
 
 
 
            Node<int> pos = chain; // משתנה עזר לשמירת השרשרת המקורית
 
            int minValue = pos.GetValue(); // אתחול הערך המינימלי לערך החוליה הראשונה
 
            int minIndex = 0; // אינדקס המינימום מתחיל מאפס
 
            int currentIndex = 0; // מונה אינדקס נוכחי
 
 
 
            // לולאה שעוברת על כל החוליות ברשימה
 
            while (pos != null)
 
            {
 
                if (pos.GetValue() < minValue) // עם הערך הנוכחי קטן מהערך המינימלי הקודם
 
                {
 
                    minValue = pos.GetValue(); // עדכון הערך המינימלי
 
                    minIndex = currentIndex; // עדכון האינדקס למיקום הנמוך ביותר
 
                }
 
 
 
                pos = pos.GetNext(); // מעבר לחוליה הבאה
 
                currentIndex++; // עדכון האינדקס הנוכחי
 
            }
 
 
 
            return minIndex; // החזרת האינדקס של הערך הנמוך ביותר
 
        }
 
 
 
        public static int FindMaxValueIndex(Node<int> chain) // פונקציה שמקבלת שרשרת ומחזירה את האינדקס של הערך הגבוה ביותר בשרשרת המקושרת
 
        {
 
            if (chain == null) // אם השרשרת ריקה
 
            {
 
                Console.WriteLine("The List Is Empty."); // הודעה מתאימה
 
                return -1; // החזרת -1 במקרה של שרשרת ריקה
 
            }
 
 
 
            Node<int> pos = chain; // משתנה עזר לשמירת השרשרת המקורית
 
            int maxValue = pos.GetValue(); // אתחול הערך המקסימלי לערך של החוליה הראשונה
 
            int maxIndex = 0; // אינדקס המקסימום מתחיל מאפס
 
            int currentIndex = 0; // מונה אינדקס נוכחי
 
 
 
            // לולאה שעוברת על כל החוליות ברשימה
 
            while (pos != null)
 
            {
 
                if (pos.GetValue() > maxValue) // אם הערך הנוכחי גדול מהערך המקסימלי הקודם
 
                {
 
                    maxValue = pos.GetValue(); // עדכון הערך המקסימלי
 
                    maxIndex = currentIndex; // עדכון האינדקס למיקום הגבוה ביותר
 
                }
 
 
 
                pos = pos.GetNext(); // מעבר לחוליה הבאה
 
                currentIndex++; // עדכון האינדקס הנוכחי
 
            }
 
 
 
            return maxIndex; // החזרת האינדקס של הערך הגבוה ביותר
 
        }
 
 
 
        public static List<int> FindMinValueIndexes(Node<int> chain) // פונקציה שמקבלת שרשרת ומחזירה את האינדקס/ים עם הערך/ים הכי נמוך/ים
 
        {
 
            if (chain == null) // אם הרשימה ריקה
 
            {
 
                Console.WriteLine("The List Is Empty."); // הודעה מתאימה
 
                return null; // מקרה קיצון, יציאה מהפונקציה
 
            }
 
 
 
            Node<int> pos = chain; // משתנה עזר שמחזיק את השרשרת המקורית
 
            int minValue = pos.GetValue(); // אתחול ערך מינימלי עם הערך של האיבר הראשון
 
            List<int> minIndexes = new List<int>(); // רשימה להחזיק את האינדקסים של הערך/ים המינימלי/ם
 
            int currentIndex = 0; // מונה אינדקסים נוכחי
 
 
 
            // לולאה שעוברת על כל הצמתים ברשימה
 
            while (pos != null)
 
            {
 
                if (pos.GetValue() < minValue) // אם הערך הנוכחי קטן מהערך המינימלי הקודם
 
                {
 
                    minValue = pos.GetValue(); // עדכון הערך המינימלי
 
                    minIndexes.Clear(); // ניקוי אינדקסים קודמים
 
                    minIndexes.Add(currentIndex); // הוספת האינדקס המינימלי החדש
 
                }
 
 
 
                else if (pos.GetValue() == minValue) // אם הערך הנוכחי שווה לערך המינימלי הנוכחי
 
                {
 
                    minIndexes.Add(currentIndex); // הוספת אינדקס זה לרשימת האינדקסים המינימליים
 
                }
 
 
 
                pos = pos.GetNext(); // // מעבר לאיבר הבא
 
                currentIndex++; // עדכון האינדקס הנוכחי
 
            }
 
 
 
            return minIndexes; // החזרת האינדקסים של הערכים המינימלים
 
        }
 
 
 
        public static List<int> FindMaxValueIndexes(Node<int> chain) // פונקציה שמקבלת שרשרת ומחזירה את האינדקסים עם הערך/ים הכי גבוה/ים בשרשרת מקושרת
 
        {
 
            if (chain == null) // אם הרשימה ריקה
 
            {
 
                Console.WriteLine("The List Is Empty."); // הודעה מתאימה
 
                return null; // מקרה קיצון, יציאה מהפונקציה
 
            }
 
 
 
            Node<int> pos = chain; // משתנה עזר לשמירת השרשרת המקורית
 
            int maxValue = pos.GetValue(); // אתחול ערך מקסימלי עם הערך של האיבר הראשון
 
            List<int> maxIndexes = new List<int>(); // רשימה להחזיק את האינדקסים של הערך/ים המקסימלי/ם
 
            int currentIndex = 0; // מונה אינדקסים נוכחי
 
 
 
            // לולאה שעוברת על כל הצמתים ברשימה
 
            while (pos != null)
 
            {
 
                if (pos.GetValue() > maxValue) // אם הערך הנוכחי גדול מהערך המקסימלי הקודם
 
                {
 
                    maxValue = pos.GetValue(); // עדכון הערך המקסימלי
 
                    maxIndexes.Clear(); // ניקוי אינדקסים קודמים
 
                    maxIndexes.Add(currentIndex); // הוספת האינדקס המקסימלי החדש
 
                }
 
                else if (pos.GetValue() == maxValue) // אם הערך הנוכחי שווה לערך המקסימלי הנוכחי
 
                {
 
                    maxIndexes.Add(currentIndex); // הוספת אינדקס זה לרשימת האינדקסים המקסימליים
 
                }
 
 
 
                pos = pos.GetNext(); // מעבר לאיבר הבא
 
                currentIndex++; // עדכון האינדקס הנוכחי
 
            }
 
 
 
            return maxIndexes; // החזרת האינדקסים של הערכים המקסימליים
 
        }
 
 
 
        public static List<int> FindSecondMaxValueIndex(Node<int> chain) // פונקציה שמקבלת שרשרת 
 
        {
 
            if (chain == null) return new List<int>(); // אם הרשימה ריקה, מחזירים רשימה ריקה
 
 
 
            int max = int.MinValue;
 
            int secondMax = int.MinValue;
 
            List<int> secondMaxIndexes = new List<int>();
 
            int index = 0;
 
 
 
            // סיבוב על כל האלמנטים בשרשרת
 
            for (Node<int> current = chain; current != null; current = current.GetNext())
 
            {
 
                // מעדכנים את הערכים המקסימליים
 
                if (current.GetValue() > max)
 
                {
 
                    secondMax = max; // הערך הקודם הופך לערך השני הכי גבוה
 
                    max = current.GetValue(); // מעדכנים את הערך המקסימלי
 
                }
 
 
 
                else if (current.GetValue() > secondMax && current.GetValue() < max)
 
                {
 
                    secondMax = current.GetValue(); // מעדכנים את הערך השני הכי גבוה
 
                }
 
 
 
                index++;
 
            }
 
 
 
            // מחפשים את כל האינדקסים של הערך השני הכי גבוה
 
            index = 0; // מאפסים את האינדקס
 
 
 
            for (Node<int> current = chain; current != null; current = current.GetNext())
 
            {
 
                if (current.GetValue() == secondMax)
 
                {
 
                    secondMaxIndexes.Add(index); // מוסיפים את האינדקס לרשימה
 
                }
 
 
 
                index++;
 
            }
 
 
 
            return secondMaxIndexes; // מחזירים את הרשימה של אינדקסים
 
        }
 
 
 
        public static List<int> FindSecondMinValueIndex(Node<int> chain) // פונקציה שמקבלת שרשרת
 
        {
 
            if (chain == null) return new List<int>(); // אם הרשימה ריקה, מחזירים רשימה ריקה
 
 
 
            int min = int.MaxValue;
 
            int secondMin = int.MaxValue;
 
            List<int> secondMinIndexes = new List<int>();
 
            int index = 0;
 
 
 
            // סיבוב על כל האלמנטים בשרשרת
 
            for (Node<int> current = chain; current != null; current = current.GetNext())
 
            {
 
                // מעדכנים את הערכים המינימליים
 
                if (current.GetValue() < min)
 
                {
 
                    secondMin = min; // הערך הקודם הופך לערך השני הכי נמוך
 
                    min = current.GetValue(); // מעדכנים את הערך המינימלי
 
                }
 
                else if (current.GetValue() < secondMin && current.GetValue() > min)
 
                {
 
                    secondMin = current.GetValue(); // מעדכנים את הערך השני הכי נמוך
 
                }
 
 
 
                index++;
 
            }
 
 
 
            // מחפשים את כל האינדקסים של הערך השני הכי נמוך
 
            index = 0; // מאפסים את האינדקס
 
 
 
            for (Node<int> current = chain; current != null; current = current.GetNext())
 
            {
 
                if (current.GetValue() == secondMin)
 
                {
 
                    secondMinIndexes.Add(index); // מוסיפים את האינדקס לרשימה
 
                }
 
 
 
                index++;
 
            }
 
 
 
            return secondMinIndexes; // מחזירים את הרשימה של אינדקסים
 
        }
 
 
 
        public static bool IsPalindrome(Node<int> chain) // פונקציה שבודקת אם רשימה מקושרת היא פלינדרום
 
        {
 
            // אם הרשימה ריקה או כוללת איבר אחד, היא נחשבת פלינדרום
 
            if (chain == null || chain.GetNext() == null) return true;
 
 
 
            // שלב 1: העתקת הערכים לרשימה כדי שניתן יהיה לקרוא אחורה
 
            List<int> values = new List<int>();
 
            Node<int> current = chain; // משתנה עזר לשמירת השרשרת המקורית
 
 
 
            while (current != null) // לולאה שעוברת על כל האיברים ומוסיפה אותם לרשימה
 
            {
 
                values.Add(current.GetValue());
 
                current = current.GetNext();
 
            }
 
 
 
            // שלב 2: בדיקת סימטריה
 
            int left = 0; // התחלה של הרשימה
 
            int right = values.Count - 1; // סוף של הרשימה
 
 
 
            while (left < right) // לולאה שממשיכה כל עוד יש איברים משני הצדדים
 
            {
 
                if (values[left] != values[right]) // אם הערכים אינם שווים
 
                {
 
                    return false; // השרשרת אינה פלינדרום
 
                }
 
                left++;
 
                right--;
 
            }
 
 
 
            return true; // אם כל הערכים היו שווים, הרשימה היא פלינדרום
 
        }
 
 
 
    }
 
}
const Button = styled.button`
  background: red;
  border-radius: 3px;
  border: 2px solid #BF4F74;
  color: #BF4F74;
  margin: 0 1em;
  padding: 0.25em 1em;
`
class livre{
    private String titre;
    private String auteur;
    private int nbp;
    private float prix;
  
    livre(String titre,String auteur,int nbp,float prix){
        this.titre=titre;
        this.auteur=auteur;
        this.nbp=nbp;
        this.prix=prix;
    }
    String getTitre(){
        return this.titre;
    }
    String getAuteur(){
        return this.auteur;
    }
    int getNbp(){
        return this.nbp;
    }
    float getPrix(){
        return this.prix;
    }
    void setTitre(String titre){
        this.titre=titre;
    }
    void setAuteur(String auteur){
        this.auteur=auteur;
    }
    void setNbp(int nbp){
        this.nbp=nbp;
    }
    void setPrix(float prix){
        this.prix=prix;
    }
    public String toString() {
        return "Livre{" +
                "titre='" + titre + '\'' +
                ", auteur='" + auteur + '\'' +
                ", nombrePages=" + nbp +
                ", prix=" + prix +
                '}';
    }
    public boolean equals(Object obj) {
    if (this == obj) {
        return true;
    }

    if (obj == null || getClass() != obj.getClass()) {
        return false;
    }

    livre autre = (livre) obj;

    return this.titre.equals(autre.getTitre())
        && this.auteur.equals(autre.getAuteur());
      
      
}}
class etagere{
    private livre [] tab;
    private int nblivre;
    etagere(int n){
        this.tab=new livre[n];
        this.nblivre=0;
    }
    int getNbmax(){
        return tab.length;
    }
    int getNblivre(){
        return this.nblivre;
    }
    
   boolean ajouter(livre l){
       if(nblivre<tab.length){
           tab[nblivre]=l;
           nblivre++;
           return true;
       }
       return false;
   }
   livre getLivre(int p){
       if(p>0 && p<=nblivre){
           return tab[p-1];
       }
        return null;
       }
    int cher(String ti,String au){
        int nb=0;
        for(int i=0;i<nblivre;i++){
            if(tab[i].getTitre().equals(ti) && tab[i].getAuteur().equals(au)){
                return i+1;
            }
        }
        return 0;
    }
 int [] cherch(String ti,String au){
     int x=0,x1=0;
      for(int i=0;i<nblivre;i++){
            if(tab[i].getTitre().equals(ti) && tab[i].getAuteur().equals(au)){
                x++;
            }}
            int []t=new int[x];
             for(int i=0;i<nblivre;i++){
            if(tab[i].getTitre().equals(ti) && tab[i].getAuteur().equals(au)){
                t[x1]=i+1;
                x1++;}}
        return t;
 }
        
 
 

void affiche() {
        System.out.println("Livres sur l'etagere :");
        for (int i = 0; i < nblivre; i++) {
            System.out.println((i + 1) + ". " + tab[i]);
        }
    }

}
public class Main{
    public static void main(String [] args){
        livre l1=new livre("koukou","ahmed",250,3500);
        livre l2=new livre("boubou","iyed",630,7800);
        livre l3=new livre("kouk","wael",852,6988);
        livre l4=new livre("boubou","iyed",630,7800);
        System.out.println(l1.toString());
        System.out.println(l2.toString());
        etagere e1=new etagere(5);
        e1.ajouter(l1);
        e1.ajouter(l2);
        e1.ajouter(l3);
        e1.ajouter(l4);
        e1.affiche(); 
        int[] position = e1.cherch("boubou", "iyed");
        if (position.length > 0) {
            System.out.println("Positions des livres trouves");
           for (int i = 0; i < position.length; i++) {
        System.out.println(position[i]);
    }
} else {
    System.out.println("Aucun livre trouvé avec ce titre et cet auteur.");
        
        } }}
        
        
        
        
        
        
        
        
        
        
        
        
        
        
package oddevenprime;

import java.util.Scanner;
public class OddEvenPrime {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
       Scanner input = new Scanner(System.in);
        System.out.print("Enter starting number: ");
        int start = input.nextInt();
        System.out.print("Enter ending number: ");
        int end = input.nextInt();

        for (int num = start; num <= end; num++) {
            if (num % 2 == 0) {
                System.out.println(num + " is even");
            } else {
                System.out.println(num + " is odd");
            }

            boolean isPrime = true;
            for (int i = 2; i <= Math.sqrt(num); i++) {
                if (num % i == 0) {
                    isPrime = false;
                    break;
                }
            }

            if (isPrime && num > 1) {
                System.out.println(num + " is prime");
            }
        }
    }
}
package fibonacciseries;
import java.util.Scanner;
public class FibonacciSeries {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
              Scanner input = new Scanner(System.in);
        System.out.print("Enter the size of the series: ");
        int size = input.nextInt();

        int first = 0, second = 1, next;

        System.out.print(first + " " + second + " ");

        for (int i = 3; i <= size; i++) {
            next = first + second;
            System.out.print(next + " ");
            first = second;
            second = next;
        }
    }
}
star

Thu Dec 12 2024 17:57:16 GMT+0000 (Coordinated Universal Time) https://www.google.com/search?q

@Ruslan

star

Thu Dec 12 2024 16:36:23 GMT+0000 (Coordinated Universal Time)

@Yakostoch #c++

star

Thu Dec 12 2024 15:46:14 GMT+0000 (Coordinated Universal Time)

@jrg_300i #undefined

star

Thu Dec 12 2024 11:02:09 GMT+0000 (Coordinated Universal Time) https://appticz.com/bolt-clone

@davidscott #clone_app #appticz

star

Thu Dec 12 2024 10:25:17 GMT+0000 (Coordinated Universal Time)

@swina #javascript

star

Thu Dec 12 2024 10:08:50 GMT+0000 (Coordinated Universal Time) https://docs.hise.dev/tutorials/midi/index.html#press-a-button-to-play-a-specific-midi-note

@swina #javascript

star

Thu Dec 12 2024 10:01:06 GMT+0000 (Coordinated Universal Time)

@login123

star

Thu Dec 12 2024 09:58:29 GMT+0000 (Coordinated Universal Time) https://docs.hise.dev/tutorials/midi/index.html#play-chords-from-single-notes

@swina #javascript

star

Thu Dec 12 2024 09:56:44 GMT+0000 (Coordinated Universal Time) https://docs.hise.dev/tutorials/midi/index.html#audio-render-example

@swina

star

Thu Dec 12 2024 09:55:21 GMT+0000 (Coordinated Universal Time) https://docs.hise.dev/tutorials/midi/index.html#clocksynced-arpeggiator

@swina #hise

star

Thu Dec 12 2024 09:53:34 GMT+0000 (Coordinated Universal Time) https://docs.hise.dev/tutorials/midi/index.html#monophonic-glide-script

@swina #hise

star

Thu Dec 12 2024 09:49:28 GMT+0000 (Coordinated Universal Time) https://docs.hise.dev/tutorials/midi/index.html#clocksynced-arpeggiator

@swina

star

Thu Dec 12 2024 07:26:22 GMT+0000 (Coordinated Universal Time) https://askubuntu.com/questions/760896/how-can-i-fix-apt-error-w-target-packages-is-configured-multiple-times

@Shex

star

Thu Dec 12 2024 04:47:48 GMT+0000 (Coordinated Universal Time) https://learn.microsoft.com/en-us/answers/questions/1466196/windows-spotlight-not-working

@Sourav010

star

Wed Dec 11 2024 21:56:52 GMT+0000 (Coordinated Universal Time)

@davidmchale

star

Wed Dec 11 2024 11:33:07 GMT+0000 (Coordinated Universal Time)

@MinaTimo

star

Wed Dec 11 2024 10:03:17 GMT+0000 (Coordinated Universal Time)

@MinaTimo

star

Wed Dec 11 2024 05:08:58 GMT+0000 (Coordinated Universal Time) https://p403n1x87.github.io/getting-started-with-x86-64-assembly-on-linux.html

@streatsweaper7

star

Wed Dec 11 2024 03:53:04 GMT+0000 (Coordinated Universal Time)

@traez

star

Tue Dec 10 2024 19:52:41 GMT+0000 (Coordinated Universal Time)

@shahmeeriqbal

star

Tue Dec 10 2024 15:01:20 GMT+0000 (Coordinated Universal Time) https://axios-http.com/docs/post_example

@Abd_ElRahaman #javascript

star

Tue Dec 10 2024 09:22:17 GMT+0000 (Coordinated Universal Time) https://chatgpt.com/share/670e745d-acc4-800f-b3a2-bfd370850cf7

@sayedhurhussain

star

Tue Dec 10 2024 07:18:48 GMT+0000 (Coordinated Universal Time)

@Huzaifa

star

Tue Dec 10 2024 06:19:03 GMT+0000 (Coordinated Universal Time)

@wizyOsva #bash #openssl #cifrado

star

Tue Dec 10 2024 05:36:48 GMT+0000 (Coordinated Universal Time)

@thanuj

star

Tue Dec 10 2024 02:20:44 GMT+0000 (Coordinated Universal Time) https://unix.stackexchange.com/questions/608207/how-to-use-multi-threading-for-creating-and-extracting-tar-xz?newreg

@ssstevenson #bash

star

Mon Dec 09 2024 22:31:09 GMT+0000 (Coordinated Universal Time) https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007PycvnSAB

@dannygelf #flow #salesforce #email

star

Mon Dec 09 2024 21:19:55 GMT+0000 (Coordinated Universal Time)

@davidmchale

star

Mon Dec 09 2024 21:15:43 GMT+0000 (Coordinated Universal Time)

@davidmchale

star

Mon Dec 09 2024 21:10:59 GMT+0000 (Coordinated Universal Time)

@jrray ##linux

star

Mon Dec 09 2024 18:40:56 GMT+0000 (Coordinated Universal Time)

@WXCanada

star

Mon Dec 09 2024 15:26:13 GMT+0000 (Coordinated Universal Time)

@jrg_300i #undefined

star

Mon Dec 09 2024 14:04:17 GMT+0000 (Coordinated Universal Time)

@saharmess #mysql

star

Mon Dec 09 2024 12:29:19 GMT+0000 (Coordinated Universal Time) https://appticz.com/ubereats-clone

@aditi_sharma_

star

Mon Dec 09 2024 10:21:49 GMT+0000 (Coordinated Universal Time) https://www.coinsclone.com/cost-to-create-multi-chain-nft-marketplace-like-opensea-rarible/

@Emmawoods #webassembly #php #javascript #nft

star

Mon Dec 09 2024 10:03:22 GMT+0000 (Coordinated Universal Time)

@Taimoor

star

Mon Dec 09 2024 09:44:46 GMT+0000 (Coordinated Universal Time)

@Taimoor

star

Mon Dec 09 2024 09:44:07 GMT+0000 (Coordinated Universal Time)

@Taimoor

star

Mon Dec 09 2024 09:06:04 GMT+0000 (Coordinated Universal Time) https://lmarena.ai/

@admino

star

Mon Dec 09 2024 09:02:26 GMT+0000 (Coordinated Universal Time)

@iliavial

star

Mon Dec 09 2024 09:00:09 GMT+0000 (Coordinated Universal Time)

@iliavial

star

Mon Dec 09 2024 08:59:33 GMT+0000 (Coordinated Universal Time)

@iliavial

star

Mon Dec 09 2024 08:58:52 GMT+0000 (Coordinated Universal Time)

@iliavial

star

Mon Dec 09 2024 06:33:35 GMT+0000 (Coordinated Universal Time) https://www.addustechnologies.com/blog/triangular-arbitrage-bot-trading-opportunities

@Seraphina

star

Sun Dec 08 2024 18:45:42 GMT+0000 (Coordinated Universal Time) https://www.thiscodeworks.com/6755e6d45d41c300140a429c

@idans8

star

Sun Dec 08 2024 16:22:34 GMT+0000 (Coordinated Universal Time) https://styled-components.com/

@Abd_ElRahaman #tsx

star

Sun Dec 08 2024 14:58:14 GMT+0000 (Coordinated Universal Time)

@saharmess #mysql

Save snippets that work with our extensions

Available in the Chrome Web Store Get Firefox Add-on Get VS Code extension