Snippets Collections
<?php 

// A message stored in a string
$statusMessage = "Process completed#";

// Remove the last symbol from the message
$cleanMessage = substr($statusMessage, 0, -1);

// Display the messages
echo "Before cleanup: " . $statusMessage . "\n";
echo "After cleanup: " . $cleanMessage . "\n";


// Here is the output

/*
Before cleanup: Process completed#
After cleanup: Process completed
*/
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":cute-sun: Boost Days - What's On This Week :cute-sun:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n\n Let's get ready to dive into another week here in the Melbourne Office :yay: "
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": "Xero Café :coffee:",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n :new-thing: *This week we are offering:* \n\n :cookie:  A selection of yummy cookies from an Indigeous supplier Coocee Cookies. \n\n *Weekly Café Special :coffee-eyes:* Caramel Macchiato"
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": "Tuesday 20th May :calendar-date-20:",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": ":hands: Join us in the Wominjeka Breakout Space for the Global All Hands live in Melbourne from *9.00am-10.00am*.  "
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": " Wednesday 21st May :calendar-date-21:",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": " \n\n :lunch: *Light Lunch*: from *12pm* in the Wominjeka Breakout Space. Please see the menu in the :thread: \n\n"
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": "Thursday, 22nd May :calendar-date-22:",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": ":waffle::juicebox:*Breakfast*:from *8:30am - 10:30am* in the Wominjeka Breakout Space."
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Stay tuned for more fun throughout the year. :party-wx:"
			}
		}
	]
}
<td><?= date("d/m/Y", strtotime($event['date'])) ?></td>
<?php
// Esempio di chiamata cURL che ritorna un JSON con un timestamp
$curl = curl_init("https://esempio.com/api/data"); // Cambia con la tua URL
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close($curl);

// Decodifica JSON (supponiamo che abbia un campo 'timestamp')
$data = json_decode($response, true);
$remoteTimestamp = isset($data['timestamp']) ? (int)$data['timestamp'] : null;

if ($remoteTimestamp === null) {
    die("Timestamp non trovato nella risposta");
}

// Crea oggetto DateTime dal timestamp ricevuto
$remoteDate = (new DateTime())->setTimestamp($remoteTimestamp);

// Crea oggetto DateTime per 1 anno fa a mezzanotte
$localDate = new DateTime();
$localDate->modify('-1 year')->setTime(0, 0, 0);

// Confronto
if ($remoteDate < $localDate) {
    echo "Il timestamp remoto è più vecchio di 1 anno.\n";
} else {
    echo "Il timestamp remoto è più recente di 1 anno.\n";
}

// Debug: stampa date
echo "Data remota: " . $remoteDate->format('Y-m-d H:i:s') . "\n";
echo "Data di riferimento: " . $localDate->format('Y-m-d H:i:s') . "\n";
?>
/lightning/o/Opportunity/new?RecordType={RecordTypeId}

/lightning/o/Opportunity/new?useRecordTypeCheck=1
/lightning/o/Contact/new?defaultFieldValues=LastName=Smith,AccountId={!Account.Id}

/lightning/o/Account/new?defaultFieldValues=CustomCheckbox__c={!IF(Account.SomeCheckbox__c, true, false)} 
display:flex;
flex-direction:column;
}
.widget.skin154 .cpSlider{
display:flex;

}
.widget.skin154 .text{
padding:1em;
padding-bottom:0;
position:relative;
display:flex;
flex-direction:column;
height:100%;
}

.widget.skin154 .widgetDesc{
display:flex;
flex-direction:column;
justify-content:space-between;
height:100%;
Copyright [yyyy] [name of copyright owner]

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Want to be a millionaire? Fantasy sports apps might just be your winning move. With the growing craze for online fantasy leagues, investing in a fantasy sports app is gaining serious attention. These apps offer users a chance to engage, compete, and win real rewards. If you're eyeing this booming trend, fantasy sports app development could open doors to massive returns. It’s not just a game—it’s a smart investment opportunity in the digital age.


Beleaf Technologies change your innovative ideas into real-world solutions by delivering custom software development, helping businesses grow with technology tailored to their unique goals and challenges.


Know more :https://www.beleaftechnologies.com/fantasy-sports-app-development-company

Whatsapp: +91 7904323274
Telegram: @BeleafSoftTech
Mail to: mailto:business@beleaftechnologies.com


d sdsad adsa dsa dsa dsa
-- MONTH x CATEGORY X RULE wise Rejected txn & gmv, Attempted txn & gmv and Rejection rate
CREATE TABLE team_kingkong.onus_rej_rate_monthly AS
WITH flattened as 
    (SELECT DISTINCT mnth, transactionid, strategy_name, actionrecommended, amt, case when m1.mid is not null then category else 'Others' end as business_category FROM
        (select transactionid
        , json_extract_scalar(actionrecommendedrules,'$.actionRecommendedRules[0]') as strategy_name
        , cast(eventAmount as double)/100 as amt
        , substr(cast(dateinserted as varchar), 1,7) as mnth
        -- , paymethod,eventName,addAndPay
        , paytmmerchantid
        , actionrecommended
        FROM cdp_risk_transform.maquette_flattened_onus_snapshot_v3
        WHERE dl_last_updated BETWEEN date '2025-01-01' AND DATE'2025-05-31'
        AND SOURCE = 'PG') a
    left join 
        (select * from team_kingkong.voc_mid_categorization
        where mid != '') m1 
    on a.paytmmerchantid = m1.mid)
 
SELECT A.mnth, A.business_category, A.strategy_name, A.rej_txns, A.rej_gmv, B.attempted_txns, B.attempted_gmv FROM
    (select mnth
    , business_category
    , strategy_name
    , count(transactionid) as rej_txns
    , sum(amt) as rej_gmv
    from flattened
    WHERE actionrecommended = 'BLOCK'
    GROUP BY 1,2,3)A
INNER JOIN
    (SELECT mnth, business_category
    , count(transactionid) as attempted_txns
    , sum(amt) as attempted_gmv
    FROM flattened
    GROUP BY 1,2)B
ON A.mnth = B.mnth AND A.business_category = B.business_category;
 


-- Rule X Monthly Breach rate
SELECT substr(cast(dateinserted as varchar(30)), 1, 7) as year_month, COUNT(transactionid) as breach_cnt, SUM(amt) as breach_amt
, 'CCBP_attempt_Txn_user_1d_7d_30d' AS rule_name
FROM team_kingkong.onus_CCBP_attempt_Txn_user_1d_7d_30d_breaches
GROUP BY 1

-- UNION

-- SELECT substr(cast(txn_date as varchar(30)), 1, 7) as year_month, COUNT(transactionid) as breach_cnt, SUM(txn_amount) as breach_amt
-- , 'on_us_sbi_nb_limit' AS rule_name 
-- FROM team_kingkong.onus_on_us_sbi_nb_limit_breaches
-- GROUP BY 1

UNION

SELECT substr(cast(dateinserted as varchar(30)), 1, 7) as year_month, COUNT(transactionid) as breach_cnt, SUM(amt) as breach_amt
, 'CCBP_sucTxn_user_1d_7d_30d' AS rule_name  
FROM team_kingkong.onus_CCBP_sucTxn_user_1d_7d_30d_breaches
GROUP BY 1

UNION

SELECT substr(cast(dateinserted as varchar(30)), 1, 7) as year_month, COUNT(transactionid) as breach_cnt, SUM(amt) as breach_amt
, 'Fastag_TrustedUser_CCDC_Weekly_Monthly_limitCheck' AS rule_name  
FROM team_kingkong.onus_Fastag_TrustedUser_CCDC_Weekly_Monthly_limitCheck_breaches
GROUP BY 1

UNION

SELECT substr(cast(dateinserted as varchar(30)), 1, 7) as year_month, COUNT(transactionid) as breach_cnt, SUM(amt) as breach_amt
, 'Fastag_Trusted_VRN_CCDC_Weekly_Monthly_limitCheck' AS rule_name  
FROM team_kingkong.onus_Fastag_Trusted_VRN_CCDC_Weekly_Monthly_limitCheck_breaches
GROUP BY 1

UNION

SELECT substr(cast(dateinserted as varchar(30)), 1, 7) as year_month, COUNT(transactionid) as breach_cnt, SUM(amt) as breach_amt
, 'UtilityEventTxnLImit' AS rule_name  
FROM team_kingkong.onus_UtilityEventTxnLImit_breaches
GROUP BY 1

UNION

SELECT substr(cast(dateinserted as varchar(30)), 1, 7) as year_month, COUNT(transactionid) as breach_cnt, SUM(amt) as breach_amt
, 'on_us_loan_repayments_user_limits' AS rule_name  
FROM team_kingkong.onus_on_us_loan_repayments_user_limits_breaches
GROUP BY 1

UNION

SELECT substr(cast(dateinserted as varchar(30)), 1, 7) as year_month, COUNT(transactionid) as breach_cnt, SUM(amt) as breach_amt
, 'Fastag_NonTrustedUser_CCDC_Monthly_limitCheck' AS rule_name  
FROM team_kingkong.onus_Fastag_NonTrustedUser_CCDC_Monthly_limitCheck_breaches
GROUP BY 1

UNION

SELECT substr(cast(dateinserted as varchar(30)), 1, 7) as year_month, COUNT(transactionid) as breach_cnt, SUM(amt) as breach_amt
, 'CCBP_GMV_per_user_1d_7d_30d' AS rule_name  
FROM team_kingkong.onus_CCBP_GMV_per_user_1d_7d_30d_breaches
GROUP BY 1;

-- ONUS OVERALL BREACH RATE
SELECT substr(cast(txn_date as varchar(30)), 1, 7) as year_month, COUNT(transactionid) as breach_cnt, SUM(amt) as breach_amt FROM
(SELECT DATE(dateinserted) AS txn_date, transactionid, amt
FROM team_kingkong.onus_CCBP_attempt_Txn_user_1d_7d_30d_breaches

-- UNION

-- SELECT DATE(dateinserted) AS txn_date, transactionid, amt
-- FROM team_kingkong.onus_on_us_sbi_nb_limit_breaches

UNION

SELECT DATE(dateinserted) AS txn_date, transactionid, amt 
FROM team_kingkong.onus_CCBP_sucTxn_user_1d_7d_30d_breaches

UNION

SELECT DATE(dateinserted) AS txn_date, transactionid, amt
FROM team_kingkong.onus_Fastag_TrustedUser_CCDC_Weekly_Monthly_limitCheck_breaches

UNION

SELECT DATE(dateinserted) AS txn_date, transactionid, amt
FROM team_kingkong.onus_Fastag_Trusted_VRN_CCDC_Weekly_Monthly_limitCheck_breaches

UNION

SELECT DATE(dateinserted) AS txn_date, transactionid, amt
FROM team_kingkong.onus_UtilityEventTxnLImit_breaches

UNION

SELECT DATE(dateinserted) AS txn_date, transactionid, amt
FROM team_kingkong.onus_on_us_loan_repayments_user_limits_breaches

UNION

SELECT DATE(dateinserted) AS txn_date, transactionid, amt
FROM team_kingkong.onus_Fastag_NonTrustedUser_CCDC_Monthly_limitCheck_breaches

UNION

SELECT DATE(dateinserted) AS txn_date, transactionid, amt
FROM team_kingkong.onus_CCBP_GMV_per_user_1d_7d_30d_breaches
)
GROUP BY 1;
-- RULE x CATEGORY x UPI SUBTYPE X MONTH wise rejected txn & gmv, attempted txn & gmv & rejection rate
-- CREATE TABLE team_kingkong.tpap_rej_rate_monthly AS
INSERT INTO team_kingkong.tpap_rej_rate_monthly
with overall as 
(SELECT DISTINCT A.year_month
, A.category
, IF(C.upi_subtype IS NOT NULL, c.upi_subtype, IF(A.category = 'LITE_MANDATE', 'UPI_LITE_MANDATE', '')) AS upi_subtype
, A.amount
, A.txn_id
, risk_code
, action_recommended
FROM
    (SELECT DISTINCT substr(cast(dl_last_updated as varchar(30)), 1, 7) as year_month, txn_id, amount, category
    FROM switch.txn_info_snapshot_v3
    WHERE DATE(dl_last_updated) BETWEEN date'2025-04-01' AND DATE('2025-05-31')
    AND DATE(created_on) BETWEEN date'2025-04-01' AND DATE('2025-05-31'))A
LEFT JOIN
    (SELECT DISTINCT txnid
    , CAST(json_extract_scalar(request, '$.requestPayload.amount') AS DOUBLE) as txn_amount
    , regexp_replace(cast(json_extract(request, '$.evaluationType') as varchar), '"', '') AS upi_subtype
    , regexp_replace(cast(json_extract(response, '$.messages.cst[0]') as varchar), '"', '') as risk_code
    , json_extract_scalar(response, '$.action_recommended') AS action_recommended
    FROM tpap_hss.upi_switchv2_dwh_risk_data_snapshot_v3
    WHERE DATE(dl_last_updated) BETWEEN date'2025-04-01' AND DATE('2025-05-31')
    AND (lower(regexp_replace(cast(json_extract(request, '$.requestPayload.payerVpa') as varchar), '"', '')) LIKE '%@paytm%'
    or lower(regexp_replace(cast(json_extract(request, '$.requestPayload.payerVpa') as varchar), '"', '')) like '%@pt%'))C
on A.txn_id = C.txnid)
 
SELECT A.year_month, A.category, A.upi_subtype, A.risk_code, A.rej_txns, A.rej_gmv, B.attempted_txns, B.attempted_gmv FROM
    (select year_month
    , category
    , upi_subtype
    , risk_code
    , count(txn_id) as rej_txns
    , sum(amount) as rej_gmv
    from overall
    WHERE action_recommended = 'BLOCK'
    GROUP BY 1,2,3,4)A
INNER JOIN
    (SELECT year_month, category, upi_subtype
    , count(txn_id) as attempted_txns
    , sum(amount) as attempted_gmv
    FROM overall
    GROUP BY 1,2,3)B
ON A.year_month = B.year_month AND A.category = B.category AND A.upi_subtype = B.upi_subtype;
        
        
-- Rule X Monthly Breach rate
SELECT substr(cast(txn_date as varchar(30)), 1, 7) as year_month, COUNT(txn_id) as breach_cnt, SUM(txn_amount) as breach_amt
, 'tpap_risk200_breaches' AS rule_name
FROM team_kingkong.tpap_risk200_breaches
GROUP BY 1

UNION

SELECT substr(cast(txn_date as varchar(30)), 1, 7) as year_month, COUNT(txn_id) as breach_cnt, SUM(txn_amount) as breach_amt
, 'tpap_risk307_breaches' AS rule_name 
FROM team_kingkong.tpap_risk307_breaches
GROUP BY 1

UNION

SELECT substr(cast(txn_date as varchar(30)), 1, 7) as year_month, COUNT(txn_id) as breach_cnt, SUM(txn_amount) as breach_amt
, 'tpap_risk304_breaches' AS rule_name  
FROM team_kingkong.tpap_risk304_breaches
GROUP BY 1

UNION

SELECT substr(cast(txn_date as varchar(30)), 1, 7) as year_month, COUNT(txn_id) as breach_cnt, SUM(txn_amount) as breach_amt
, 'tpap_risk127_breaches' AS rule_name  
FROM team_kingkong.tpap_risk127_breaches
GROUP BY 1

UNION

SELECT substr(cast(txn_date as varchar(30)), 1, 7) as year_month, COUNT(txn_id) as breach_cnt, SUM(txn_amount) as breach_amt
, 'tpap_risk005_breaches' AS rule_name  
FROM team_kingkong.tpap_risk005_breaches
GROUP BY 1

UNION

SELECT substr(cast(txn_date as varchar(30)), 1, 7) as year_month, COUNT(txn_id) as breach_cnt, SUM(txn_amount) as breach_amt
, 'tpap_risk306_breaches' AS rule_name  
FROM team_kingkong.tpap_risk306_breaches
GROUP BY 1

UNION

SELECT substr(cast(txn_date as varchar(30)), 1, 7) as year_month, COUNT(txn_id) as breach_cnt, SUM(txn_amount) as breach_amt
, 'tpap_risk236_breaches' AS rule_name  
FROM team_kingkong.tpap_risk236_breaches
GROUP BY 1

UNION

SELECT substr(cast(txn_date as varchar(30)), 1, 7) as year_month, COUNT(txn_id) as breach_cnt, SUM(txn_amount) as breach_amt
, 'tpap_risk235_breaches' AS rule_name  
FROM team_kingkong.tpap_risk235_breaches
GROUP BY 1

UNION

SELECT substr(cast(txn_date as varchar(30)), 1, 7) as year_month, COUNT(txn_id) as breach_cnt, SUM(txn_amount) as breach_amt
, 'tpap_risk152_breaches' AS rule_name  
FROM team_kingkong.tpap_risk152_breaches
GROUP BY 1

UNION

SELECT substr(cast(txn_date as varchar(30)), 1, 7) as year_month, COUNT(txn_id) as breach_cnt, SUM(txn_amount) as breach_amt
, 'tpap_risk292_breaches' AS rule_name  
FROM team_kingkong.tpap_risk292_breaches
GROUP BY 1

UNION

SELECT substr(cast(txn_date as varchar(30)), 1, 7) as year_month, COUNT(txn_id) as breach_cnt, SUM(txn_amount) as breach_amt
, 'tpap_risk510_breaches' AS rule_name  
FROM team_kingkong.tpap_risk510_breaches
GROUP BY 1

UNION

SELECT substr(cast(txn_date as varchar(30)), 1, 7) as year_month, COUNT(txn_id) as breach_cnt, SUM(txn_amount) as breach_amt
, 'tpap_risk318_breaches' AS rule_name  
FROM team_kingkong.tpap_risk318_breaches
GROUP BY 1

UNION

SELECT substr(cast(txn_date as varchar(30)), 1, 7) as year_month, COUNT(txn_id) as breach_cnt, SUM(txn_amount) as breach_amt
, 'tpap_risk239_breaches' AS rule_name  
FROM team_kingkong.tpap_risk239_breaches
GROUP BY 1

UNION

SELECT substr(cast(txn_date as varchar(30)), 1, 7) as year_month, COUNT(txn_id) as breach_cnt, SUM(txn_amount) as breach_amt
, 'tpap_risk151_breaches' AS rule_name  
FROM team_kingkong.tpap_risk151_breaches
GROUP BY 1

UNION

SELECT substr(cast(txn_date as varchar(30)), 1, 7) as year_month, COUNT(txn_id) as breach_cnt, SUM(txn_amount) as breach_amt
, 'tpap_risk009_breaches' AS rule_name  
FROM team_kingkong.tpap_risk009_breaches
GROUP BY 1
;


-- TPAP OVERALL BREACH RATE
SELECT substr(cast(txn_date as varchar(30)), 1, 7) as year_month, COUNT(txn_id) as breach_cnt, SUM(txn_amount) as breach_amt FROM
(SELECT DATE(txn_date) AS txn_date, txn_id, txn_amount
FROM team_kingkong.tpap_risk200_breaches

UNION

SELECT DATE(txn_date) AS txn_date, txn_id, txn_amount
FROM team_kingkong.tpap_risk307_breaches

UNION

SELECT DATE(txn_date) AS txn_date, txn_id, txn_amount 
FROM team_kingkong.tpap_risk304_breaches

UNION

SELECT DATE(txn_date) AS txn_date, txn_id, txn_amount
FROM team_kingkong.tpap_risk127_breaches

UNION

SELECT DATE(txn_date) AS txn_date, txn_id, txn_amount
FROM team_kingkong.tpap_risk005_breaches

UNION

SELECT DATE(txn_date) AS txn_date, txn_id, txn_amount
FROM team_kingkong.tpap_risk306_breaches

UNION

SELECT DATE(txn_date) AS txn_date, txn_id, txn_amount
FROM team_kingkong.tpap_risk236_breaches

UNION

SELECT DATE(txn_date) AS txn_date, txn_id, txn_amount
FROM team_kingkong.tpap_risk235_breaches

UNION

SELECT DATE(txn_date) AS txn_date, txn_id, txn_amount
FROM team_kingkong.tpap_risk152_breaches

UNION

SELECT DATE(txn_date) AS txn_date, txn_id, txn_amount
FROM team_kingkong.tpap_risk292_breaches

UNION

SELECT DATE(txn_date) AS txn_date, txn_id, txn_amount
FROM team_kingkong.tpap_risk510_breaches

UNION

SELECT DATE(txn_date) AS txn_date, txn_id, txn_amount
FROM team_kingkong.tpap_risk318_breaches

UNION

SELECT DATE(txn_date) AS txn_date, txn_id, txn_amount
FROM team_kingkong.tpap_risk239_breaches

UNION

SELECT DATE(txn_date) AS txn_date, txn_id, txn_amount
FROM team_kingkong.tpap_risk151_breaches

UNION

SELECT DATE(txn_date) AS txn_date, txn_id, txn_amount
FROM team_kingkong.tpap_risk009_breaches
)
GROUP BY 1;        
// bad
var leds = stage.selectAll('.led').data(data).enter().append('svg:svg').classed('led', true)
    .attr('width', (radius + margin) * 2).append('svg:g')
    .attr('transform', 'translate(' + (radius + margin) + ',' + (radius + margin) + ')')
    .call(tron.led);

// good
var leds = stage.selectAll('.led')
    .data(data)
  .enter().append('svg:svg')
    .classed('led', true)
    .attr('width', (radius + margin) * 2)
  .append('svg:g')
    .attr('transform', 'translate(' + (radius + margin) + ',' + (radius + margin) + ')')
    .call(tron.led);
var $offCanvasNav = $('.mobile-menu'),
          $offCanvasNavSubMenu = $offCanvasNav.find('.dropdown');
      /*Add Toggle Button With Off Canvas Sub Menu*/
      $offCanvasNavSubMenu.parent().prepend('<span class="menu-expand"><i></i></span>');
      /*Close Off Canvas Sub Menu*/
      $offCanvasNavSubMenu.slideUp();
      /*Category Sub Menu Toggle*/
      $offCanvasNav.on('click', 'li a, li .menu-expand', function(e) {
        console.log('clicked:', e.target, e.currentTarget);
        var $currentTarget = $(e.currentTarget);
        var $this = $(this);
        if (($this.parent().attr('class').match(/\b(menu-item-has-children|has-children|has-sub-menu)\b/)) && ($this.attr('href') === '#' || $this.hasClass('menu-expand'))) {
          e.preventDefault();
          e.stopPropagation();
          if ($this.siblings('ul:visible').length) {
            $this.parent('li').removeClass('active');
            $this.siblings('ul').slideUp();
          } else {
            $this.parent('li').addClass('active');
            $this.closest('li').siblings('li').removeClass('active').find('li').removeClass('active');
            $this.closest('li').siblings('li').find('ul:visible').slideUp();
            $this.siblings('ul').slideDown();
          }
        }
      });
DECLARE
    /*  -------------------------------------------------------------------------------------------
        - L_JSON_RESPONSE:  Variável do tipo CLOB (Character Large Object) que armazenará a resposta JSON da API.
        - L_NEXT_URL:       Variável do tipo VARCHAR2 que armazena a URL da próxima página de resultados da API.
        - L_POKEMON_NAME:   Variável do tipo VARCHAR2 que não é utilizada diretamente no código, mas poderia ser usada para armazenar o nome do Pokémon se necessário.
        - ID:               Variável do tipo NUMBER usada para armazenar o ID do Pokémon extraído da URL.
        -------------------------------------------------------------------------------------------
    */
    L_JSON_RESPONSE CLOB;
    L_NEXT_URL VARCHAR2(4000);
    L_POKEMON_NAME VARCHAR2(100);
    ID  NUMBER;
BEGIN

    -- URL inicial da API para obter os Pokémon
    L_NEXT_URL := 'https://pokeapi.co/api/v2/pokemon/';

    -- Loop para continuar a buscar enquanto houver uma próxima página
    LOOP
        -- Faz a requisição à API
        L_JSON_RESPONSE := APEX_WEB_SERVICE.MAKE_REST_REQUEST(
            P_URL         => L_NEXT_URL,
            P_HTTP_METHOD => 'GET'
        );

        -- Se a resposta não for nula, processa a lista de Pokémon
        IF L_JSON_RESPONSE IS NOT NULL THEN
            -- Loop para processar os nomes dos Pokémon
            FOR C1 IN (
                SELECT JT.name, JT.url
                FROM JSON_TABLE(
                    L_JSON_RESPONSE,
                    '$.results[*]' COLUMNS (
                        name PATH '$.name',
                        url PATH '$.url'
                    )
                ) JT
            ) LOOP

                ID := REGEXP_SUBSTR(C1.url, '(\d+)(/|\?)$', 1, 1, NULL, 1);

                -- Filtrar somente a 1° geração
                IF ID <= 151 THEN

                    -- Insert na tabela base
                    INSERT INTO POKEMON (ID_POKEMON, NAME_POKEMON, URL_POKEMON)
        	        VALUES (ID, C1.name, C1.url);

                END IF;

            END LOOP;

            -- Obtém a URL da próxima página de resultados
            BEGIN
                SELECT JT.next
                INTO L_NEXT_URL
                FROM JSON_TABLE(
                    L_JSON_RESPONSE,
                    '$' COLUMNS (
                        next PATH '$.next'
                    )
                ) JT;

                -- Se a URL for null ou vazia, sai do loop
                IF L_NEXT_URL IS NULL OR L_NEXT_URL = '' OR ID > 151 THEN
                    EXIT;
                END IF;

            EXCEPTION
                WHEN NO_DATA_FOUND THEN
                    -- Se não houver o campo 'next', sai do loop
                    EXIT;
            END;
        ELSE
            DBMS_OUTPUT.PUT_LINE('Resposta vazia recebida.');
            EXIT; -- Se não houver resposta, sai do loop
        END IF;
    END LOOP;

EXCEPTION
    WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE('Erro ao processar a requisição: ' || SQLERRM);
END;
package com.til.tcc.manager.mongo.entity;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.til.tcc.manager.mongo.config.MongoCollections;
import lombok.*;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

@Data
@JsonInclude(value = Include.NON_NULL)
@Document(collection = MongoCollections.COLLECTION_AUFS_TRANSLATION)
@AllArgsConstructor
@NoArgsConstructor
public class AufsConfigTranslationEntity extends BaseMongoEntity {


    //Default Values
    public static final String IN = "IN";
    public static final String DARK = "dark";
    public static final String LIGHT = "light";
    public static final String INR = "INR";

    //Keys Query Node
    public static final String PC = "pc";
    public static final String PLATFORM = "pfm";
    public static final String KEY = "key";
    public static final String CC = "cc";
    public static final String LID = "langId";
    public static final String FV = "fv";
    public static final String THEME = "theme";
    public static final String IS_DEFAULT = "isDefault";
    public static final String ENABLE = "enable";
    public static final String DELETED = "deleted";
    public static final String ID = "_id";

    //Data Property
    @Indexed
    private String pc;

    @Indexed
    private String pfm;

    @Indexed
    private String client;

    @Indexed
    private String key;

    @Indexed
    private Set<String> cc;

    @Indexed
    private Set<Integer> lid;

    @Indexed
    private Integer fv;

    @Indexed
    private Set<String> theme;

    @Indexed
    private Boolean isDefault;

    @Indexed
    protected Boolean enable = false;

    @Indexed
    protected Boolean deleted = false;

    private Map<String, Object> rootTrans;

    public void setRootTrans(Map<String, Object> rootTrans) {
        if (rootTrans != null) {
            this.rootTrans = new HashMap<>();
            rootTrans.forEach((key, value) -> {
                // Convert dot notation to nested maps
                if (key.contains(".")) {
                    createNestedStructure(key, value);
                } else {
                    this.rootTrans.put(key, value);
                }
            });
        } else {
            this.rootTrans = null;
        }
    }

    /**
     * Converts dot-notated keys into proper nested structure
     * Example: "test1.test2" -> {test1: {test2: value}}
     */
    private void createNestedStructure(String keyPath, Object value) {
        String[] parts = keyPath.split("\\.");
        Map<String, Object> current = this.rootTrans;

        for (int i = 0; i < parts.length - 1; i++) {
            current = (Map<String, Object>) current.computeIfAbsent(parts[i], k -> new HashMap<>());
        }

        current.put(parts[parts.length - 1], value);
    }

    /**
     * Gets a value by dot-notated path
     */
    public Object getByPath(String path) {
        if (rootTrans == null || path == null) return null;

        String[] parts = path.split("\\.");
        Object current = rootTrans;

        for (String part : parts) {
            if (!(current instanceof Map)) return null;
            current = ((Map<?, ?>) current).get(part);
        }

        return current;
    }

    /**
     * Removes a value by dot-notated path
     */
    public void removeByPath(String path) {
        if (rootTrans == null || path == null) return;

        String[] parts = path.split("\\.");
        Map<String, Object> current = rootTrans;

        for (int i = 0; i < parts.length - 1; i++) {
            if (!(current.get(parts[i]) instanceof Map)) return;
            current = (Map<String, Object>) current.get(parts[i]);
        }
        current.remove(parts[parts.length - 1]);
    }

}
package com.til.tcc.manager.mongo.service;


import com.til.tcc.manager.constants.Constants;
import com.til.tcc.manager.mongo.entity.AufsConfigTranslationEntity;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Service;

import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;

@Service
@Slf4j
public class AufsConfigTranslationService {

    @Autowired
    private BaseMongoService baseMongoService;

    @Autowired
    private MongoTemplate mongoTemplate;

    public Map<String, Map<Integer, List<AufsConfigTranslationEntity>>> getTranslationConfigs(String pc) {
        if (pc == null) {
            throw new IllegalArgumentException("Parameter 'pc' cannot be null");
        }
        try {
            if(StringUtils.equalsIgnoreCase(pc, "eis")){
                pc = Constants.pc.es.name();
            }else if (StringUtils.equalsIgnoreCase(pc, "tml")){
                pc = Constants.pc.tamilsamayam.name();
            }else if (StringUtils.equalsIgnoreCase(pc, "mly")){
                pc = Constants.pc.malayalamsamayam.name();
            }else if (StringUtils.equalsIgnoreCase(pc, "tlg")){
                pc = Constants.pc.telugusamayam.name();
            }
            Query query = new Query();
            query.addCriteria(Criteria.where(AufsConfigTranslationEntity.PC).is(pc));
            query.addCriteria(Criteria.where(AufsConfigTranslationEntity.ENABLE).is(true));
            List<AufsConfigTranslationEntity> list = baseMongoService.find(query, AufsConfigTranslationEntity.class);
            list.forEach(x -> x.setRootTrans(null));
            return list.stream()
                    .collect(Collectors.groupingBy(AufsConfigTranslationEntity::getPfm,
                            Collectors.groupingBy(AufsConfigTranslationEntity::getFv, Collectors.toList())));
        } catch (Exception e) {
            log.error("Exception occurred for pc: {} ", pc, e);
            throw new RuntimeException("Failed to retrieve translation configs", e);
        }
    }

    public AufsConfigTranslationEntity getById(String id) {
        try {
            Query query = new Query();
            query.addCriteria(Criteria.where(AufsConfigTranslationEntity.ID).is(id));
            return baseMongoService.findOne(query, AufsConfigTranslationEntity.class);
        } catch (Exception e) {
            log.error("Exception occurred for {} ", id, e);
            throw new RuntimeException("Failed to retrieve translation config", e);
        }
    }

    public int updateById(String id, AufsConfigTranslationEntity updatedEntity) {
        try {
            Query query = new Query(Criteria.where("_id").is(id));
            Update update = new Update();
            if(StringUtils.isNotBlank(updatedEntity.getPfm())){
                update.set("pfm", updatedEntity.getPfm());
            }
            if(StringUtils.isNotBlank(updatedEntity.getPc())){
                update.set("pc", updatedEntity.getPc());
            }
            if(Objects.nonNull(updatedEntity.getFv())){
                update.set("fv", updatedEntity.getFv());
            }
            if(Objects.nonNull(updatedEntity.getEnable())){
                update.set("enable", updatedEntity.getEnable());
            }
            if(updatedEntity.getRootTrans() != null){
                update.set("rootTrans", updatedEntity.getRootTrans());
            }
            return baseMongoService.updateOne(query, update, AufsConfigTranslationEntity.class);

        } catch (Exception e) {
            log.error("Exception occurred for {} ", id, e);
            throw new RuntimeException("Failed to retrieve translation config", e);
        }
    }

    public void updateTranslations(String client, String pfm, Integer fv,
                                   Map<String, Object> updates, Map<String, Object> removals) {

        // 1. Get target feed version (use specified or latest)
        Integer targetFv = (fv != null) ? fv : getLatestFv(client, pfm);
        if (targetFv == null) {
            throw new RuntimeException("No translations found for client: " + client + ", platform: " + pfm);
        }

        // 2. Update the specified document
        updateSpecificDocument(client, pfm, targetFv, updates, removals);

        // 3. Update other language documents (pc ≠ "toi")
        updateOtherLanguageDocuments(client, pfm, updates, removals);
    }

    private void updateSpecificDocument(String client, String pfm, Integer fv,
                                        Map<String, Object> updates, Map<String, Object> removals) {
        Query query = Query.query(Criteria.where("client").is(client)
                .and("pfm").is(pfm)
                .and("fv").is(fv));

        AufsConfigTranslationEntity doc = mongoTemplate.findOne(query, AufsConfigTranslationEntity.class);
        if (doc == null) {
            doc = new AufsConfigTranslationEntity();
            doc.setClient(client);
            doc.setPfm(pfm);
            doc.setFv(fv);
            doc.setRootTrans(new HashMap<>());
        }

        Map<String, Object> rootTrans = doc.getRootTrans() != null
                ? new HashMap<>(doc.getRootTrans())
                : new HashMap<>();

        // Apply updates and removals with deep merge
        applyUpdatesAndRemovals(rootTrans, updates, removals);

        doc.setRootTrans(rootTrans);
        mongoTemplate.save(doc);
    }

    private void updateOtherLanguageDocuments(String client, String pfm,
                                              Map<String, Object> updates, Map<String, Object> removals) {
        Query query = new Query(Criteria.where("client").is(client)
                .and("pfm").is(pfm)
                .and("pc").ne("toi"));
        query.with(new Sort(Sort.Direction.DESC, "fv"));
        List<AufsConfigTranslationEntity> allLangDocs = mongoTemplate.find(query, AufsConfigTranslationEntity.class);

        // Keep only latest fv per unique pc
        Map<String, AufsConfigTranslationEntity> latestPerPc = allLangDocs.stream()
                .collect(Collectors.toMap(
                        AufsConfigTranslationEntity::getPc,
                        Function.identity(),
                        (doc1, doc2) -> doc1.getFv() >= doc2.getFv() ? doc1 : doc2
                ));

        int updateCount = 0;
        for (AufsConfigTranslationEntity doc : latestPerPc.values()) {
            Map<String, Object> rootTrans = doc.getRootTrans() != null
                    ? new HashMap<>(doc.getRootTrans())
                    : new HashMap<>();

            // Apply updates and removals with deep merge
            applyUpdatesAndRemovals(rootTrans, updates, removals);

            doc.setRootTrans(rootTrans);
            mongoTemplate.save(doc);
            updateCount++;
        }

        System.out.println("Updated " + updateCount + " other language documents.");
    }

    private Integer getLatestFv(String client, String pfm) {
        Query query = new Query(Criteria.where("client").is(client)
                .and("pfm").is(pfm))
                .with(new Sort(Sort.Direction.DESC, "fv"))
                .limit(1);
        AufsConfigTranslationEntity doc = mongoTemplate.findOne(query, AufsConfigTranslationEntity.class);
        return doc != null ? doc.getFv() : null;
    }

     //Apply updates and then apply removals to the root translation map with deep merge support
     @SuppressWarnings("unchecked")
    private void applyUpdatesAndRemovals(Map<String, Object> rootTrans,
                                         Map<String, Object> updates,
                                         Map<String, Object> removals) {
        // Apply updates with deep merge
        if (updates != null && !updates.isEmpty()) {
            // First unflatten dotted keys into a nested structure
            Map<String, Object> structuredUpdates = unflattenUpdates(updates);
            // Then merge with existing data
            deepMerge(rootTrans, structuredUpdates);
        }

        // Apply removals
        if (removals != null && !removals.isEmpty()) {
            for (Map.Entry<String, Object> entry : removals.entrySet()) {
                String key = entry.getKey();
                Object value = entry.getValue();

                // Handle removal based on key structure
                if (key.contains(".")) {
                    // For dot notation keys, handle nested removal
                    removeNestedMapValue(rootTrans, key, value);
                } else {
                    // For top-level keys
                    if (value == null) {
                        // Remove entire key if value is null
                        rootTrans.remove(key);
                    } else if (value instanceof Map) {
                        // Handle nested map removal
                        handleNestedMapRemoval(rootTrans, key, (Map<String, Object>) value);
                    } else {
                        // Remove key only if value matches exactly
                        Object currentValue = rootTrans.get(key);
                        if (currentValue != null && currentValue.equals(value)) {
                            rootTrans.remove(key);
                        }
                    }
                }
            }
        }
    }


     //Convert dotted notation keys to nested structure
     @SuppressWarnings("unchecked")
    private Map<String, Object> unflattenUpdates(Map<String, Object> updates) {
        Map<String, Object> result = new HashMap<>();

        for (Map.Entry<String, Object> entry : updates.entrySet()) {
            String key = entry.getKey();
            Object value = entry.getValue();

            if (key.contains(".")) {
                String[] parts = key.split("\\.");
                Map<String, Object> current = result;

                // Navigate to the correct level
                for (int i = 0; i < parts.length - 1; i++) {
                    if (!current.containsKey(parts[i])) {
                        current.put(parts[i], new HashMap<>());
                    }
                    Object next = current.get(parts[i]);
                    if (!(next instanceof Map)) {
                        // Override if not a map
                        Map<String, Object> newMap = new HashMap<>();
                        current.put(parts[i], newMap);
                        current = newMap;
                    } else {
                        current = (Map<String, Object>) next;
                    }
                }

                // Set the value at the deepest level
                current.put(parts[parts.length - 1], value);
            } else {
                // Handle top-level keys normally
                result.put(key, value);
            }
        }

        return result;
    }

     //Deep merge two maps - preserves existing values when not explicitly overwritten
    @SuppressWarnings("unchecked")
    private void deepMerge(Map<String, Object> target, Map<String, Object> source) {
        if (source == null) {
            return;
        }

        for (Map.Entry<String, Object> entry : source.entrySet()) {
            String key = entry.getKey();
            Object value = entry.getValue();

            // If both have a map for the same key, merge them
            if (value instanceof Map && target.containsKey(key) && target.get(key) instanceof Map) {
                deepMerge((Map<String, Object>) target.get(key), (Map<String, Object>) value);
            } else {
                // Otherwise just overwrite/add the value
                target.put(key, value);
            }
        }
    }

     //Handle removal of nested values in a map structure
    @SuppressWarnings("unchecked")
    private void handleNestedMapRemoval(Map<String, Object> rootMap, String key, Map<String, Object> valueToRemove) {
        // If the key doesn't exist in root map, nothing to remove
        if (!rootMap.containsKey(key)) {
            return;
        }

        Object currentValue = rootMap.get(key);

        // If current value is not a map, but removal specifies a map, something is wrong
        if (!(currentValue instanceof Map)) {
            return;
        }

        Map<String, Object> currentMap = (Map<String, Object>) currentValue;

        // If removal map is empty, remove the entire key
        if (valueToRemove.isEmpty()) {
            rootMap.remove(key);
            return;
        }

        // For each entry in the removal map, apply removal logic
        for (Map.Entry<String, Object> entry : valueToRemove.entrySet()) {
            String nestedKey = entry.getKey();
            Object nestedValue = entry.getValue();

            if (!currentMap.containsKey(nestedKey)) {
                continue;
            }

            Object existingNestedValue = currentMap.get(nestedKey);

            if (nestedValue == null) {
                // Remove entire nested key if value is null
                currentMap.remove(nestedKey);
            } else if (nestedValue instanceof Map && existingNestedValue instanceof Map) {
                // Recursively handle nested map removal
                handleNestedMapRemoval(currentMap, nestedKey, (Map<String, Object>) nestedValue);
                // If the nested map is now empty, remove it
                if (((Map<?, ?>) existingNestedValue).isEmpty()) {
                    currentMap.remove(nestedKey);
                }
            } else if (existingNestedValue != null && existingNestedValue.equals(nestedValue)) {
                // Remove if values match exactly
                currentMap.remove(nestedKey);
            }
        }

        // If the map is now empty after removals, remove the parent key
        if (currentMap.isEmpty()) {
            rootMap.remove(key);
        }
    }

    //Remove a value from a nested map structure using dot notation
    @SuppressWarnings("unchecked")
    private void removeNestedMapValue(Map<String, Object> rootMap, String dottedKey, Object valueToRemove) {
        String[] keyParts = dottedKey.split("\\.");

        // Navigate to the parent map that contains the final key
        Map<String, Object> currentMap = rootMap;
        for (int i = 0; i < keyParts.length - 1; i++) {
            Object value = currentMap.get(keyParts[i]);
            if (!(value instanceof Map)) {
                // Path doesn't exist, nothing to remove
                return;
            }
            currentMap = (Map<String, Object>) value;
        }

        String finalKey = keyParts[keyParts.length - 1];

        // Handle removal based on value type
        if (!currentMap.containsKey(finalKey)) {
            return;
        }

        Object currentValue = currentMap.get(finalKey);

        if (valueToRemove == null) {
            // Remove entire key if value to remove is null
            currentMap.remove(finalKey);
        } else if (valueToRemove instanceof Map && currentValue instanceof Map) {
            // Handle nested map removal
            handleNestedMapRemoval(currentMap, finalKey, (Map<String, Object>) valueToRemove);
        } else if (currentValue != null && currentValue.equals(valueToRemove)) {
            // Remove if values match exactly
            currentMap.remove(finalKey);
        }

        // Check if parent maps should be removed (if they're empty)
        if (keyParts.length > 1 && currentMap.isEmpty()) {
            // Remove empty parent maps recursively
            removeEmptyParentMaps(rootMap, keyParts, 0, keyParts.length - 1);
        }
    }

    //Recursively remove empty parent maps
    @SuppressWarnings("unchecked")
    private void removeEmptyParentMaps(Map<String, Object> rootMap, String[] keyParts, int startIdx, int endIdx) {
        if (startIdx >= endIdx) {
            return;
        }

        // Build the path to the current map
        Map<String, Object> currentMap = rootMap;
        for (int i = 0; i < endIdx - 1; i++) {
            Object value = currentMap.get(keyParts[i]);
            if (!(value instanceof Map)) {
                return;
            }
            currentMap = (Map<String, Object>) value;
        }

        // Check if the map at the path is empty
        Object value = currentMap.get(keyParts[endIdx - 1]);
        if (value instanceof Map && ((Map<?, ?>) value).isEmpty()) {
            currentMap.remove(keyParts[endIdx - 1]);
            //Recursively check parent
            removeEmptyParentMaps(rootMap, keyParts, startIdx, endIdx - 1);
        }
    }
}


Mira Yogashala offers transformative yoga teacher training programs in two breathtaking locations—Rishikesh, India, and Bali, Indonesia. Our **100 Hour Yoga Teacher Training in Rishikesh** is perfect for those looking to build a strong foundation in yoga while immersing themselves in the serene beauty of the Himalayas. Whether you seek a peaceful retreat in Rishikesh or a tropical escape in Bali, our courses provide a deep and immersive experience designed to help you grow in your practice and teaching journey.  

Nestled in the foothills of the Himalayas, along the sacred Ganges River, Rishikesh is known as the Yoga Capital of the World—a perfect destination for spiritual growth and self-discovery. Students train in Hatha, Ashtanga, and Vinyasa yoga, along with breathwork, meditation, yoga philosophy, anatomy, and teaching methods. Our experienced instructors, certified by Yoga Alliance, provide personal guidance to help you build confidence and deepen your practice.  

Beyond the classes, you can enjoy temple visits, meditation by the river, and nature walks, making the experience even more special. The fresh air and nourishing food help you refresh your mind and body. If you want a longer, more in-depth training, our 200 Hour Yoga Teacher Training in Bali offers a peaceful and immersive environment where you can explore yoga at a deeper level.  

Whether you choose Rishikesh or Bali, Mira Yogashala provides a nurturing and supportive environment where students can explore, grow, and embrace the true essence of yoga. Our programs are designed to offer authentic teachings, personal attention, and a deep connection to yoga’s spiritual roots.  

Join us for a life-changing experience and embark on a journey of self-discovery, balance, and inner peace with Mira Yogashala.  
For more information visit : https://www.mirayogashala.com/100-hour-yoga-teacher-training-in-rishikesh.php
# Remove DPKG config files for the package
# Replace {package_name} with the name of the package
sudo rm -rf /var/lib/dpkg/info/{package_name}.*

# Remove the package
sudo dpkg --remove --force-remove-reinstreq {package_name}


int findKthLargest(vector<int>& A, int k) {
    nth_element(begin(A), begin(A) + k - 1, end(A), greater<int>());
    return A[k - 1];
}
With the crypto industry evolving rapidly, many startups and entrepreneurs are exploring new ways to enter the market without building products from scratch. One approach that’s gaining popularity is  clone script—but is it really a smart business move?

Honestly, yes—if you approach it the right way.

It lets you launch your own branded crypto wallet app without the massive time or money investment required to build from scratch. You’re essentially starting with a solid foundation that’s already been tested and proven to work.

A good Trust Wallet clone script typically comes with packed features like:

Multi-coin and multi-token support
WalletConnect integration
Built-in staking options
DApp browser support
Private key and seed phrase backup
Biometric authentication (Face ID/Fingerprint)
In-app crypto swaps
Push notifications for transactions
Cross-platform support (Android & iOS)

And the best part? You get a proven product with all the necessary features already built in.

However, not all clone scripts are created equal. Some providers offer flashy websites and promises but fall short when it comes to security, scalability, or real-world functionality. I spent quite a bit of time reviewing different providers, trying out their live demos, reading through client feedback, and asking the right questions.

A standout provider for me was AppcloneX. With over three years in the blockchain industry and 50+ successful projects under their belt, they really knew their stuff. Their Trust Wallet clone script was feature-packed, secure, and highly customizable. On top of that, their post-launch support was exceptional—they walked me through every step, from customization to deployment.

In short, Trust Wallet clone script can be a brilliant business strategy, but only if you partner with the right team. For me approaching AppcloneX is one of the best decision. 

If you’re thinking about this approach or looking to launch your own trust wallet clone script, then you can reach out to them and checking out their live demos.
How Secure Is a Trust Wallet Clone Script?

One of the first questions I had when I started looking into a Trust Wallet clone script was about security. I mean, we’re talking about people’s crypto assets—security isn’t just important, it’s everything.

Naturally, the original Trust Wallet is open-source and has a strong track record in terms of safety. It follows all the best practices—end-to-end encryption, private key control, biometric protection, and seamless integration with DApps. So I wanted to make sure that any clone script I chose would offer the same level of protection.
During my research, I looked into several providers and tested different demo versions. What I quickly learned is that the quality of clone scripts varies widely. Some lacked proper encryption, while others didn’t offer any real security audits or wallet recovery systems.

One provider that really gave me confidence was AppcloneX. Their Trust Wallet clone script was built with security in mind. It included AES encryption, secure private key storage, biometric login, seed phrase backups, and even optional multi-factor authentication. They also emphasized using best practices for both frontend and backend security.

What reassured me even more was that their team took the time to explain how each feature worked and how they could customize or enhance it further based on my needs. That kind of transparency is rare.
To be clear: a Trust Wallet clone can be just as secure as the original—but only if it's developed by a team that prioritizes safety and follows industry standards.

If you’re thinking of going down this path, don’t just look at features. Ask the tough questions about security architecture, audits, and encryption methods. For me, AppcloneX stood out by getting those things right.

If you’re curious to see what their solution actually looks like, I’d recommend checking out their live demo. It gave me a clear picture of the product’s quality and features, and honestly—it helped me make my decision a lot faster.
DashBlox has a lot of features that aren't enabled by default, and if you want to customize the way DashBlox modifies Roblox, you can customize it in DashBlox settings.

If you don't want to customize settings right now, you can always do it later by pressing the gear icon in the top right and selecting 'DashBlox".
document.querySelectorAll('input, textarea').forEach((el) => {
      // Remove inline oncopy and onpaste handlers
        console.log(el)
      el.oncopy = null;
      el.onpaste = null;

      // Or remove attribute values if needed
      el.removeAttribute('oncopy');
      el.removeAttribute('onpaste');
    });
  
import tkinter as tk
from tkinter import ttk, messagebox
from datetime import datetime, timedelta
from tkcalendar import DateEntry

class BookingManagement(ttk.Frame):
    def __init__(self, parent, db):
        super().__init__(parent)
        self.db = db
        self.pack(fill=tk.BOTH, expand=True)
        
        # Create UI elements
        self._create_widgets()
        
        # Populate booking list
        self._populate_booking_list()
        
    def _create_widgets(self):
        """Create UI widgets for booking management"""
        # Title
        title_label = ttk.Label(self, text="Booking Management", font=("Arial", 14, "bold"))
        title_label.grid(row=0, column=0, columnspan=2, pady=10, sticky=tk.W)
        
        # Main content split into two frames
        left_frame = ttk.Frame(self)
        left_frame.grid(row=1, column=0, sticky=tk.NSEW, padx=(0, 10))
        
        right_frame = ttk.Frame(self)
        right_frame.grid(row=1, column=1, sticky=tk.NSEW)
        
        self.columnconfigure(0, weight=1)
        self.columnconfigure(1, weight=1)
        self.rowconfigure(1, weight=1)
        
        # === Left Frame: Booking List ===
        list_label = ttk.Label(left_frame, text="Current Bookings", font=("Arial", 12, "bold"))
        list_label.pack(anchor=tk.W, pady=(0, 10))
        
        # Booking list with scrollbar
        list_frame = ttk.Frame(left_frame)
        list_frame.pack(fill=tk.BOTH, expand=True)
        
        self.booking_tree = ttk.Treeview(list_frame, 
                                      columns=("Guest", "Room", "Check In", "Check Out", "Status"), 
                                      selectmode="browse", show="headings")
        self.booking_tree.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
        
        # Configure columns
        self.booking_tree.heading("Guest", text="Guest")
        self.booking_tree.heading("Room", text="Room")
        self.booking_tree.heading("Check In", text="Check In")
        self.booking_tree.heading("Check Out", text="Check Out")
        self.booking_tree.heading("Status", text="Status")
        
        self.booking_tree.column("Guest", width=150)
        self.booking_tree.column("Room", width=70)
        self.booking_tree.column("Check In", width=100)
        self.booking_tree.column("Check Out", width=100)
        self.booking_tree.column("Status", width=100)
        
        # Add scrollbar
        scrollbar = ttk.Scrollbar(list_frame, orient=tk.VERTICAL, command=self.booking_tree.yview)
        scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
        self.booking_tree.configure(yscrollcommand=scrollbar.set)
        
        # Bind selection event
        self.booking_tree.bind("<<TreeviewSelect>>", self._on_booking_select)
        
        # Filter controls
        filter_frame = ttk.Frame(left_frame)
        filter_frame.pack(fill=tk.X, pady=10)
        
        ttk.Label(filter_frame, text="Status Filter:").pack(side=tk.LEFT, padx=5)
        self.filter_var = tk.StringVar()
        status_cb = ttk.Combobox(filter_frame, textvariable=self.filter_var, width=15)
        status_cb['values'] = ("All", "Confirmed", "Checked In", "Checked Out", "Cancelled")
        status_cb.current(0)
        status_cb.pack(side=tk.LEFT, padx=5)
        status_cb.bind("<<ComboboxSelected>>", self._apply_filter)
        
        refresh_btn = ttk.Button(filter_frame, text="Refresh", command=self._populate_booking_list)
        refresh_btn.pack(side=tk.RIGHT, padx=5)
        
        # === Right Frame: Booking Details & Actions ===
        # Right frame has two sections: Details and New Booking
        notebook = ttk.Notebook(right_frame)
        notebook.pack(fill=tk.BOTH, expand=True)
        
        # First tab: Booking Details
        details_frame = ttk.Frame(notebook)
        notebook.add(details_frame, text="Booking Details")
        
        # Second tab: New Booking
        new_booking_frame = ttk.Frame(notebook)
        notebook.add(new_booking_frame, text="New Booking")
        
        # === Details Frame ===
        # Selected booking details
        info_frame = ttk.LabelFrame(details_frame, text="Booking Information")
        info_frame.pack(fill=tk.X, padx=5, pady=10)
        
        # Guest info
        ttk.Label(info_frame, text="Guest:").grid(row=0, column=0, sticky=tk.W, padx=5, pady=2)
        self.guest_label = ttk.Label(info_frame, text="-")
        self.guest_label.grid(row=0, column=1, sticky=tk.W, padx=5, pady=2)
        
        # Room info
        ttk.Label(info_frame, text="Room:").grid(row=1, column=0, sticky=tk.W, padx=5, pady=2)
        self.room_label = ttk.Label(info_frame, text="-")
        self.room_label.grid(row=1, column=1, sticky=tk.W, padx=5, pady=2)
        
        # Check-in date
        ttk.Label(info_frame, text="Check-in:").grid(row=2, column=0, sticky=tk.W, padx=5, pady=2)
        self.check_in_label = ttk.Label(info_frame, text="-")
        self.check_in_label.grid(row=2, column=1, sticky=tk.W, padx=5, pady=2)
        
        # Check-out date
        ttk.Label(info_frame, text="Check-out:").grid(row=3, column=0, sticky=tk.W, padx=5, pady=2)
        self.check_out_label = ttk.Label(info_frame, text="-")
        self.check_out_label.grid(row=3, column=1, sticky=tk.W, padx=5, pady=2)
        
        # Total amount
        ttk.Label(info_frame, text="Total Amount:").grid(row=4, column=0, sticky=tk.W, padx=5, pady=2)
        self.amount_label = ttk.Label(info_frame, text="-")
        self.amount_label.grid(row=4, column=1, sticky=tk.W, padx=5, pady=2)
        
        # Status
        ttk.Label(info_frame, text="Status:").grid(row=5, column=0, sticky=tk.W, padx=5, pady=2)
        self.status_label = ttk.Label(info_frame, text="-")
        self.status_label.grid(row=5, column=1, sticky=tk.W, padx=5, pady=2)
        
        # Booking date
        ttk.Label(info_frame, text="Booking Date:").grid(row=6, column=0, sticky=tk.W, padx=5, pady=2)
        self.booking_date_label = ttk.Label(info_frame, text="-")
        self.booking_date_label.grid(row=6, column=1, sticky=tk.W, padx=5, pady=2)
        
        # Configure columns
        info_frame.columnconfigure(1, weight=1)
        
        # Action buttons
        action_frame = ttk.Frame(details_frame)
        action_frame.pack(fill=tk.X, padx=5, pady=10)
        
        self.checkin_btn = ttk.Button(action_frame, text="Check In", command=self._check_in, state=tk.DISABLED)
        self.checkin_btn.pack(side=tk.LEFT, padx=5)
        
        self.checkout_btn = ttk.Button(action_frame, text="Check Out", command=self._check_out, state=tk.DISABLED)
        self.checkout_btn.pack(side=tk.LEFT, padx=5)
        
        self.cancel_btn = ttk.Button(action_frame, text="Cancel Booking", command=self._cancel_booking, state=tk.DISABLED)
        self.cancel_btn.pack(side=tk.LEFT, padx=5)
        
        # Payment entry
        payment_frame = ttk.LabelFrame(details_frame, text="Add Payment")
        payment_frame.pack(fill=tk.X, padx=5, pady=10)
        
        ttk.Label(payment_frame, text="Amount:").grid(row=0, column=0, sticky=tk.W, padx=5, pady=5)
        self.payment_amount_var = tk.StringVar()
        self.payment_amount_entry = ttk.Entry(payment_frame, textvariable=self.payment_amount_var, width=15)
        self.payment_amount_entry.grid(row=0, column=1, sticky=tk.W, padx=5, pady=5)
        
        ttk.Label(payment_frame, text="Method:").grid(row=0, column=2, sticky=tk.W, padx=5, pady=5)
        self.payment_method_var = tk.StringVar()
        method_cb = ttk.Combobox(payment_frame, textvariable=self.payment_method_var, width=15)
        method_cb['values'] = ("Cash", "Credit Card", "Debit Card", "Bank Transfer")
        method_cb.current(0)
        method_cb.grid(row=0, column=3, sticky=tk.W, padx=5, pady=5)
        
        self.add_payment_btn = ttk.Button(payment_frame, text="Add Payment", command=self._add_payment, state=tk.DISABLED)
        self.add_payment_btn.grid(row=0, column=4, sticky=tk.W, padx=5, pady=5)
        
        # === New Booking Frame ===
        form_frame = ttk.Frame(new_booking_frame)
        form_frame.pack(fill=tk.BOTH, expand=True, padx=5, pady=10)
        
        # Guest selection
        ttk.Label(form_frame, text="Select Guest:").grid(row=0, column=0, sticky=tk.W, pady=5)
        self.guest_id_var = tk.StringVar()
        self.guest_cb = ttk.Combobox(form_frame, textvariable=self.guest_id_var, width=30)
        self.guest_cb.grid(row=0, column=1, sticky=tk.EW, pady=5, padx=5)
        
        # Room selection
        ttk.Label(form_frame, text="Select Room:").grid(row=1, column=0, sticky=tk.W, pady=5)
        self.room_id_var = tk.StringVar()
        self.room_cb = ttk.Combobox(form_frame, textvariable=self.room_id_var, width=30)
        self.room_cb.grid(row=1, column=1, sticky=tk.EW, pady=5, padx=5)
        
        # Check-in date
        ttk.Label(form_frame, text="Check-in Date:").grid(row=2, column=0, sticky=tk.W, pady=5)
        self.check_in_date = DateEntry(form_frame, width=12, background='darkblue',
                                    foreground='white', borderwidth=2, date_pattern='yyyy-mm-dd')
        self.check_in_date.grid(row=2, column=1, sticky=tk.W, pady=5, padx=5)
        
        # Check-out date
        ttk.Label(form_frame, text="Check-out Date:").grid(row=3, column=0, sticky=tk.W, pady=5)
        self.check_out_date = DateEntry(form_frame, width=12, background='darkblue',
                                     foreground='white', borderwidth=2, date_pattern='yyyy-mm-dd')
        # Set default to check-in + 1 day
        tomorrow = datetime.now() + timedelta(days=1)
        self.check_out_date.set_date(tomorrow)
        self.check_out_date.grid(row=3, column=1, sticky=tk.W, pady=5, padx=5)
        
        # Total amount
        ttk.Label(form_frame, text="Total Amount:").grid(row=4, column=0, sticky=tk.W, pady=5)
        self.total_amount_var = tk.StringVar()
        self.total_amount_entry = ttk.Entry(form_frame, textvariable=self.total_amount_var)
        self.total_amount_entry.grid(row=4, column=1, sticky=tk.EW, pady=5, padx=5)
        
        # Calculate button
        calculate_btn = ttk.Button(form_frame, text="Calculate Total", command=self._calculate_total)
        calculate_btn.grid(row=4, column=2, sticky=tk.W, pady=5)
        
        # Create booking button
        create_btn = ttk.Button(form_frame, text="Create Booking", command=self._create_booking)
        create_btn.grid(row=5, column=1, sticky=tk.E, pady=10, padx=5)
        
        # Configure grid
        form_frame.columnconfigure(1, weight=1)
        
        # Populate dropdowns
        self._populate_dropdowns()
        
        # Selected booking data (hidden)
        self.selected_booking_id = None
    
    def _populate_booking_list(self):
        """Fetch bookings from database and populate the treeview"""
        # Clear the treeview
        for item in self.booking_tree.get_children():
            self.booking_tree.delete(item)
        
        # Get filtered bookings
        status_filter = self.filter_var.get()
        if status_filter and status_filter != "All":
            bookings = self.db.get_bookings(status=status_filter)
        else:
            bookings = self.db.get_bookings()
        
        # Insert bookings into treeview
        for booking in bookings:
            booking_id, first_name, last_name, room_number, check_in, check_out, amount, status = booking
            guest_name = f"{first_name} {last_name}"
            self.booking_tree.insert("", tk.END, values=(guest_name, room_number, check_in, check_out, status), tags=(booking_id,))
        
        # Clear selection and details
        self._clear_selection()
    
    def _apply_filter(self, event=None):
        """Apply filter to booking list"""
        self._populate_booking_list()
    
    def _on_booking_select(self, event=None):
        """Handle booking selection from treeview"""
        selection = self.booking_tree.selection()
        if selection:
            item = selection[0]
            
            # Get booking ID from tags
            booking_id = self.booking_tree.item(item, "tags")[0]
            self.selected_booking_id = booking_id
            
            # Get full booking details from database
            booking = self.db.get_booking(booking_id)
            if booking:
                _, guest_id, first_name, last_name, room_id, room_number, check_in, check_out, booking_date, amount, status = booking
                
                # Update detail labels
                self.guest_label.config(text=f"{first_name} {last_name}")
                self.room_label.config(text=room_number)
                self.check_in_label.config(text=check_in)
                self.check_out_label.config(text=check_out)
                self.amount_label.config(text=f"₹{amount:.2f}")
                self.status_label.config(text=status)
                self.booking_date_label.config(text=booking_date)
                
                # Enable/disable action buttons based on status
                if status == "Confirmed":
                    self.checkin_btn.config(state=tk.NORMAL)
                    self.checkout_btn.config(state=tk.DISABLED)
                    self.cancel_btn.config(state=tk.NORMAL)
                elif status == "Checked In":
                    self.checkin_btn.config(state=tk.DISABLED)
                    self.checkout_btn.config(state=tk.NORMAL)
                    self.cancel_btn.config(state=tk.NORMAL)
                else:
                    self.checkin_btn.config(state=tk.DISABLED)
                    self.checkout_btn.config(state=tk.DISABLED)
                    self.cancel_btn.config(state=tk.DISABLED)
                
                # Enable payment button
                self.add_payment_btn.config(state=tk.NORMAL)
    
    def _clear_selection(self):
        """Clear booking selection and details"""
        # Clear tree selection
        if self.booking_tree.selection():
            self.booking_tree.selection_remove(self.booking_tree.selection()[0])
        
        # Clear detail labels
        self.guest_label.config(text="-")
        self.room_label.config(text="-")
        self.check_in_label.config(text="-")
        self.check_out_label.config(text="-")
        self.amount_label.config(text="-")
        self.status_label.config(text="-")
        self.booking_date_label.config(text="-")
        
        # Disable action buttons
        self.checkin_btn.config(state=tk.DISABLED)
        self.checkout_btn.config(state=tk.DISABLED)
        self.cancel_btn.config(state=tk.DISABLED)
        self.add_payment_btn.config(state=tk.DISABLED)
        
        # Clear payment fields
        self.payment_amount_var.set("")
        self.payment_method_var.set("Cash")
        
        self.selected_booking_id = None
    
    def _populate_dropdowns(self):
        """Populate guest and room dropdown lists"""
        # Populate guest dropdown
        guests = self.db.get_guests()
        guest_list = []
        self.guest_map = {}  # Map display names to IDs
        
        for guest in guests:
            guest_id, first_name, last_name = guest[0:3]
            display_name = f"{first_name} {last_name}"
            guest_list.append(display_name)
            self.guest_map[display_name] = guest_id
        
        self.guest_cb['values'] = guest_list
        
        # Auto-select first guest if available
        if guest_list:
            self.guest_cb.current(0)
        
        # Populate room dropdown (only available rooms)
        rooms = self.db.get_rooms(status="Available")
        room_list = []
        self.room_map = {}  # Map display names to IDs
        
        for room in rooms:
            room_id, room_number, room_type, rate = room[0:4]
            display_name = f"{room_number} - {room_type} (₹{rate:.2f}/night)"
            room_list.append(display_name)
            self.room_map[display_name] = (room_id, rate)
        
        self.room_cb['values'] = room_list
        
        # Auto-select first room if available
        if room_list:
            self.room_cb.current(0)
            
        # If we have both a room and a guest selected, calculate the total automatically
        if guest_list and room_list:
            self._calculate_total()
    
    def _calculate_total(self):
        """Calculate total amount based on selected room and dates"""
        try:
            # Get selected room
            room_display = self.room_id_var.get()
            if not room_display or room_display not in self.room_map:
                messagebox.showerror("Error", "Please select a room")
                return
            
            room_id, rate = self.room_map[room_display]
            
            # Get dates
            check_in = self.check_in_date.get_date()
            check_out = self.check_out_date.get_date()
            
            # Calculate number of nights
            nights = (check_out - check_in).days
            if nights <= 0:
                messagebox.showerror("Error", "Check-out date must be after check-in date")
                return
            
            # Calculate total
            total = nights * rate
            
            # Update total field
            self.total_amount_var.set(f"{total:.2f}")
            
        except Exception as e:
            messagebox.showerror("Error", f"Failed to calculate total: {str(e)}")
    
    def _create_booking(self):
        """Create a new booking"""
        try:
            # Get selected guest
            guest_display = self.guest_id_var.get()
            if not guest_display:
                messagebox.showerror("Error", "Please select a guest")
                return
                
            # Check if guest is in map (only if we have a selection)
            if guest_display and guest_display not in self.guest_map:
                # If no guests exist yet, show a helpful message
                if not self.guest_map:
                    messagebox.showerror("Error", "No guests available. Please add a guest first in Guest Management.")
                    return
                messagebox.showerror("Error", "Please select a valid guest from the dropdown")
                return
            
            guest_id = self.guest_map[guest_display]
            
            # Get selected room
            room_display = self.room_id_var.get()
            if not room_display:
                messagebox.showerror("Error", "Please select a room")
                return
                
            # Check if room is in map (only if we have a selection)
            if room_display and room_display not in self.room_map:
                # If no rooms are available
                if not self.room_map:
                    messagebox.showerror("Error", "No rooms available for booking.")
                    return
                messagebox.showerror("Error", "Please select a valid room from the dropdown")
                return
            
            room_id, _ = self.room_map[room_display]
            
            # Get dates
            check_in = self.check_in_date.get_date().strftime("%Y-%m-%d")
            check_out = self.check_out_date.get_date().strftime("%Y-%m-%d")
            
            # Get total amount
            total_str = self.total_amount_var.get().strip()
            if not total_str:
                messagebox.showerror("Error", "Please calculate the total amount")
                return
            
            try:
                total = float(total_str)
            except ValueError:
                messagebox.showerror("Error", "Invalid total amount")
                return
            
            # Create booking
            booking_id = self.db.add_booking(guest_id, room_id, check_in, check_out, total)
            
            if booking_id:
                messagebox.showinfo("Success", "Booking created successfully")
                self._populate_booking_list()
                self._populate_dropdowns()  # Refresh room list
                
                # Clear form
                self.guest_id_var.set("")
                self.room_id_var.set("")
                self.total_amount_var.set("")
            else:
                messagebox.showerror("Error", "Failed to create booking")
            
        except Exception as e:
            messagebox.showerror("Error", f"Failed to create booking: {str(e)}")
    
    def _check_in(self):
        """Check in a guest for selected booking"""
        if not self.selected_booking_id:
            return
        
        result = self.db.update_booking_status(self.selected_booking_id, "Checked In")
        
        if result:
            messagebox.showinfo("Success", "Guest checked in successfully")
            self._populate_booking_list()
        else:
            messagebox.showerror("Error", "Failed to check in guest")
    
    def _check_out(self):
        """Check out a guest for selected booking"""
        if not self.selected_booking_id:
            return
        
        result = self.db.update_booking_status(self.selected_booking_id, "Checked Out")
        
        if result:
            messagebox.showinfo("Success", "Guest checked out successfully")
            self._populate_booking_list()
            self._populate_dropdowns()  # Refresh room list
        else:
            messagebox.showerror("Error", "Failed to check out guest")
    
    def _cancel_booking(self):
        """Cancel selected booking"""
        if not self.selected_booking_id:
            return
        
        # Confirm cancellation
        if not messagebox.askyesno("Confirm", "Are you sure you want to cancel this booking?"):
            return
        
        result = self.db.update_booking_status(self.selected_booking_id, "Cancelled")
        
        if result:
            messagebox.showinfo("Success", "Booking cancelled successfully")
            self._populate_booking_list()
            self._populate_dropdowns()  # Refresh room list
        else:
            messagebox.showerror("Error", "Failed to cancel booking")
    
    def _add_payment(self):
        """Add payment for selected booking"""
        if not self.selected_booking_id:
            return
        
        # Validate payment amount
        amount_str = self.payment_amount_var.get().strip()
        method = self.payment_method_var.get()
        
        if not amount_str:
            messagebox.showerror("Error", "Please enter payment amount")
            return
        
        try:
            amount = float(amount_str)
            if amount <= 0:
                raise ValueError("Amount must be positive")
        except ValueError:
            messagebox.showerror("Error", "Invalid payment amount")
            return
        
        # Add payment
        result = self.db.add_payment(self.selected_booking_id, amount, method)
        
        if result:
            messagebox.showinfo("Success", f"Payment of ₹{amount:.2f} added successfully")
            self.payment_amount_var.set("")  # Clear payment field
        else:
            messagebox.showerror("Error", "Failed to add payment") 
[
  "y1:r1:R1",
  "y1:r2:R1",
  "y2:r1:R1",
  "y2:r2:R1",
  "r4:p1:R1",
  "r5:p1:R1",
  "r5:b1:R1",
  "b2:p1:R1",
  "y3:b5:R1",
  "y3:b6:R1"
]
{
  "R1": [
    ["y1", "y2", "y3"],
    ["r1", "r2", "r3", "r4", "r5"],
    ["b1", "b2", "b3", "b4", "b5", "b6"]
  ]
}
//Two Button//
.Padding-top:20px;font-size 14px;
padding: 10px 15px;
background-color: #ededed
background-color: transparent;
border: 1px solid #ededed;
weight-width: 40%;
font-weight: 400;
text-transform: inherit;
vertical-align: middle;
transition: 350ms ease;

}

.button-2:hover
text-decoration: underline;
} }

https://www.iperiusremote.com/
"Organization Table (Employee Capacity)"."Reporting To"LIKE concat('%',${system.login.email},'%')
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":xeros-connect: Boost Days - What's on this week! :xeros-connect:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Morning Ahuriri :wave: Happy Monday, let's get ready to dive into another week in the Hawke's Bay office! See below for what's in store :eyes:"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-14: Wednesday, 14th May :camel:",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n:coffee: *Café Partnership*: Enjoy coffee and café-style beverages from our cafe partner, *Adoro*, located in our office building *8:00AM - 11:30AM*.\n:breakfast: *Breakfast*: Provided by *Design Cuisine* from *9:30AM-10:30AM* in the Kitchen."
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-15: Thursday, 15th May :meow-coffee:",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n:coffee: *Café Partnership*: Enjoy coffee and café-style beverages from our cafe partner, *Adoro*, located in our office building *8:00AM - 11:30AM*.\n:wrap: *Lunch*: Provided by *Roam* from *12:30PM-1:30PM* in the Kitchen."
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "*What else?* Stay tuned to this channel for more details, check out the <https://calendar.google.com/calendar/u/0?cid=eGVyby5jb21fbXRhc2ZucThjaTl1b3BpY284dXN0OWlhdDRAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ|*Hawkes Bay Social Calendar*>, and get ready to Boost your workdays!\n\nWX Team :party-wx:"
			}
		}
	]
}
star

Sun May 18 2025 19:00:59 GMT+0000 (Coordinated Universal Time)

@NewmanRSV #sql #soql #sfmc #dataextension

star

Sun May 18 2025 17:11:56 GMT+0000 (Coordinated Universal Time) https://trainpalaceonwheels.com/

@palacewheels901

star

Sun May 18 2025 06:36:03 GMT+0000 (Coordinated Universal Time) https://flatcoding.com/tutorials/php/php-remove-last-character-from-string/

@Samuel88 #php

star

Sun May 18 2025 02:47:58 GMT+0000 (Coordinated Universal Time)

@FOHWellington

star

Sat May 17 2025 23:13:02 GMT+0000 (Coordinated Universal Time)

@jdeveloper #php

star

Sat May 17 2025 06:51:27 GMT+0000 (Coordinated Universal Time)

@StefanoGi

star

Fri May 16 2025 21:28:35 GMT+0000 (Coordinated Universal Time) https://www.linkedin.com/posts/danny-gelfenbaum_8-things-you-can-do-using-salesforce-url-activity-7264272497162780672-egQk/

@dannygelf #salesforce #formula #urlhack

star

Fri May 16 2025 21:27:59 GMT+0000 (Coordinated Universal Time) https://www.linkedin.com/posts/danny-gelfenbaum_8-things-you-can-do-using-salesforce-url-activity-7264272497162780672-egQk/

@dannygelf #salesforce #formula #urlhack

star

Fri May 16 2025 21:27:27 GMT+0000 (Coordinated Universal Time)

@dannygelf #salesforce #formula #urlhack

star

Fri May 16 2025 21:26:22 GMT+0000 (Coordinated Universal Time)

@dannygelf #salesforce #formula #urlhack

star

Fri May 16 2025 21:24:51 GMT+0000 (Coordinated Universal Time) https://www.linkedin.com/posts/danny-gelfenbaum_8-things-you-can-do-using-salesforce-url-activity-7264272497162780672-egQk/

@dannygelf #salesforce #formula #urlhack

star

Fri May 16 2025 20:35:04 GMT+0000 (Coordinated Universal Time) https://www.lakevillemn.gov/DesignCenter/Themes/Index

@Cody_Gant

star

Fri May 16 2025 12:50:03 GMT+0000 (Coordinated Universal Time) https://www.apache.org/licenses/LICENSE-2.0

@TuckSmith541

star

Fri May 16 2025 11:52:09 GMT+0000 (Coordinated Universal Time) https://beleaftechnologies.com/p2p-cryptocurrency-exchange-development-company

@stvejhon #crypto #cryptocurrency #exchange #meme

star

Fri May 16 2025 10:44:51 GMT+0000 (Coordinated Universal Time) https://www.coinsclone.com/white-label-digital-asset-exchange/

@CharleenStewar #whitelabel digital asset exchange

star

Fri May 16 2025 10:39:14 GMT+0000 (Coordinated Universal Time)

@toufeeque1989

star

Fri May 16 2025 10:27:34 GMT+0000 (Coordinated Universal Time)

@shubhangi.b

star

Fri May 16 2025 10:11:05 GMT+0000 (Coordinated Universal Time)

@shubhangi.b

star

Fri May 16 2025 09:42:30 GMT+0000 (Coordinated Universal Time) https://cryptocurrency-exchange-development-company.com/

@raydensmith #crypot #exchange #cryptoexchangedevelopment

star

Fri May 16 2025 06:14:50 GMT+0000 (Coordinated Universal Time) https://www.addustechnologies.com/blog/aave-clone-script

@Seraphina

star

Fri May 16 2025 05:28:12 GMT+0000 (Coordinated Universal Time)

@codejlw #javascript

star

Fri May 16 2025 02:39:19 GMT+0000 (Coordinated Universal Time) https://github.com/TaylorResearchLab/Petagraph

@metaphotonic

star

Thu May 15 2025 14:48:03 GMT+0000 (Coordinated Universal Time)

@StefanoGi

star

Thu May 15 2025 14:44:36 GMT+0000 (Coordinated Universal Time)

@chivchav

star

Thu May 15 2025 09:38:10 GMT+0000 (Coordinated Universal Time)

@rrajatssharma

star

Thu May 15 2025 09:32:32 GMT+0000 (Coordinated Universal Time)

@rrajatssharma

star

Thu May 15 2025 09:20:06 GMT+0000 (Coordinated Universal Time) https://www.coinsclone.com/features-of-cryptocurrency-exchange/

@CharleenStewar #featuresofcryptoexchange #cryptocurrencyexchange

star

Thu May 15 2025 08:36:58 GMT+0000 (Coordinated Universal Time) https://www.mirayogashala.com/100-hour-yoga-teacher-training-in-rishikesh.php

@mirayogshala12 #php

star

Thu May 15 2025 07:05:10 GMT+0000 (Coordinated Universal Time) https://www.beleaftechnologies.com/amazon-clone

@raydensmith #amazonclone #e-commerceclone

star

Thu May 15 2025 06:59:30 GMT+0000 (Coordinated Universal Time)

@jrray ##linux ##terminal

star

Wed May 14 2025 13:40:52 GMT+0000 (Coordinated Universal Time) https://github.com/kiranpalsingh1806/DSA-Code-Snippets

@gohilghanu

star

Wed May 14 2025 12:24:46 GMT+0000 (Coordinated Universal Time) https://www.appclonex.com/trustwallet-clone-script

@riyageorge0895 #trustwalletclone

star

Wed May 14 2025 09:07:47 GMT+0000 (Coordinated Universal Time) https://rishikeshyogkendra.com/7-days-prenatal-postnatal-yoga-course-in-rishikesh.php

@Rskyogkendra #yoga #yttc #yogateacher #yogaschool #yogattc #education #yttcinrishikesh #yogattcinrishikesh

star

Wed May 14 2025 08:57:45 GMT+0000 (Coordinated Universal Time) https://www.mirayogashala.com/200-hour-yoga-teacher-training-in-rishikesh.php

@mirayogashala10

star

Wed May 14 2025 07:01:00 GMT+0000 (Coordinated Universal Time) https://www.roblox.com/

@mdevil1619

star

Tue May 13 2025 13:27:44 GMT+0000 (Coordinated Universal Time)

@reiddd #javascript

star

Tue May 13 2025 12:44:37 GMT+0000 (Coordinated Universal Time) https://dpbosse.net/pannel/PADMINIMORNING/159

@dpbossenet

star

Tue May 13 2025 12:20:42 GMT+0000 (Coordinated Universal Time) https://www.yudiz.com/poker-game-development-company/

@yudizsolutions #pokergamedevelopment #pokergamedevelopmentcompany

star

Tue May 13 2025 11:12:24 GMT+0000 (Coordinated Universal Time)

@dev_shubham14

star

Tue May 13 2025 09:42:38 GMT+0000 (Coordinated Universal Time) https://www.coinsclone.com/crypto-wallet-script/

@CharleenStewar #cryptowallet script

star

Tue May 13 2025 09:20:39 GMT+0000 (Coordinated Universal Time) https://www.beleaftechnologies.com/bc-game-clone-script

@raydensmith #bcgameclone #bcgame

star

Tue May 13 2025 08:51:44 GMT+0000 (Coordinated Universal Time)

@Tilores #entityresolution #cbgc

star

Tue May 13 2025 08:49:47 GMT+0000 (Coordinated Universal Time)

@Tilores #entityresolution #cbgc

star

Tue May 13 2025 08:44:48 GMT+0000 (Coordinated Universal Time)

@Tilores #entityresolution #cbgc

star

Tue May 13 2025 08:41:19 GMT+0000 (Coordinated Universal Time)

@Tilores #entityresolution #cbgc

star

Tue May 13 2025 08:34:12 GMT+0000 (Coordinated Universal Time)

@Tilores #entityresolution #cbgc

star

Mon May 12 2025 22:24:36 GMT+0000 (Coordinated Universal Time)

@Calideebynyc

star

Mon May 12 2025 18:25:31 GMT+0000 (Coordinated Universal Time)

@password

star

Mon May 12 2025 12:40:15 GMT+0000 (Coordinated Universal Time)

@RehmatAli2024

star

Sun May 11 2025 21:25:00 GMT+0000 (Coordinated Universal Time)

@FOHWellington

Save snippets that work with our extensions

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