Snippets Collections
select 
json_event->'project',
json_event->'pipeline_params'->'artifacts_iac' as iac
from cicd_event
where event_type = 'ci_start'
and jsonb_array_length(jsonb_path_query_array(
	json_event->'pipeline_params'->'artifacts_iac',
	'$[*] ? (@.classifier == "terraform")'
)) >=2
{
  "manifest_version": 3,
  "name": "Hello Extensions",
  "description": "Base Level Extension",
  "version": "1.0",
  "action": {
    "default_popup": "hello.html",
    "default_icon": "hello_extensions.png"
  }
}
{
  // You probably don't need to set anything in the configuration,
  // we infer a lot of information from the repo. One value that's worth
  // setting is your default sandbox ids to fork for a PR. It's easier to test
  // on a sandbox that includes some test cases already.
  // This is also optional, we default to 'vanilla' if it isn't set.
  "sandboxes": ["new", "vanilla"]
}
{
  // You probably don't need to set anything in the configuration,
  // we infer a lot of information from the repo. One value that's worth
  // setting is your default sandbox ids to fork for a PR. It's easier to test
  // on a sandbox that includes some test cases already.
  // This is also optional, we default to 'vanilla' if it isn't set.
  "sandboxes": ["new", "vanilla"]
}
{
  // You probably don't need to set anything in the configuration,
  // we infer a lot of information from the repo. One value that's worth
  // setting is your default sandbox ids to fork for a PR. It's easier to test
  // on a sandbox that includes some test cases already.
  // This is also optional, we default to 'vanilla' if it isn't set.
  "sandboxes": ["new", "vanilla"]
}
{
  // You probably don't need to set anything in the configuration,
  // we infer a lot of information from the repo. One value that's worth
  // setting is your default sandbox ids to fork for a PR. It's easier to test
  // on a sandbox that includes some test cases already.
  // This is also optional, we default to 'vanilla' if it isn't set.
  "sandboxes": ["new", "vanilla"]
}
{
  // You probably don't need to set anything in the configuration,
  // we infer a lot of information from the repo. One value that's worth
  // setting is your default sandbox ids to fork for a PR. It's easier to test
  // on a sandbox that includes some test cases already.
  // This is also optional, we default to 'vanilla' if it isn't set.
  "sandboxes": ["new", "vanilla"]
}
{
  // You probably don't need to set anything in the configuration,
  // we infer a lot of information from the repo. One value that's worth
  // setting is your default sandbox ids to fork for a PR. It's easier to test
  // on a sandbox that includes some test cases already.
  // This is also optional, we default to 'vanilla' if it isn't set.
  "sandboxes": ["new", "vanilla"]
}
{
  "name": "com.[company-name].[package-name]",
  "version": "1.2.3",
  "displayName": "Package Example",
  "description": "This is an example package",
  "unity": "2019.1",
  "unityRelease": "0b5",
  "documentationUrl": "https://example.com/",
  "changelogUrl": "https://example.com/changelog.html",
  "licensesUrl": "https://example.com/licensing.html",
  "dependencies": {
    "com.[company-name].some-package": "1.0.0",
    "com.[company-name].other-package": "2.0.0"
 },
 "keywords": [
    "keyword1",
    "keyword2",
    "keyword3"
  ],
  "author": {
    "name": "Unity",
    "email": "unity@example.com",
    "url": "https://www.unity3d.com"
  }
}

 {
      "id": 9,
      "width": 359,
      "height": 269,
      "file_name": "dog.4121.jpg",
      "license": 0,
      "flickr_url": "",
      "coco_url": "",
      "date_captured": 0
    },
    {
      "id": 10,
      "width": 200,
      "height": 297,
      "file_name": "dog.4123.jpg",
      "license": 0,
      "flickr_url": "",
      "coco_url": "",
      "date_captured": 0
    }
  ],
  "annotations": [
    {
      "id": 1,
      "image_id": 1,
      "category_id": 1,
      "segmentation": [
        [
          479.0, 63.0, 471.0, 63.0, 463.0, 69.0, 460.0, 75.0, 460.0, 86.0,
          450.0, 101.0, 425.0, 110.0, 415.0, 116.0, 398.0, 120.0, 392.0, 120.0,
          390.0, 118.0, 389.0, 106.0, 386.0, 101.0, 385.0, 69.0, 381.0, 63.0,
          372.0, 66.0, 345.0, 86.0, 333.0, 87.0, 326.0, 90.0, 309.0, 90.0,
          295.0, 86.0, 286.0, 86.0, 283.0, 89.0, 283.0, 100.0, 289.0, 111.0,
          289.0, 116.0, 283.0, 123.0, 276.0, 143.0, 264.0, 159.0, 250.0, 172.0,
          223.0, 213.0, 206.0, 247.0, 192.0, 286.0, 186.0, 324.0, 191.0, 335.0,
          190.0, 353.0, 197.0, 362.0, 218.0, 370.0, 237.0, 374.0, 257.0, 375.0,
          277.0, 380.0, 293.0, 377.0, 296.0, 369.0, 292.0, 357.0, 307.0, 342.0,
          314.0, 331.0, 323.0, 308.0, 323.0, 286.0, 325.0, 284.0, 330.0, 288.0,
          333.0, 307.0, 337.0, 316.0, 342.0, 321.0, 355.0, 323.0, 360.0, 318.0,
          363.0, 309.0, 360.0, 277.0, 353.0, 262.0, 339.0, 250.0, 343.0, 235.0,
          354.0, 222.0, 364.0, 193.0, 372.0, 183.0, 392.0, 168.0, 409.0, 163.0,
          427.0, 152.0, 445.0, 135.0, 475.0, 112.0, 483.0, 87.0, 483.0, 70.0
        ]
      ],
const [touchStart, setTouchStart] = useState(null)
const [touchEnd, setTouchEnd] = useState(null)

// the required distance between touchStart and touchEnd to be detected as a swipe
const minSwipeDistance = 50 

const onTouchStart = (e) => {
  setTouchEnd(null) // otherwise the swipe is fired even with usual touch events
  setTouchStart(e.targetTouches[0].clientX)
}

const onTouchMove = (e) => setTouchEnd(e.targetTouches[0].clientX)

const onTouchEnd = () => {
  if (!touchStart || !touchEnd) return
  const distance = touchStart - touchEnd
  const isLeftSwipe = distance > minSwipeDistance
  const isRightSwipe = distance < -minSwipeDistance
  if (isLeftSwipe || isRightSwipe) console.log('swipe', isLeftSwipe ? 'left' : 'right')
  // add your conditional logic here
}
{
  "name": "{086f665e-6a55-4107-9147-f9a14e72b137}",
  "description": "managed storage for Open-in-Chrome extension",
  "type": "storage",
  "data":
  {
    "hosts": ["www.bing.com"],
    "urls": []
  }
}
$ curl "https://api.ip2location.io/?key={YOUR_API_KEY}&ip=2607:fea8:f18d:9e00:7053:68f5:5d77:cc0c"
{
    "ip": "2607:fea8:f18d:9e00:7d8d:bb30:ec27:e768",
    "country_code": "CA",
    "country_name": "Canada",
    "region_name": "Ontario",
    "city_name": "Toronto",
    "latitude": 43.653661,
    "longitude": -79.382924,
    "zip_code": "M5G 2C9",
    "time_zone": "-05:00",
    "asn": "812",
    "as": "Rogers Communications Canada Inc.",
    "isp": "Rogers Communications Canada Inc.",
    "domain": "rogers.com",
    "net_speed": "DSL",
    "idd_code": "1",
    "area_code": "416",
    "weather_station_code": "CAXX0504",
    "weather_station_name": "Toronto",
    "mcc": "302",
    "mnc": "370\/720",
    "mobile_brand": "Rogers Wireless",
    "elevation": 92,
    "usage_type": "ISP\/MOB",
    "address_type": "Unicast",
    "continent": {},
    "district": "Toronto",
    "country": {},
    "region": {},
    "city": {},
    "time_zone_info": {},
    "geotargeting": {},
    "ads_category": "IAB19-18",
    "ads_category_name": "Internet Technology",
    "is_proxy": false,
    "proxy": {}
}
import json

def export_to_csv():
    with open("data.json") as f:
        list1 = []
        data = json.loads(f.read())
        temp = data[0]
        header_items = []
        get_header_items(header_items, temp)
        list1.append(header_items)
      
        for obj in data:
            d = []
            add_items_to_data(d, obj)
            list1.append(d)
        
        with open('output.csv', 'w') as output_file:
            for a in list1:
                output_file.write(','.join(map(str, a)) + "\r")


def get_header_items(items, obj):
    for x in obj:
        if isinstance(obj[x], dict):
            items.append(x)
            get_header_items(items, obj[x])
        else:
            items.append(x)


def add_items_to_data(items, obj):
    for x in obj:
        if isinstance(obj[x], dict):
            items.append("")
            add_items_to_data(items, obj[x])
        else:
            items.append(obj[x])

export_to_csv()
/* DATA IS ANONYMIZED */

{
	"report_type": "summary",
	"fixed_daterange": false,
	"report_name": "Zero Hours Tracked (Yesterday)",
	"public": false,
	"hide_amounts": true,
	"workspace_logo": "https://assets.track.toggl.com/logos/df6331fb97774173c0ba384d1d8a8db0.png",
	"features": {
		"admin_roles": true,
		"report_export_xlsx": true
	},
	"saved_params": {
		"audit": {
			"group_filter": {
			},
			"show_empty_groups": true,
			"show_tracked_groups": false
		},
		"bars_count": 31,
		"beginningOfWeek": 1,
		"billable": "both",
		"calculate": "time",
		"canSeeBillableRates": false,
		"client_ids": null,
		"date_format": "YYYY-MM-DD",
		"description": null,
		"distinct_rates": "on",
		"durationFormat": "improved",
		"grouped": false,
		"grouping": "users",
		"groups": [
		],
		"hide_amounts": false,
		"isPaid": true,
		"maximum_duration_seconds": null,
		"minimum_duration_seconds": null,
		"or_members_of_group_ids": null,
		"order_desc": "off",
		"order_field": "duration",
		"period": "yesterday",
		"project_ids": null,
		"report_type": "summary",
		"showAmounts": false,
		"showRates": false,
		"since": "2023-12-11",
		"snowballRounding": {
			"enabled": false,
			"minutes": 15,
			"mode": 0
		},
		"subgrouping": "time_entries",
		"subgrouping_ids": true,
		"tag_ids": null,
		"task_ids": null,
		"time_display_mode": "dateTime",
		"time_format": "h:mm A",
		"until": "2023-12-11",
		"user_agent": "Toggl New v5.16.364",
		"user_ids": null,
		"with_total_currencies": 1,
		"without_description": "false",
		"workspace_id": 5885391
	},
	"input_params": {
		"end_date": "2023-12-11",
		"start_date": "2023-12-11"
	},
	"dictionaries": {
		"users": {
			"3717431": {
				"id": 3717431,
				"name": "Brett",
				"email": XXXXXX",
				"avatar_url": null
			},
			"7944309": {
				"id": 7944309,
				"name": "Rich XXXXXX",
				"email": "XXXXXX@XXXXXX.com",
				"avatar_url": "https://assets.track.toggl.com/avatars/f4266395d20811e67fd85af141f3deba.png"
			},
			"7944562": {
				"id": 7944562,
				"name": "Mike XXXXXX",
				"email": "XXXXXX@XXXXXX.com",
				"avatar_url": null
			},
			"8698878": {
				"id": 8698878,
				"name": "Krista XXXXXX",
				"email": "XXXXXX@XXXXXX.com",
				"avatar_url": null
			},
			"8909809": {
				"id": 8909809,
				"name": "Rick",
				"email": XXXXXX",
				"avatar_url": null
			},
			"8963294": {
				"id": 8963294,
				"name": "Anca",
				"email": XXXXXX",
				"avatar_url": "https://assets.track.toggl.com/avatars/69db4b7a8ef576ec0eb1073d2c03fec4.png"
			},
			"8963295": {
				"id": 8963295,
				"name": "Ankit",
				"email": XXXXXX",
				"avatar_url": null
			},
			"8969892": {
				"id": 8969892,
				"name": "Pablo",
				"email": XXXXXX",
				"avatar_url": null
			},
			"9100185": {
				"id": 9100185,
				"name": "Accounting",
				"email": XXXXXX",
				"avatar_url": null
			},
			"9122838": {
				"id": 9122838,
				"name": "Ifeanyi",
				"email": XXXXXX",
				"avatar_url": null
			},
			"9129762": {
				"id": 9129762,
				"name": "Emmanuel",
				"email": XXXXXX",
				"avatar_url": null
			},
			"9138460": {
				"id": 9138460,
				"name": "Ivan XXXXXX",
				"email": "XXXXXX@XXXXXX.com",
				"avatar_url": null
			},
			"9160712": {
				"id": 9160712,
				"name": "Bhavesh",
				"email": XXXXXX",
				"avatar_url": null
			},
			"9378129": {
				"id": 9378129,
				"name": "Ahmed",
				"email": XXXXXX",
				"avatar_url": "https://assets.track.toggl.com/avatars/edbfa87205043a013037329d0bdc87f9.png"
			},
			"9758451": {
				"id": 9758451,
				"name": "M XXXXXX",
				"email": "XXXXXX@XXXXXX.com",
				"avatar_url": null
			},
			"9777029": {
				"id": 9777029,
				"name": "StephanieXXXXXX",
				"email": XXXXXX",
				"avatar_url": null
			}
		},
		"projects": null,
		"clients": null,
		"tags": null,
		"tasks": null
	},
	"summary_results": {
		"report": {
			"groups": [
				{
					"id": 9100185,
					"sub_groups": null
				},
				{
					"id": 9160712,
					"sub_groups": null
				},
				{
					"id": 8963294,
					"sub_groups": null
				},
				{
					"id": 8963295,
					"sub_groups": null
				},
				{
					"id": 9378129,
					"sub_groups": null
				},
				{
					"id": 7944562,
					"sub_groups": null
				},
				{
					"id": 9777029,
					"sub_groups": null
				},
				{
					"id": 8969892,
					"sub_groups": null
				},
				{
					"id": 8698878,
					"sub_groups": null
				},
				{
					"id": 7944309,
					"sub_groups": null
				},
				{
					"id": 8909809,
					"sub_groups": null
				},
				{
					"id": 3717431,
					"sub_groups": null
				},
				{
					"id": 9122838,
					"sub_groups": null
				},
				{
					"id": 9129762,
					"sub_groups": null
				},
				{
					"id": 9138460,
					"sub_groups": null
				},
				{
					"id": 9758451,
					"sub_groups": null
				}
			]
		},
		"totals": {
			"seconds": 385398,
			"rates": [
				{
					"billable_seconds": 314122,
					"hourly_rate_in_cents": 0,
					"currency": ""
				}
			],
			"graph": [
				{
					"seconds": 385398,
					"by_rate": {
						"0": 314122
					}
				}
			],
			"resolution": "day"
		}
	}
}
{"id":16,"scId":48000018,"name":"Super City Rampage","hash":"Super-City-Rampage","scHash":"superCityRampage","disabled":true,"color":"#ff6847","bgColor":"#dc2423","version":1,"title":"Three players vs the MEGA MONSTER","tutorial":"Can you beat the Mega Monster and save the City? Join forces with two teammates to take down the Mega Monster. You can get back in the fight as long as at least one of your teammates is standing. If everyone falls OR all buildings get destroyed, the match is over!  Rampages increase in Challenge, from Normal all the way to Insane, every time you manage to beat the Mega Monster.","description":"Can you beat the Mega Monster and save the City? Join forces with two teammates to take down the Mega Monster. You can get back in the fight as long as at least one of your teammates is standing. If everyone falls OR all buildings get destroyed, the match is over!  Rampages increase in Challenge, from Normal all the way to Insane, every time you manage to beat the Mega Monster.","shortDescription":"Defeat the Boss","sort1":15,"sort2":15,"link":"https://brawlify.com/gamemodes/detail/Super-City-Rampage","imageUrl":"https://cdn-old.brawlify.com/gamemode/Super-City-Rampage.png","imageUrl2":"https://cdn-old.brawlify.com/gamemode/header/Super-City-Rampage.png","lastActive":1645430400}
Product Collection:
json
Copy code
{
  "_id": ObjectId("..."),
  "name": "Product Name",
  "description": "Product Description",
  "price": 19.99,
  "category": "Electronics",
  "inventory": 100,
  "reviews": [
    {
      "userId": ObjectId("..."),
      "username": "username",
      "rating": 4,
      "comment": "Great product!",
      "date": ISODate("2023-01-01T12:00:00Z")
    }
  ],
  "createdAt": ISODate("2023-01-01T08:00:00Z"),
  "updatedAt": ISODate("2023-01-01T08:30:00Z")
}
_id: Unique identifier for the product.
name: Name of the product.
description: Description of the product.
price: Price of the product.
category: Category to which the product belongs.
inventory: Quantity of the product available in stock.
reviews: Array of review documents, each containing information about the user, rating, comment, and date.
createdAt: Timestamp indicating when the product was created.
updatedAt: Timestamp indicating when the product was last updated.
2. User Collection:
json
Copy code
{
  "_id": ObjectId("..."),
  "username": "username",
  "email": "user@example.com",
  "password": "hashed_password",
  "role": "customer",
  "createdAt": ISODate("2023-01-01T10:00:00Z"),
  "updatedAt": ISODate("2023-01-01T10:30:00Z")
}
_id: Unique identifier for the user.
username: Username of the user.
email: Email address of the user.
password: Hashed password of the user.
role: Role of the user (e.g., customer, admin).
createdAt: Timestamp indicating when the user was created.
updatedAt: Timestamp indicating when the user was last updated.
3. Reviews Collection (if separate from Products):
json
Copy code
{
  "_id": ObjectId("..."),
  "productId": ObjectId("..."),
  "userId": ObjectId("..."),
  "rating": 4,
  "comment": "Great product!",
  "date": ISODate("2023-01-01T12:00:00Z")
}
_id: Unique identifier for the review.
productId: Reference to the product being reviewed.
userId: Reference to the user who wrote the review.
rating: Rating given by the user.
comment: Comment provided by the user.
date: Timestamp indicating when the review was posted.
4. Order Collection:
json
Copy code
{
  "_id": ObjectId("..."),
  "userId": ObjectId("..."),
  "products": [
    {
      "productId": ObjectId("..."),
      "quantity": 2,
      "price": 19.99
    }
  ],
  "totalPrice": 39.98,
  "status": "pending",
  "createdAt": ISODate("2023-01-02T14:00:00Z"),
  "updatedAt": ISODate("2023-01-02T14:30:00Z")
}
_id: Unique identifier for the order.
userId: Reference to the user who placed the order.
products: Array of product items in the order, each containing productId, quantity, and price.
totalPrice: Total price of the order.
status: Status of the order (e.g., pending, shipped).
createdAt: Timestamp indicating when the order was created.
updatedAt: Timestamp indicating when the order was last updated.
import json

user_info_file_path = 'userinfo.json'

def save_user_info(chat_id, user_id, first_name, last_name, username):
    # Load existing user information from the file
    user_info = load_user_info()

    # Add or update user information
    user_info[user_id] = {
	"user_id": user_id,
	"username": username,
    "chat_id": chat_id,
    "first_name": first_name,
    "last_name": last_name
    }

    # Save the updated user information back to the file
    with open(user_info_file_path, 'w') as file:
        json.dump(user_info, file)

def load_user_info():
    try:
        # Load user information from the file
        with open(user_info_file_path, 'r') as file:
            return json.load(file)
    except FileNotFoundError:
        # If the file doesn't exist yet, return an empty dictionary
        return {}
import json
from telegram import Update
from telegram.ext import CallbackContext

def append_user_info_to_json(update: Update, context: CallbackContext, file_path='users.json'):
    user_info = {
        'chat_id': update.effective_chat.id,
        'first_name': update.effective_chat.first_name,
        'last_name': update.effective_chat.last_name,
        'username': update.effective_chat.username
    }

    try:
        # Load existing data
        with open(file_path, 'r') as file:
            data = json.load(file)
    except FileNotFoundError:
        # If the file doesn't exist, start a new list
        data = []

    # Append new data
    data.append(user_info)

    # Write updated data back to file
    with open(file_path, 'w') as file:
        json.dump(data, file, indent=4)


def start(update: Update, context: CallbackContext) -> None:
    # Append user info to JSON
    append_user_info_to_json(update, context)
export enum ThemeOptions {
  Red = 'red',
}
  
export enum ThemeModes {
  Light = 'light-theme',
  Dark = 'dark-theme',
}
  
themeOptions: ThemeOption[] = [
    {
      text: 'Red',
      value: ThemeOptions.Red,
    },
];
  
themeChanged() { // Theme color changed
    document.body.className = '';
    const className = this.activeTheme.value + '-' + this.themeMode;
    this.themeService.switchTheme(className);
}

themeModeToggled() { // Theme mode changed: Light / Dark
    document.body.className = '';
    if (this.themeMode === ThemeModes.Light) {
      this.themeMode = ThemeModes.Dark;
    } else {
      this.themeMode = ThemeModes.Light;
    }

    const className = this.activeTheme.value + '-' + this.themeMode;
    this.themeService.switchTheme(className);
}
import { DOCUMENT } from '@angular/common';
import { Inject, Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root',
})
export class ThemeService {
  constructor(@Inject(DOCUMENT) private document: Document) {}

  switchTheme(theme: string) {
    let themeLink = this.document.getElementById(
      'app-theme'
    ) as HTMLLinkElement;

    if (themeLink) {
      themeLink.href = theme + '.css';
    }
  }
}
<link id="app-theme" rel="stylesheet" type="text/css" href="red-light.css"/>
{
  "input": "src/assets/primeng-theme/themes/mytheme/custom-themes/_red-light-theme.scss",
  "bundleName": "red-light-theme",
  "inject": false
},
{
  "input": "src/assets/primeng-theme/themes/mytheme/custom-themes/_red-dark-theme.scss",
  "bundleName": "red-dark-theme",
  "inject": false
},
{
    "id": 1,
    "product": [
        "a",
        "b",
        "c"
    ],
    "sales": [
        350,
        2500,
        500
    ]
}
document.getElementById('myForm').addEventListener('submit', function(event) {
  event.preventDefault();

  const formData = new FormData(this);

  const jsonObject = {};
  formData.forEach(function(value, key) {
    jsonObject[key] = value;
  });

  fetch('your-php-script.php', {
    method: 'POST',
    body: JSON.stringify(jsonObject),
    headers: {
      'Content-Type': 'application/json'
    }
  })
  .then(function(response) {
    return response.json();
  })
  .then(function(data) {
    console.log(data);
  })
  .catch(function(error) {
    console.error('Error:', error);
  });
});
// file data.json

{
"localItems": {
	"items": [
      {
		"title": "Halabut",
		"type": "string",
        "status": false
		},
			{
        "title": "Taco",
		"type": "string",
        "status": true
		},
      {
        "title": "Fish",
		"type": "string",
        "status": true
		},
      {
        "title": "Pork",
		"type": "string",
        "status": false
		}
		]
	}
}




//js file must be a module
// <script src="scripts.js" defer type="module"></script>

// JS file 
import data from "./data.json" assert { type: "json" };
const {localItems} = data;
const JSONDATA = localItems['items'];

{
   "code":0,
   "data":{
      "items":[
        {
            "id":"opawmHignLhBv8GvErVs8vzhvrZyu5tGRSeDZZ1yr36XKR2E6sq", // tx hash
            "type":"tx",                                                // tx type
            "gas_limit":0,
            "gas_used":0,
            "fee":"",
            "date":1626383952,                                          // date
            "block":0,
            "confirmation":0,
            "status":"pending",                                         // transaction status
            "metadata":[                                                // original tx data
               {
                  "counter":15740700,
                  "fee":11766,
                  "from":"tz1RnJ3Y8kKjLLmGDGLE4wEmpopoWqJ7S7Ra",
                  "gas_limit":114869,
                  "status":"pending",
                  "to":"KT1KnuE87q1EKjPozJ5sRAjQA24FPsP57CE3",
                  "type":"transfer",
                  "value":"0"
               }
            ]
        },
        {
            "id":"opavVeQTQ5tZyhJ1fP98v2my2WiSYWasuZXVjD9k2mVuyX5N9Mh",
            "type":"tx",
            "gas_limit":0,
            "gas_used":0,
            "fee":"",
            "date":1626382842,
            "block":0,
            "confirmation":0,
            "status":"pending",
            "metadata":[
               {
                  "counter":15813980,
                  "fee":9023,
                  "from":"tz1grnG9eV4y7BnU8CGpmoxiT3Fxm1LE8TUj",
                  "gas_limit":87398,
                  "status":"pending",
                  "storage_limit":350,
                  "to":"KT1HbQepzV1nVGg8QVznG7z4RcHseD5kwqBn",
                  "type":"transfer",
                  "value":"36000000"
               }
            ]
        },
        ...
      ],
      "nextkey":"WodWBjd5iBQDpRc"
   },
   "message":"OK"
}
{
   "code":0,
   "data":{
      "id":"onfnmswLHhEx1fw9At6Yyf4H8phhD95xNX2XTLrk98c2LhDDrpp", // tx hash
      "type":"tx",                                                // tx type
      "gas_limit":0,                                              
      "gas_used":0,
      "fee":"",
      "date":1626273585,                                          // date
      "block":0,
      "confirmation":0,
      "status":"pending",                                         // transaction status
      "metadata":[                                                // original tx data
         {
            "counter":11368289,
            "from":"tz1Tk1MJDZ96bK85RLAqtKfnptZZyXsJ2jaq",
            "gas_limit":24387,
            "status":"pending",
            "storage_limit":100,
            "to":"KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton",
            "type":"transfer",
            "value":"0"
         },
         {
            "counter":11368290,
            "fee":10103,
            "from":"tz1Tk1MJDZ96bK85RLAqtKfnptZZyXsJ2jaq",
            "gas_limit":69285,
            "status":"pending",
            "storage_limit":250,
            "to":"KT1HbQepzV1nVGg8QVznG7z4RcHseD5kwqBn",
            "type":"transfer",
            "value":"0"
         }
      ]
   },
   "message":"OK"
}
{
    "code": 0,
    "message": "OK",
    "data": "53612a597bc416a5c0354b31023a3bb197468c8a81d1cad138629f56d50e1447" // transaction hash
}
{
    "code": 0,
    "message": "OK",
    "data": "53612a597bc416a5c0354b31023a3bb197468c8a81d1cad138629f56d50e1447"
}
{
    "code": 0,
    "message": "OK",
    "data": "53612a597bc416a5c0354b31023a3bb197468c8a81d1cad138629f56d50e1447"
}
{
    "code": 0,
    "message": "OK",
    "data": "53612a597bc416a5c0354b31023a3bb197468c8a81d1cad138629f56d50e1447" // transaction hash
}
{
    "code": 0,
    "message": "OK",
    "data": "53612a597bc416a5c0354b31023a3bb197468c8a81d1cad138629f56d50e1447"
}
{
   "code":0,
   "data":{
      "id":"onfnmswLHhEx1fw9At6Yyf4H8phhD95xNX2XTLrk98c2LhDDrpp", // tx hash
      "type":"tx",                                                // tx type
      "gas_limit":0,                                              
      "gas_used":0,
      "fee":"",
      "date":1626273585,                                          // date
      "block":0,
      "confirmation":0,
      "status":"pending",                                         // transaction status
      "metadata":[                                                // original tx data
         {
            "counter":11368289,
            "from":"tz1Tk1MJDZ96bK85RLAqtKfnptZZyXsJ2jaq",
            "gas_limit":24387,
            "status":"pending",
            "storage_limit":100,
            "to":"KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton",
            "type":"transfer",
            "value":"0"
         },
         {
            "counter":11368290,
            "fee":10103,
            "from":"tz1Tk1MJDZ96bK85RLAqtKfnptZZyXsJ2jaq",
            "gas_limit":69285,
            "status":"pending",
            "storage_limit":250,
            "to":"KT1HbQepzV1nVGg8QVznG7z4RcHseD5kwqBn",
            "type":"transfer",
            "value":"0"
         }
      ]
   },
   "message":"OK"
}
{
   "code":0,
   "data":{
      "id":"opUmCzs6MZoJqCNviVJjZ4M4AjqDSVvYo4fxxnwjCTuqz6ramLy",
      "type":"tx",
      "gas_limit":0,
      "gas_used":0,
      "fee":"",
      "date":1626278749,
      "block":0,
      "confirmation":0,
      "status":"pending",
      "metadata":[
         {
            "counter":15800460,
            "fee":7081,
            "from":"tz1YUKwiv3uUMmjzdeQtAnrYk4aHh7KwFu93",
            "gas_limit":68042,
            "status":"pending",
            "to":"KT1X4L8FBVEqCf7o8LXpzUSmWnpuFB2r2AHx",
            "type":"transfer",
            "value":"0"
         }
      ]
   },
   "message":"OK"
}

{
   "code":0,
   "data":{
      "id":"onfnmswLHhEx1fw9At6Yyf4H8phhD95xNX2XTLrk98c2LhDDrpp", // tx hash
      "type":"tx",                                                // tx type
      "gas_limit":0,                                              
      "gas_used":0,
      "fee":"",
      "date":1626273585,                                          // date
      "block":0,
      "confirmation":0,
      "status":"pending",                                         // transaction status
      "metadata":[                                                // original tx data
         {
            "counter":11368289,
            "from":"tz1Tk1MJDZ96bK85RLAqtKfnptZZyXsJ2jaq",
            "gas_limit":24387,
            "status":"pending",
            "storage_limit":100,
            "to":"KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton",
            "type":"transfer",
            "value":"0"
         },
         {
            "counter":11368290,
            "fee":10103,
            "from":"tz1Tk1MJDZ96bK85RLAqtKfnptZZyXsJ2jaq",
            "gas_limit":69285,
            "status":"pending",
            "storage_limit":250,
            "to":"KT1HbQepzV1nVGg8QVznG7z4RcHseD5kwqBn",
            "type":"transfer",
            "value":"0"
         }
      ]
   },
   "message":"OK"
}
{
   "code":0,
   "data":{
      "id":"onfnmswLHhEx1fw9At6Yyf4H8phhD95xNX2XTLrk98c2LhDDrpp", // tx hash
      "type":"tx",                                                // tx type
      "gas_limit":0,                                              
      "gas_used":0,
      "fee":"",
      "date":1626273585,                                          // date
      "block":0,
      "confirmation":0,
      "status":"pending",                                         // transaction status
      "metadata":[                                                // original tx data
         {
            "counter":11368289,
            "from":"tz1Tk1MJDZ96bK85RLAqtKfnptZZyXsJ2jaq",
            "gas_limit":24387,
            "status":"pending",
            "storage_limit":100,
            "to":"KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton",
            "type":"transfer",
            "value":"0"
         },
         {
            "counter":11368290,
            "fee":10103,
            "from":"tz1Tk1MJDZ96bK85RLAqtKfnptZZyXsJ2jaq",
            "gas_limit":69285,
            "status":"pending",
            "storage_limit":250,
            "to":"KT1HbQepzV1nVGg8QVznG7z4RcHseD5kwqBn",
            "type":"transfer",
            "value":"0"
         }
      ]
   },
   "message":"OK"
}
{
   "code":0,
   "data":{
      "id":"opUmCzs6MZoJqCNviVJjZ4M4AjqDSVvYo4fxxnwjCTuqz6ramLy",
      "type":"tx",
      "gas_limit":0,
      "gas_used":0,
      "fee":"",
      "date":1626278749,
      "block":0,
      "confirmation":0,
      "status":"pending",
      "metadata":[
         {
            "counter":15800460,
            "fee":7081,
            "from":"tz1YUKwiv3uUMmjzdeQtAnrYk4aHh7KwFu93",
            "gas_limit":68042,
            "status":"pending",
            "to":"KT1X4L8FBVEqCf7o8LXpzUSmWnpuFB2r2AHx",
            "type":"transfer",
            "value":"0"
         }
      ]
   },
   "message":"OK"
}

{
   "code":0,
   "data":{
      "items":[
        {
            "id":"opawmHignLhBv8GvErVs8vzhvrZyu5tGRSeDZZ1yr36XKR2E6sq", // tx hash
            "type":"tx",                                                // tx type
            "gas_limit":0,
            "gas_used":0,
            "fee":"",
            "date":1626383952,                                          // date
            "block":0,
            "confirmation":0,
            "status":"pending",                                         // transaction status
            "metadata":[                                                // original tx data
               {
                  "counter":15740700,
                  "fee":11766,
                  "from":"tz1RnJ3Y8kKjLLmGDGLE4wEmpopoWqJ7S7Ra",
                  "gas_limit":114869,
                  "status":"pending",
                  "to":"KT1KnuE87q1EKjPozJ5sRAjQA24FPsP57CE3",
                  "type":"transfer",
                  "value":"0"
               }
            ]
        },
        {
            "id":"opavVeQTQ5tZyhJ1fP98v2my2WiSYWasuZXVjD9k2mVuyX5N9Mh",
            "type":"tx",
            "gas_limit":0,
            "gas_used":0,
            "fee":"",
            "date":1626382842,
            "block":0,
            "confirmation":0,
            "status":"pending",
            "metadata":[
               {
                  "counter":15813980,
                  "fee":9023,
                  "from":"tz1grnG9eV4y7BnU8CGpmoxiT3Fxm1LE8TUj",
                  "gas_limit":87398,
                  "status":"pending",
                  "storage_limit":350,
                  "to":"KT1HbQepzV1nVGg8QVznG7z4RcHseD5kwqBn",
                  "type":"transfer",
                  "value":"36000000"
               }
            ]
        },
        ...
      ],
      "nextkey":"WodWBjd5iBQDpRc"
   },
   "message":"OK"
}
{
   "code":0,
   "data":{
      "items":[
         {
            "id":"opawmHignLhBv8GvErVs8vzhvrZyu5tGRSeDZZ1yr36XKR2E6sq",
            "type":"tx",
            "gas_limit":0,
            "gas_used":0,
            "fee":"",
            "date":1626383952,
            "block":0,
            "confirmation":0,
            "status":"pending",
            "metadata":[
               {
                  "counter":15740700,
                  "fee":11766,
                  "from":"tz1RnJ3Y8kKjLLmGDGLE4wEmpopoWqJ7S7Ra",
                  "gas_limit":114869,
                  "status":"pending",
                  "to":"KT1KnuE87q1EKjPozJ5sRAjQA24FPsP57CE3",
                  "type":"transfer",
                  "value":"0"
               }
            ]
         },
         {
            "id":"opavVeQTQ5tZyhJ1fP98v2my2WiSYWasuZXVjD9k2mVuyX5N9Mh",
            "type":"tx",
            "gas_limit":0,
            "gas_used":0,
            "fee":"",
            "date":1626382842,
            "block":0,
            "confirmation":0,
            "status":"pending",
            "metadata":[
               {
                  "counter":15813980,
                  "fee":9023,
                  "from":"tz1grnG9eV4y7BnU8CGpmoxiT3Fxm1LE8TUj",
                  "gas_limit":87398,
                  "status":"pending",
                  "storage_limit":350,
                  "to":"KT1HbQepzV1nVGg8QVznG7z4RcHseD5kwqBn",
                  "type":"transfer",
                  "value":"36000000"
               }
            ]
         },
         ...
      ],
      "nextkey":"WodWBjd5iBQDpRc"
   },
   "message":"OK"
}
{
   "code":0,
   "data":{
      "items":[
         {
            "tx_id":"8d2777cba68acc09a202f2744e659bfe39ee3aa833fcc82a51d69c60a43fd779", // tx hash
            "id":"156052817747316740",                                                  // operation id
            "from":"GBCKGV4GHTDVPOEZZJ3UEOEGNQSZ3GMFI4DBJ64LMRSJF5XL7WPCVCB7",          // operation initiator
            "to":"",                                                                    // target address
            "type":"manage_buy_offer",                                                  // operation type, same as the type returned by node
            "date":1626083438,                                                          // data
            "height":36333878,                                                          // height
            "value":"13.1764723",                                                       // amount
            "price":"8136.6965013",                                                     // price
            "price_r":{                                                                 // prove info
               "n":1691903987,                                                          // 
               "d":207935                                                               // 
            },
            "buying":{                                                                  // info of purchased asset
               "asset_type":"native"                                                    // asset type
            },
            "selling":{                                                                 // info of sold asset
               "asset_type":"credit_alphanum12",                                        // asset type
               "asset_code":"PEPPA",                                                    // asset ticker
               "asset_issuer":"GDTMNIOBAGPT7FTVE5KWM7EJU3MXU6ILIJRVWOU4XQNSAXGBHVTYO3V3"// asset creator
            },
            "meta_data":0                                                               // operation metadata
         },
         {
            "tx_id":"8bbec38366ec1e112e592b4dc9022f3e0fd0d00b0bf548c2fcccf9afc15d7b62",
            "id":"156052817746944002",
            "from":"GD4VJBZAGKM652X2JKJEYF4BX64HDQXVJSHMZV5R6QLMWVRSSLK3IQ3L",
            "to":"",
            "type":"manage_buy_offer",
            "create_time":1626083438,
            "height":36333878,
            "amount":"0.0000000",
            "price":"0.0001000",
            "price_r":{
               "n":1,
               "d":10000
            },
            "buying":{
               "asset_type":"native"
            },
            "selling":{
               "asset_type":"credit_alphanum4",
               "asset_code":"FLEX",
               "asset_issuer":"GAJPEST5EQ73Z3LNXFC4TU5T5PZ6YCOJUPGPALWPMOP6L57YGZWITKJD"
            },
            "meta_data":700460943
         },
      ],
      "nextkey":"3GYp7numkLnSupJcK"
   },
   "message":"OK"
}
{
   "code":0,
   "data":{
      "items":[
         {
            "tx_id":"8d2777cba68acc09a202f2744e659bfe39ee3aa833fcc82a51d69c60a43fd779",
            "id":"156052817747316740",
            "from":"GBCKGV4GHTDVPOEZZJ3UEOEGNQSZ3GMFI4DBJ64LMRSJF5XL7WPCVCB7",
            "to":"",
            "type":"manage_buy_offer",
            "create_time":1626083438,
            "height":36333878,
            "amount":"13.1764723",
            "price":"8136.6965013",
            "price_r":{
               "n":1691903987,
               "d":207935
            },
            "buying":{
               "asset_type":"native"
            },
            "selling":{
               "asset_type":"credit_alphanum12",
               "asset_code":"PEPPA",
               "asset_issuer":"GDTMNIOBAGPT7FTVE5KWM7EJU3MXU6ILIJRVWOU4XQNSAXGBHVTYO3V3"
            },
            "meta_data":0
         },
         {
            "tx_id":"8bbec38366ec1e112e592b4dc9022f3e0fd0d00b0bf548c2fcccf9afc15d7b62",
            "id":"156052817746944002",
            "from":"GD4VJBZAGKM652X2JKJEYF4BX64HDQXVJSHMZV5R6QLMWVRSSLK3IQ3L",
            "to":"",
            "type":"manage_buy_offer",
            "create_time":1626083438,
            "height":36333878,
            "amount":"0.0000000",
            "price":"0.0001000",
            "price_r":{
               "n":1,
               "d":10000
            },
            "buying":{
               "asset_type":"native"
            },
            "selling":{
               "asset_type":"credit_alphanum4",
               "asset_code":"FLEX",
               "asset_issuer":"GAJPEST5EQ73Z3LNXFC4TU5T5PZ6YCOJUPGPALWPMOP6L57YGZWITKJD"
            },
            "meta_data":700460943
         },
         ...
      ],
      "nextkey":"3GYp7numkLnSupJcK"
   },
   "message":"OK"
}

{
   "code":0,
   "data":{
      "items":[
         {
            "id":"FDCBB834941D213ED5B031E4F7451FF30FB73E27413D1D286D5CEE5A27454231", // tx hash
            "type":"OfferCreate",                                                    // tx type
            "gas_limit":0,  
            "gas_used":0,
            "nonce":79581329,                                                        // sequence
            "from":"rh3VLyj1GbQjX7eA15BwUagEhSrPHmLkSR",                             // tx initiated address
            "fee":"0.000012",                                                        // fee
            "date":1626133180,                                                       // date
            "block":64907490,                                                        // block height
            "confirmation":74587,                                                    // number of confirmation
            "status":"completed",                                                    // transaction status
            "metadata":{                                                             // original tx data
               "expiration":null,
               "offerSequence":79581325,
               "takerGets":[
                  {
                     "Key":"value",
                     "Value":"92645.28764344087"
                  },
                  {
                     "Key":"currency",
                     "Value":"CNY"
                  },
                  {
                     "Key":"issuer",
                     "Value":"rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK"
                  }
               ],
               "takerPays":[
                  {
                     "Key":"value",
                     "Value":"23424.733033"
                  },
                  {
                     "Key":"currency",
                     "Value":"XRP"
                  },
                  {
                     "Key":"issuer",
                     "Value":"rrrrrrrrrrrrrrrrrrrrrhoLvTp"
                  }
               ]
            }
         },
         ...
      ],
      "nextkey":"WodWBjd5iBQDpRc"
   },
   "message":"OK"
}

{
   "code":0,
   "data":{
      "items":[
         {
            "id":"FD0320189DFD6DD0A0B610319052BCC3DF42938FAC6A37E5E877E3D34D5AB4D2",
            "type":"OfferCreate",
            "gas_limit":0,
            "gas_used":0,
            "nonce":16916199,
            "from":"rHzKtpcB1KC1YuU4PBhk9m2abqrf2kZsfV",
            "fee":"0.000012",
            "date":1626132991,
            "block":64907441,
            "confirmation":74717,
            "status":"completed",
            "metadata":{
               "expiration":null,
               "offerSequence":16916195,
               "takerGets":[
                  {
                     "Key":"issuer",
                     "Value":"rrrrrrrrrrrrrrrrrrrrrhoLvTp"
                  },
                  {
                     "Key":"value",
                     "Value":"15838.560885"
                  },
                  {
                     "Key":"currency",
                     "Value":"XRP"
                  }
               ],
               "takerPays":[
                  {
                     "Key":"value",
                     "Value":"75425.4443356396"
                  },
                  {
                     "Key":"currency",
                     "Value":"CNY"
                  },
                  {
                     "Key":"issuer",
                     "Value":"rJ1adrpGS3xsnQMb9Cw54tWJVFPuSdZHK"
                  }
               ]
            }
         },
         ...
      ],
      "nextkey":"WodWBaGC2F5Lv7p"
   },
   "message":"OK"
}
{
    "code":0,
    "message":"OK",
    "data":{
        "confirmation": 74720,                                                      // number of confirmation
        "platform": "XRP",                                                          // coin/token
        "tx_id": "4472EC598E5CA15675628E97EDB36F6A5BDF9A57541CF8622E734F3389EBB70B" // txid
    }
}

{
   "code":0,
   "data":{
      "confirmation":74734,
      "platform":"XRP",
      "tx_id":"4472EC598E5CA15675628E97EDB36F6A5BDF9A57541CF8622E734F3389EBB70B"
   },
   "message":"OK"
}

{
   "code":0,
   "data":{
      "id":"2E4041A04E5FF75A639B387AFEB5E5BFC7E29F9608C11BE81032FB44A5F23E72", // tx hash
      "type":"OfferCreate",                                                    // tx type, same as the node tx type
      "gas_limit":0,
      "gas_used":0,
      "nonce":39641232,                                                        // sequence
      "from":"r3rhWeE31Jt5sWmi4QiGLMZnY3ENgqw96W",                             // tx initiated address
      "fee":"0.00001",                                                         // fee
      "date":1626132442,                                                       // date
      "block":64907298,                                                        // block height
      "confirmation":74476,                                                    // number of confirmation
      "status":"completed",                                                    // transaction status
      "metadata":{                                                             // original tx data
         "expiration":null,
         "offerSequence":null,
         "takerGets":[
            {
               "Key":"value",
               "Value":"56.33449050941346"
            },
            {
               "Key":"currency",
               "Value":"DSH"
            },
            {
               "Key":"issuer",
               "Value":"rcXY84C4g14iFp6taFXjjQGVeHqSCh9RX"
            }
         ],
         "takerPays":[
            {
               "Key":"value",
               "Value":"12387.39414"
            },
            {
               "Key":"currency",
               "Value":"XRP"
            },
            {
               "Key":"issuer",
               "Value":"rrrrrrrrrrrrrrrrrrrrrhoLvTp"
            }
         ]
      }
   },
   "message":"OK"
}
{
   "code":0,
   "data":{
      "id":"9AC7B2A9AFE2FFEC0CE11456B62E033920CA40112624C962EB1B5FB97C627264",
      "type":"OfferCancel",
      "gas_limit":0,
      "gas_used":0,
      "nonce":63510644,
      "from":"rB5Ux4Lv2nRx6eeoAAsZmtctnBQ2LiACnk",
      "fee":"0.000012",
      "date":1626132471,
      "block":64907305,
      "confirmation":74523,
      "status":"completed",
      "metadata":{
         "offerSequence":63510638
      }
   },
   "message":"OK"
}

{
   "code":0,
   "data":{
      "items":[
         {
            "id":"F372D9F3770C77D792822A9B41A98E8664DDA1C4B4476FD7579F5866F53C7A4C",// tx hash transaction status
            "type":"Payment",                                                       // tx type, same as the node tx type
            "gas_limit":0,                              
            "gas_used":0,
            "nonce":6592765,
            "from":"rJb5KsHsDHF1YS5B5DU6QCkH5NsPaKQTcy",                            // from
            "to":"r3CVjHBjYJmDWQm4Xt3GYbYoqixcL91fTu",                              // to
            "fee":"0.001",                                                          // fee
            "date":1626132392,                                                      // date
            "value":"600.907952",                                                   // amount
            "block":64907285,                                                       // block height
            "confirmation":71983,                                                   // number of confirmation
            "status":"completed",                                                   // transaction status
            "metadata":{                                                            // tx info
               "currency":"XRP",
               "issuer":"rrrrrrrrrrrrrrrrrrrrrhoLvTp",
               "value":"600.907952"
            }
         }
      ],
      "nextkey":"28X8Y1SBqoE57YtWA93ugoVi"
   },
   "message":"OK"
}
{
   "code":0,
   "data":{
      "items":[
         {
            "id":"F372D9F3770C77D792822A9B41A98E8664DDA1C4B4476FD7579F5866F53C7A4C",
            "type":"Payment",
            "gas_limit":0,
            "gas_used":0,
            "nonce":6592765,
            "from":"rJb5KsHsDHF1YS5B5DU6QCkH5NsPaKQTcy",
            "to":"r3CVjHBjYJmDWQm4Xt3GYbYoqixcL91fTu",
            "fee":"0.001",
            "date":1626132392,
            "value":"600.907952",
            "block":64907285,
            "confirmation":71983,
            "status":"completed",
            "metadata":{
               "currency":"XRP",
               "issuer":"rrrrrrrrrrrrrrrrrrrrrhoLvTp",
               "value":"600.907952"
            }
         }
      ],
      "nextkey":"28X8Y1SBqoE57YtWA93ugoVi"
   },
   "message":"OK"
}

{
    "code": 0,
    "data": {
        "address": "r3CVjHBjYJmDWQm4Xt3GYbYoqixcL91fTu",            // address
        "start_height": 64907285,                                   // initial height since info inquiry
        "start_time": 1626255157,                                   // initial time since info inquiry
        "height": 64907367,                                         // final height at the end of info inquiry
        "sequence":"64907285",                                      // next sequence
        "balance": "600.907952",                                    // balance available
        "total_txs": 1,                                             // total tx count
        "total_tx_in": "600.907952",                                // received amount
        "total_tx_out": "0",                                        // transferred amount
        "latest_tx": {                                              // last tx
            "id":"F372D9F3770C77D792822A9B41A98E8664DDA1C4B4476FD7579F5866F53C7A4C",
            "type":"Payment",
            "gas_limit":0,
            "gas_used":0,
            "nonce":6592765,
            "from":"rJb5KsHsDHF1YS5B5DU6QCkH5NsPaKQTcy",
            "to":"r3CVjHBjYJmDWQm4Xt3GYbYoqixcL91fTu",
            "fee":"0.001",
            "date":1626132392,
            "value":"600.907952",
            "block":64907285,
            "confirmation":0,
            "status":"completed",
            "metadata":{
                "currency":"XRP",
                "issuer":"rrrrrrrrrrrrrrrrrrrrrhoLvTp",
                "value":"600.907952"
            }
        }
    },
    "message": "OK"
}
{
   "code":0,
   "data":{
      "address":"r3CVjHBjYJmDWQm4Xt3GYbYoqixcL91fTu",
      "start_height":64907285,
      "start_time":1626255157,
      "height":64907367,
      "balance":"600.907952",
      "sequence":"64907285",
      "total_txs":1,
      "total_tx_in":"600.907952",
      "total_tx_out":"0",
      "latest_tx":{
         "id":"F372D9F3770C77D792822A9B41A98E8664DDA1C4B4476FD7579F5866F53C7A4C",
         "type":"Payment",
         "gas_limit":0,
         "gas_used":0,
         "nonce":6592765,
         "from":"rJb5KsHsDHF1YS5B5DU6QCkH5NsPaKQTcy",
         "to":"r3CVjHBjYJmDWQm4Xt3GYbYoqixcL91fTu",
         "fee":"0.001",
         "date":1626132392,
         "value":"600.907952",
         "block":64907285,
         "confirmation":0,
         "status":"completed",
         "metadata":{
            "currency":"XRP",
            "issuer":"rrrrrrrrrrrrrrrrrrrrrhoLvTp",
            "value":"600.907952"
         }
      }
   },
   "message":"OK"
}
{
    "code": 0,
    "data": {
        "name": "Wandoge2",                                         // token name
        "symbol": "WANDOGE2",                                       // token ticker
        "decimals": 18,                                             // token decimal
        "token_id": "0xfbb94a3966da67e12170d6662d2fa99f07f0b4d5",   // token id(contract)
        "coin": "eth",                                              // coin
        "holder_count": 2                                           // holder count
    },
    "message": "OK"
}

{
    "code": 0,
    "data": {
        "name": "Qkika Token",
        "symbol": "Qkika",
        "decimals": 6,
        "token_id": "0xf4beccb8440cfebbbd8a324623c1b2cce9b55ad6",
        "coin": "eth"
    },
    "message": "OK"
}

{
    "code": 0,
    "data": {
        "items": [
             {
                "name": "Wandoge2",                                       
                "symbol": "WANDOGE2",                                     
                "decimals": 18,                                           
                "token_id": "0xfbb94a3966da67e12170d6662d2fa99f07f0b4d5",  
                "coin": "eth",                                            
                "holder_count": 2                                          
            },
            {
                "name": "Tesla Stock TOKEN",
                "symbol": "TSLA",
                "decimals": 18,
                "token_id": "0xfb588e297332e3dfb1af06296c4765cee5c15494",
                "coin": "eth"
            },
            {
                "name": "TMCOW",
                "symbol": "COW",
                "decimals": 18,
                "token_id": "0xfb4af01c76960e34572a962d0d3d07dd2dee0f46",
                "coin": "eth"
            },
            {
                "name": "FaucetToken",
                "symbol": "FAU",
                "decimals": 18,
                "token_id": "0xfab46e002bbf0b4509813474841e0716e6730136",
                "coin": "eth"
            },
            {
                "name": "Wandoge2",
                "symbol": "WANDOGE2",
                "decimals": 18,
                "token_id": "0xf9fcd33c2fa6d0c228fb74d3138258d4d4c017a5",
                "coin": "eth"
            },
            {
                "name": "TEST CONTRACT",
                "symbol": "XRP",
                "decimals": 18,
                "token_id": "0xf9b3e3690083f0deb4855aece0e74a7f520b950e",
                "coin": "eth"
            },
            {
                "name": "PUN",
                "symbol": "PUN",
                "decimals": 18,
                "token_id": "0xf9527c6bd7153cc2f46ac816a24aec24dd5913d5",
                "coin": "eth"
            },
            {
                "name": "GridZone.io",
                "symbol": "ZONE",
                "decimals": 18,
                "token_id": "0xf884d04e282f859f694c691eb19a618646cdcf10",
                "coin": "eth"
            },
            {
                "name": "Wandoge",
                "symbol": "WANDOGE",
                "decimals": 18,
                "token_id": "0xf70b5285078ba3c116a05cb7bedb59acc3f852f2",
                "coin": "eth"
            }
        ],
        "nextkey": "M6zHaZxAXCe",
    },
    "message": "OK"
}

{
    "code": 0,
    "data": {
        "items": [
             {
                "name": "Wandoge2",                                         // token name
                "symbol": "WANDOGE2",                                       // token ticker
                "decimals": 18,                                             // token decimal
                "token_id": "0xfbb94a3966da67e12170d6662d2fa99f07f0b4d5",   // token id(contract)
                "coin": "eth",                                              // coin
                "holder_count": 2                                           // holder count, the result will not be shown when it is 0
            },
            ...
        ],
        "nextkey": "M6zHaZxAXCe",
    },
    "message": "OK"
}

{
    "code": 0,
    "data": {
        "id": "0xb56eb930f96015f4d9bf6a1f63aac259abed6f447057e5b7f0d35d88a3af2163", // tx hash
        "gas_limit": 21000,                                                         // gas limit
        "gas_price": "117000000000",                                                // gas price
        "gas_used": 0,                                                              // gas used
        "nonce": 173,                                                               // nonce value
        "from": "0xdb248d1ab299e2f453eb06d5ef5b1db531996cb1",                       // from
        "to": "0x58edb19ded9d46e0f76743722fce137b13daaedb",                         // to
        "fee": "",                                                                  // fee
        "date": 0,                                                                  // timestamp
        "block": 0,                                                                 // block height
        "confirmation": 0,                                                          // number of confirmation
        "status": "pending",                                                        // transaction status
        "metadata": []
    },
    "message": "OK"
}
{
    "code": 0,
    "data": {
        "id": "0x57cde10fd9c4ea53e3a0df68860c18b02c7b45fda298f0d92ded4d5368feb87a",
        "gas_limit": 90908,
        "gas_price": "1000000000",
        "gas_used": 0,
        "nonce": 552,
        "from": "0x4fe2000fb08b8059e1898cec0426b6d89228622b",
        "to": "0x0cc6cc19a03d005708e4b0985fdf4dee44639ee5",
        "fee": "",
        "date": 0,
        "block": 0,
        "confirmation": 0,
        "status": "pending",
        "metadata": []
    },
    "message": "OK"
}

{
    "code": 0,
    "data": {
        "items": [
            {
                "id": "0x3a5c680b49451775b67ad9b4846e553c5bd12fbd9e0d77dafd184b3a023e2b1b", // txid
                "type": "token_transfer",                                           // tx type, token_transfer for tx transferred token、contract_call for tx called contract,transfer for normal tx
                "gas_limit": 139979,                                                // gas limit
                "gas_price": "1000000000",                                          // gas price
                "gas_used": 102040,                                                 // gas used
                "nonce": 31,                                                        // tx nonce
                "from": "0x3c98189b52fb2e1da681026d4f965ea4f2b7b13c",               // from
                "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d",                 // to
                "fee": "102040000000000",                                           // fee
                "date": 1620730114,                                                 // tx timestamp
                "block": 10213589,                                                  // block height
                "confirmation": 2427,                                               // number of confirmation
                "status": "completed",                                              // transaction status
                "token_transfers": [                                                // token tx info
                    {
                        "index": 1,         
                        "token_id": "0xc778417e063141139fce010982780140aa0cd5ab",   // token id (contract)
                        "type": "",
                        "value": "100000000000000000",                              // value
                        "from": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d",
                        "to": "0xd695dc9f79cf0b0f8c23e7f01aec354403747a3f"
                    },
                    {
                        "index": 2,
                        "token_id": "0x902b2a515c43256158fde75f7de6f155e4a45c14",
                        "type": "",
                        "value": "344876432180959503648615581383",
                        "from": "0xd695dc9f79cf0b0f8c23e7f01aec354403747a3f",
                        "to": "0x3c98189b52fb2e1da681026d4f965ea4f2b7b13c"
                    }
                ],
                "metadata": []
            }
           {
                "id": "0x553d77deaddcdc5e5f69867ad60fba9f63d874f3d15f0cafdfc6098b87550928",
                "type": "transfer",
                "gas_limit": 400000,
                "gas_price": "2000000000",
                "gas_used": 273385,
                "nonce": 2,
                "from": "0x15b31e86cd118040db66fb8b14d5be658a9b71a7",
                "to": "0xa10d0c6e04845a5e998d1936249a30563c553417",
                "fee": "546770000000000",
                "date": 1616569886,
                "value": "0",
                "block": 9900000,
                "confirmation": 509675,
                "status": "completed",
                "contract_call": [                                                  //  Contract call info
                    {
                        "contract": "0x5ea9ea8e80230e514b5e023e8d956550a22d02c6",   // contract address
                        "input":        "0xd98380ea00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100cd54fa0c503bcd81e680e9f910531ee4dafbe0602ed0c9ae193af44213be0f16000000000000000000000000000000000000000000000000000000000000001c185f5e43b4bc10fa7a9db2f5e25bf1a966dba79148b120ef78d3828b32692d174bda81b9a01561505f612ef43245a336c2d88824aff6f66ac2d14917137d68d1000000000000000000000000000000000000000000000000000000000000000100100000000000000000000000000000ecdf4636493d43529141b53274a69803000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000003635c9adc5dea00000"
                    }                                                               // input
                ],
                "metadata": []
            },
        ],
        "nextkey": "",
    },
    "message": "OK"
}

{
    "code": 0,
    "data": {
        "items": [
            {
                "id": "0x3a5c680b49451775b67ad9b4846e553c5bd12fbd9e0d77dafd184b3a023e2b1b", 
                "type": "token_transfer",                                          
                "gas_limit": 139979,                                              
                "gas_price": "1000000000",                                        
                "gas_used": 102040,                                                
                "nonce": 31,                                                      
                "from": "0x3c98189b52fb2e1da681026d4f965ea4f2b7b13c",              
                "to": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d",               
                "fee": "102040000000000",                                          
                "date": 1620730114,                                               
                "block": 10213589,                                                
                "confirmation": 2427,                                             
                "status": "completed",                                            
                "token_transfers": [                                              
                    {
                        "index": 1,         
                        "token_id": "0xc778417e063141139fce010982780140aa0cd5ab",  
                        "type": "",
                        "value": "100000000000000000",                              
                        "from": "0x7a250d5630b4cf539739df2c5dacb4c659f2488d",
                        "to": "0xd695dc9f79cf0b0f8c23e7f01aec354403747a3f"
                    },
                    {
                        "index": 2,
                        "token_id": "0x902b2a515c43256158fde75f7de6f155e4a45c14",
                        "type": "",
                        "value": "344876432180959503648615581383",
                        "from": "0xd695dc9f79cf0b0f8c23e7f01aec354403747a3f",
                        "to": "0x3c98189b52fb2e1da681026d4f965ea4f2b7b13c"
                    }
                ],
                "metadata": []
            }
           {
                "id": "0x553d77deaddcdc5e5f69867ad60fba9f63d874f3d15f0cafdfc6098b87550928",
                "type": "transfer",
                "gas_limit": 400000,
                "gas_price": "2000000000",
                "gas_used": 273385,
                "nonce": 2,
                "from": "0x15b31e86cd118040db66fb8b14d5be658a9b71a7",
                "to": "0xa10d0c6e04845a5e998d1936249a30563c553417",
                "fee": "546770000000000",
                "date": 1616569886,
                "value": "0",
                "block": 9900000,
                "confirmation": 509675,
                "status": "completed",
                "contract_call": [                                                 
                    {
                        "contract": "0x5ea9ea8e80230e514b5e023e8d956550a22d02c6",   
                        "input":        "0xd98380ea00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100cd54fa0c503bcd81e680e9f910531ee4dafbe0602ed0c9ae193af44213be0f16000000000000000000000000000000000000000000000000000000000000001c185f5e43b4bc10fa7a9db2f5e25bf1a966dba79148b120ef78d3828b32692d174bda81b9a01561505f612ef43245a336c2d88824aff6f66ac2d14917137d68d1000000000000000000000000000000000000000000000000000000000000000100100000000000000000000000000000ecdf4636493d43529141b53274a69803000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000003635c9adc5dea00000"
                    }                                                            
                ],
                "metadata": []
            },
        ],
        "nextkey": "",
    },
    "message": "OK"
}

{
    "code": 0,
    "data": {
        "confirmation": 16016,                                                          // confirmations
        "platform": "ETH",                                                              // token name
        "tx_id": "0x8a23c23a7813843bb7bf16fc51e822832cb4168f99658d7c6ed21a13d1db1622"   // tx hash
    },
    "message": "OK"
}

{
    "code": 0,
    "data": {
        "confirmation": 16016,
        "platform": "eth",
        "tx_id": "0x8a23c23a7813843bb7bf16fc51e822832cb4168f99658d7c6ed21a13d1db1622"
    },
    "message": "OK"
}

{
    "code": 0,
    "data": {
        "id": "0x8a23c23a7813843bb7bf16fc51e822832cb4168f99658d7c6ed21a13d1db1622",
        "gas_limit": 21000,
        "gas_price": "100000000000",
        "gas_used": 21000,
        "nonce": 2619,
        "from": "0xc5fade3198fe1f8bed3ec25b3d68bf9a8ddf934f",
        "to": "0xeb547a7354e6fe0da3bae56c1efe9a76ac5a7519",
        "fee": "2100000000000000",
        "date": 1620532384,
        "block": 10200000,
        "confirmation": 16016,
        "status": "completed",
        "metadata": []
    },
    "message": "OK"
}

{
    "code": 0,
    "data": {
         "id": "0xb56eb930f96015f4d9bf6a1f63aac259abed6f447057e5b7f0d35d88a3af2163", // txid
        "gas_limit": 21000,                                                         // gas limit
        "gas_price": "117000000000",                                                // gas price
        "gas_used": 21000,                                                          // gas used
        "nonce": 173,                                                               // nonce value
        "from": "0xdb248d1ab299e2f453eb06d5ef5b1db531996cb1",                       // from
        "to": "0x58edb19ded9d46e0f76743722fce137b13daaedb",                         // to
        "fee": "2457000000000000",                                                  // fee
        "date": 1620551470,                                                         // timestamp
        "block": 10201359,                                                          // block height
        "confirmation": 14657,                                                      // number of confirmation
        "status": "completed",                                                      // transaction status
        "metadata": []
    },
    "message": "OK"
}
{
    "code": 0,
    "data": {
        "id": "0x8a23c23a7813843bb7bf16fc51e822832cb4168f99658d7c6ed21a13d1db1622",
        "gas_limit": 21000,
        "gas_price": "100000000000",
        "gas_used": 21000,
        "nonce": 2619,
        "from": "0xc5fade3198fe1f8bed3ec25b3d68bf9a8ddf934f",
        "to": "0xeb547a7354e6fe0da3bae56c1efe9a76ac5a7519",
        "fee": "2100000000000000",
        "date": 1620532384,
        "block": 10200000,
        "confirmation": 16016,
        "status": "completed",
        "metadata": []
    },
    "message": "OK"
}

{
    "code": 0,
    "data": {
        "items": [
            {
                "id": "0xd35fcba7210d6de56711810685a867e4fc183ec4212825671ff768a8465d8e8f",
                "gas_limit": 90908,
                "gas_price": "1000000000",
                "gas_used": 0,
                "nonce": 554,
                "from": "0x4fe2000fb08b8059e1898cec0426b6d89228622b",
                "to": "0x0cc6cc19a03d005708e4b0985fdf4dee44639ee5",
                "fee": "",
                "date": 0,
                "block": 0,
                "confirmation": 0,
                "status": "pending",
                "metadata": []
            },
            {
                "id": "0x8490f7517869a0dde863d84d181976be134f3fba23aae9e0c84a57d179fe111e",
                "gas_limit": 90908,
                "gas_price": "1000000000",
                "gas_used": 0,
                "nonce": 553,
                "from": "0x4fe2000fb08b8059e1898cec0426b6d89228622b",
                "to": "0x0cc6cc19a03d005708e4b0985fdf4dee44639ee5",
                "fee": "",
                "date": 0,
                "block": 0,
                "confirmation": 0,
                "status": "pending",
                "metadata": []
            }
        ],
        "nextkey": "",
    },
    "message": "OK"
}
{
    "code": 0,
    "data": {
        "items": [
            {
                "id": "0xb56eb930f96015f4d9bf6a1f63aac259abed6f447057e5b7f0d35d88a3af2163", // txid
                "gas_limit": 90908,                                                         // gas limit
                "gas_price": "1000000000",                                                  // gas price
                "gas_used": 0,                                                              // gas used
                "nonce": 173,                                                               // nonce value
                "from": "0xdb248d1ab299e2f453eb06d5ef5b1db531996cb1",                       // from
                "to": "0x58edb19ded9d46e0f76743722fce137b13daaedb",                         // to
                "fee": "",                                                                  // fee
                "date": 0,                                                                  // timestamp
                "block": 0,                                                                 // block height
                "confirmation": 0,                                                          // number of confirmation
                "status": "pending",                                                        // transaction status
                "metadata": []
            }
        ],
        "nextkey": "",
    },
    "message": "OK"
}
{
    "code": 0,
    "data": {
        "items": [
            {
                "id": "0xb56eb930f96015f4d9bf6a1f63aac259abed6f447057e5b7f0d35d88a3af2163", 
                "gas_limit": 21000,                                                        
                "gas_price": "117000000000",                                               
                "gas_used": 21000,                                                         
                "nonce": 173,                                                              
                "from": "0xdb248d1ab299e2f453eb06d5ef5b1db531996cb1",                      
                "to": "0x58edb19ded9d46e0f76743722fce137b13daaedb",                        
                "fee": "2457000000000000",                                                 
                "date": 1620551470,                                                        
                "block": 10201359,                                                         
                "confirmation": 14657,                                                     
                "status": "completed",                                                     
                "metadata": []
            }
        ],
        "nextkey": "",
    },
    "message": "OK"
}

{
    "code": 0,
    "data": {
        "items": [
            {
                "id": "0xb56eb930f96015f4d9bf6a1f63aac259abed6f447057e5b7f0d35d88a3af2163", // txid
                "gas_limit": 21000,                                                         // gas limit
                "gas_price": "117000000000",                                                // gas price
                "gas_used": 21000,                                                          // gas used
                "nonce": 173,                                                               // nonce value
                "from": "0xdb248d1ab299e2f453eb06d5ef5b1db531996cb1",                       // from
                "to": "0x58edb19ded9d46e0f76743722fce137b13daaedb",                         // to
                "fee": "2457000000000000",                                                  // fee
                "date": 1620551470,                                                         // timestamp
                "block": 10201359,                                                          // block height
                "confirmation": 14657,                                                      // number of confirmation
                "status": "completed",                                                      // transaction status
                "metadata": []
            }
        ],
        "nextkey": "",
    },
    "message": "OK"
}
{
    "code": 0,
    "data": {
        "items": [
            {
                "id": "0xb56eb930f96015f4d9bf6a1f63aac259abed6f447057e5b7f0d35d88a3af2163", 
                "gas_limit": 21000,                                                        
                "gas_price": "117000000000",                                               
                "gas_used": 21000,                                                         
                "nonce": 173,                                                              
                "from": "0xdb248d1ab299e2f453eb06d5ef5b1db531996cb1",                      
                "to": "0x58edb19ded9d46e0f76743722fce137b13daaedb",                        
                "fee": "2457000000000000",                                                 
                "date": 1620551470,                                                        
                "block": 10201359,                                                         
                "confirmation": 14657,                                                     
                "status": "completed",                                                     
                "metadata": []
            }
        ],
        "nextkey": "",
    },
    "message": "OK"
}

{
    "code": 0,
    "data": {
        "address": "0x2f2f15b7f8be36f1dc812d333ed5f6acf19b535b",   // address
        "balance": 0,                                              // address balance
        "total_txs": 6,                                            // total transaction count
        "total_tx_in": "5",                                        // received amount
        "total_tx_out": "4.999979",                                // transferred amount
        "latest_tx": {                                             // last transaction
            "id": "0x769641a0893bf49e1cf8609592971b45e189dac5808d815d2dbed119f9f121ed",
            "type": "transfer",
            "gas_limit": 21000,
            "gas_price": "1000000000",
            "gas_used": 21000,
            "from": "0x2f2f15b7f8be36f1dc812d333ed5f6acf19b535b",
            "to": "0x9402d510491f5dfde5e0b338831c80727c96222f",
            "fee": "21000000000000",
            "date": 1620721687,
            "block": 10212967,
            "confirmation": 0,
            "status": "completed",
            "metadata": []
        } // 最近一笔交易,字段详细解释见 《单笔交易的交易详情》
    },
    "message": "OK"
}
{
    "code": 0,
    "data": {
        "address": "0x2f2f15b7f8be36f1dc812d333ed5f6acf19b535b",                      
        "balance": 0,                                                                
        "total_txs": 6,                                                               
        "total_tx_in": "5",                                                           
        "total_tx_out": "4.999979",                                                  
        "latest_tx": {                                                                
            "id": "0x769641a0893bf49e1cf8609592971b45e189dac5808d815d2dbed119f9f121ed",
            "type": "transfer",
            "gas_limit": 21000,
            "gas_price": "1000000000",
            "gas_used": 21000,
            "from": "0x2f2f15b7f8be36f1dc812d333ed5f6acf19b535b",
            "to": "0x9402d510491f5dfde5e0b338831c80727c96222f",
            "fee": "21000000000000",
            "date": 1620721687,
            "block": 10212967,
            "confirmation": 0,
            "status": "completed",
            "metadata": []
        }
    },
    "message": "OK"
}
{
    "code": 0,
    "data": {
        "date": 1620532384,                                                                 // timestamp
        "height": 10200000,                                                                 // block height
        "hash": "0x02c3b44b44364a08b29ecb1ad93615b5752b65780923cc47e3f607f3e3e8bc61",       // block hash
        "confirmations": 16016,                                                             // number of confirmation
        "txs": [                                                                            // transaction list
            "0xb4817c6215ecd045a946d0438c8ed357bf2af4075dabd56b77ff2b93f40665c6",           // txid
            "0x8a23c23a7813843bb7bf16fc51e822832cb4168f99658d7c6ed21a13d1db1622"
        ],
        "size": 1030,                                                                       // block size
        "nonce": "0x1e331705118e777e",                                                      // nonce value
        "parent_hash": "0xc12ed2c4d2219e7da137c6b0b79a7896615c2d85838ca50e4ef1036eba1c70cf",// hash of previous block
        "state_root": "0x0699c41f5b84a6adad9770265c1f2e838a555e81738ac03c5e6ccea146604c14"  // merkel root
    },
    "message": "OK"
}
{
    "code": 0,
    "data": {
        "date": 1620532384,
        "height": 10200000,
        "hash": "0x02c3b44b44364a08b29ecb1ad93615b5752b65780923cc47e3f607f3e3e8bc61",
        "confirmations": 16016,
        "txs": [
            "0xb4817c6215ecd045a946d0438c8ed357bf2af4075dabd56b77ff2b93f40665c6",
            "0x8a23c23a7813843bb7bf16fc51e822832cb4168f99658d7c6ed21a13d1db1622"
        ],
        "size": 1030,
        "nonce": "0x1e331705118e777e",
        "parent_hash": "0xc12ed2c4d2219e7da137c6b0b79a7896615c2d85838ca50e4ef1036eba1c70cf",
        "state_root": "0x0699c41f5b84a6adad9770265c1f2e838a555e81738ac03c5e6ccea146604c14"
    },
    "message": "OK"
}

{
    "code": 0,
    "data": {
        "date": 1620532384,                                                                 // timestamp
        "height": 10200000,                                                                 // block height
        "hash": "0x02c3b44b44364a08b29ecb1ad93615b5752b65780923cc47e3f607f3e3e8bc61",       // block hash
        "confirmations": 16016,                                                             // number of confirmation
        "txs": [                                                                            // transaction list
            "0xb4817c6215ecd045a946d0438c8ed357bf2af4075dabd56b77ff2b93f40665c6",           // txid
            "0x8a23c23a7813843bb7bf16fc51e822832cb4168f99658d7c6ed21a13d1db1622"
        ],
        "size": 1030,                                                                       // block size
        "nonce": "0x1e331705118e777e",                                                      // nonce value
        "parent_hash": "0xc12ed2c4d2219e7da137c6b0b79a7896615c2d85838ca50e4ef1036eba1c70cf",// hash of previous block
        "state_root": "0x0699c41f5b84a6adad9770265c1f2e838a555e81738ac03c5e6ccea146604c14"  // merkel root
    },
    "message": "OK"
}
{
    "code": 0,
    "data": {
        "date": 1620532384,
        "height": 10200000,
        "hash": "0x02c3b44b44364a08b29ecb1ad93615b5752b65780923cc47e3f607f3e3e8bc61",
        "confirmations": 16016,
        "txs": [
            "0xb4817c6215ecd045a946d0438c8ed357bf2af4075dabd56b77ff2b93f40665c6",
            "0x8a23c23a7813843bb7bf16fc51e822832cb4168f99658d7c6ed21a13d1db1622"
        ],
        "size": 1030,
        "nonce": "0x1e331705118e777e",
        "parent_hash": "0xc12ed2c4d2219e7da137c6b0b79a7896615c2d85838ca50e4ef1036eba1c70cf",
        "state_root": "0x0699c41f5b84a6adad9770265c1f2e838a555e81738ac03c5e6ccea146604c14"
    },
    "message": "OK"
}

{

  "code": 0,
  "message": "OK",
  "data": {
    "symbol": "ETH",
    "name": "Ethereum",
    "decimals": 18,
    "block_time": 10000,
    "sample_address": "0xfc10cab6a50a1ab10c56983c80cc82afc6559cf1",
    "height": 10216016,
    "hash": "0x1f9bb990d7a25a1c77652d6fcf6631ecc681bcd9d59722c1d0e21c7c68607e89",
    "size": 70390928311,
    "tota_txs": 29045598
  }
}

{
    "symbol": "ETH",                                                            // coin/Token ticker
    "name": "Ethereum",                                                         // coin/Token full name
    "decimals": 18,                                                             // decimal
    "block_time": 10000,                                                        // block time
    "sample_address": "0xfc10cab6a50a1ab10c56983c80cc82afc6559cf1",             // sample address
    "height": 10216016,                                                         // current block height
    "hash": "0x1f9bb990d7a25a1c77652d6fcf6631ecc681bcd9d59722c1d0e21c7c68607e89",// current block hash
    "size": 70390928311,                                                        // chain size, the current field may not be returned
    "tota_txs": 29045598,                                                       // total transactions, the current field may not be returned
    "circulation":16923962                                                      // network circulation, the current field may not be returned
}
{

  "code": 0,
  "message": "OK",
  "data": {
    "symbol": "ETH",
    "name": "Ethereum",
    "decimals": 18,
    "block_time": 10000,
    "sample_address": "0xfc10cab6a50a1ab10c56983c80cc82afc6559cf1",
    "height": 10216016,
    "hash": "0x1f9bb990d7a25a1c77652d6fcf6631ecc681bcd9d59722c1d0e21c7c68607e89",
    "size": 70390928311,
    "tota_txs": 29045598
  }
}

{
    "code": 0,
    "message": "OK",
    "data": [
        {
            "address": "3D2oetdNuZUqQHPJmcMDDHYoqkyNVsFk9r",
            "balance": 138660.86073724,
            "percent":13.4,
            "first_tx_time":1333003647,
            "last_tx_time":1616981507,
            "tx_count":1352,
            "tx_30day_count":13

        },
        {
            "addr": "16ftSEQ4ctQFDtVZiUBusQUjRrGhM3JYwe",
            "balance": 138660.86073724,
            "percent":13.4,
            "first_tx_time":1333003647,
            "last_tx_time":1616981507,
            "tx_count":1352,
            "tx_30day_count":13
        },
        {
            "addr": "16rCmCmbuWDhPjWTrpQGaU3EPdZF7MTdUk",
            "balance": 138660.86073724,
            "percent":13.4,
            "first_tx_time":1333003647,
            "last_tx_time":1616981507,
            "tx_count":1352,
            "tx_30day_count":13
        }
    ...
    ]
}
{
    "code": 0,
    "message": "OK",
    "data": [
        {
            "address": "3D2oetdNuZUqQHPJmcMDDHYoqkyNVsFk9r", // address
            "balance": 138660.86073724,                      // balance of address
            "percent":13.4,                                  // percent
            "first_tx_time":1333003647,                      // date of the first tx
            "last_tx_time":1616981507,                       // date of the latest tx
            "tx_count":1352,                                 // total tx count
            "tx_30day_count":13                              // total tx count of last 30 days

        },
    ...
    ]
}
{
    "code": 0,
    "message": "OK",
    "data": {
        "id": "816da806c69ec920e279c1d88aec48cd4c8da6be53634b9aab17ae64a3e0a090",
        "fee": "11658",
        "date": 1616481573,
        "block": 0,
        "confirmation": 0,
        "status": "pending",
        "inputs": [
            {
                "addresses": [
                    "bc1q9akj4ekp0u4wrqlf9wmkcgna7y5wnn2x0uwhtz"
                ],
                "tx": "d4a758fbf0ce1dc9b1d7a9fb2cae232a8bffa6d830300b05be48047d1103af33",
                "type": "witness_v0_keyhash",
                "value": 2058732,
                "vfp": 0,
                "sequence": 4294967295
            }
        ],
        "outputs": [
            {
                "addresses": [
                    "35HFgtPENNGnR4UdyUUPRapVhUUQjQhFBD"
                ],
                "script": "a9142762029659834c03bb0470d82567a8ebde838e2687",
                "type": "scripthash",
                "value": 2047074,
                "n": 0,
                "next_position": 0,
            }
        ],
        "memo": "",
        "metadata": null
    }
}
{
    "code": 0,
    "message": "OK",
    "data": {
        "id": "816da806c69ec920e279c1d88aec48cd4c8da6be53634b9aab17ae64a3e0a090",       // tx hash
        "fee": "11658",                                                                 // fee
        "date": 1616481573,                                                             // date 
        "block": 0,
        "confirmation": 0,
        "status": "pending",                                                            // transaction status
        "inputs": [                                                                     // transaction inputs
            {
                "addresses": [
                    "bc1q9akj4ekp0u4wrqlf9wmkcgna7y5wnn2x0uwhtz"
                ],
                "tx": "d4a758fbf0ce1dc9b1d7a9fb2cae232a8bffa6d830300b05be48047d1103af33",
                "type": "witness_v0_keyhash",
                "value": 2058732,
                "vfp": 0,
                "sequence": 4294967295
            }
        ],
        "outputs": [                                                                    // transaction outputs
            {
                "addresses": [
                    "35HFgtPENNGnR4UdyUUPRapVhUUQjQhFBD"
                ],
                "script": "a9142762029659834c03bb0470d82567a8ebde838e2687",
                "type": "scripthash",
                "value": 2047074,
                "n": 0,
                "next_position": 0,
            }
        ],
        "memo": "",
        "metadata": null
    }
}
{
    "code": 0,
    "message": "OK",
    "data": {
        "id": "816da806c69ec920e279c1d88aec48cd4c8da6be53634b9aab17ae64a3e0a090",
        "fee": "11658",
        "date": 1616481573,
        "block": 0,
        "confirmation": 0,
        "status": "pending",
        "inputs": [
            {
                "addresses": [
                    "bc1q9akj4ekp0u4wrqlf9wmkcgna7y5wnn2x0uwhtz"
                ],
                "tx": "d4a758fbf0ce1dc9b1d7a9fb2cae232a8bffa6d830300b05be48047d1103af33",
                "type": "witness_v0_keyhash",
                "value": 2058732,
                "vfp": 0,
                "sequence": 4294967295
            }
        ],
        "outputs": [
            {
                "addresses": [
                    "35HFgtPENNGnR4UdyUUPRapVhUUQjQhFBD"
                ],
                "script": "a9142762029659834c03bb0470d82567a8ebde838e2687",
                "type": "scripthash",
                "value": 2047074,
                "n": 0,
                "next_position": 0,
            }
        ],
        "memo": "",
        "metadata": null
    }
}
{
    "code": 0,
    "data": {
        "items": [
            {
                "id": "c7841cb796c64027391038673de23d2b242fd2108c1e7092b9207cf6ef46ecb8",  // tx hash
                "fee": "-313828",                                                          // fee
                "date": 1617109308,                                                        // date 
                "block": 676997,                                                           // block height
                "confirmation": 966,                                                       // confirmations
                "status": "completed",                                                     // transaction status
                "inputs": [                                                                // transaction inputs
                    {
                        "addresses": [                                                     // address list
                            "13vDqiRpJ7h9oSri85e6wonvgtKYbVXiHp"
                        ],
                        "tx": "5d3c394304a52aeb7f0a055e3cbabce6462962db3009f2ca84da5247bc4bf710", // inputted tx hash
                        "script_sig": "483045022100ae07c018a81ce86cd0324ff13cd5bbee4064180b818ec491d9aa6c63ccc84ae702202bb4040c6c94d6509a0cd56fe3625968dccbd3308d1cd2d0376f9f145f3f033b01210360c5c6cd2c7f93b68c834ca38ba27f9a2f6f4d74153bf0bc007cd17c8bda1cbf",                                                       // signature
                        "type": "pubkeyhash",
                        "value": 347238,                                                    // value
                        "vfp": 1,
                        "sequence": 4294967295
                    },
                    {
                        "tx": "83e6deea63ea60d2265a0fc3b1e41fa2b5d78e16543c6efb19694721786c01e8",
                        "script_sig": "473044022078b9464543b0e028e897aab1212cf8c9fe3b1fdbef7d603d7511e97a4f4c05820220224035cbadbd31b565b61985c50e25fd3eff678fdc0b147155f2d07de6b5e8cc012102c625fbd4a74117a739ee5489ccd98e3e824f8406adaec3274bed4699cf53f675",
                        "value": 0,
                        "vfp": 0,
                        "sequence": 4294967295
                    }
                ],
                "outputs": [                                                                // transaction outputs
                    {
                        "addresses": [
                            "1AYnQmwWYuomJaJGNkUKkaGdi9Hdfjtkct"
                        ],
                        "script": "76a91468bbeee32eab032e8865d2ec07ff479a7ad8304288ac",
                        "type": "pubkeyhash",
                        "next_tx_id": "8f4d66d927b55cc90c6a7641bc85bf80aed3bd694b6f1b04ac09671cd0389dda",
                        "value": 307895,
                        "n": 0,
                        "next_position": 0
                    },
                    {
                        "addresses": [
                            "12JaDBoKxyz5UkzLj4hJqFkqJczY1FjZqs"
                        ],
                        "script": "76a9140e4aeb66a77a89e013d63e852232998031c8910e88ac",
                        "type": "pubkeyhash",
                        "next_tx_id": "9e7cff97dfdeb08c158bf8e7fb22288562bf21bec6e61f20fa035893f4b2fb10",
                        "value": 353171,
                        "n": 1,
                        "next_position": 3
                    }
                ],
                "memo": "",
                "metadata": null
            },
        ],
        "nextkey": "B1jgkPtsA1FQR21eYU",
        "page": 0
    },
    "message": "OK"
}
{
    "code": 0,
    "data": {
        "items": [
            {
                "id": "3193f588fb1bcede00e809562dbdb07be94779e1ac90ffe95c7f4eeaea94af07",
                "fee": "0",
                "date": 1616340678,
                "block": 675639,
                "is_coinbase": true,
                "confirmation": 2314,
                "status": "completed",
                "inputs": [
                    {
                        "witness": [
                            "0000000000000000000000000000000000000000000000000000000000000000"
                        ],
                        "coinbase": "03374f0a04c6665760425443506f6f6cfabe6d6d78bd61a6381485d1fd757c08ca151acf8605357e6cfa591776eccda28bbf7b21020000007296cd100300e37527641c0000000000",
                        "value": 0,
                        "vfp": 4294967295,
                        "sequence": 4294967295
                    }
                ],
                "outputs": [
                    {
                        "addresses": [
                            "14PUSkxZsGShcNmUBmxcYm5DcFq89S8jEG"
                        ],
                        "script": "76a9142528700ca7564d29160a93e629243d4ca15777e788ac",
                        "type": "pubkeyhash",
                        "value": 650979097,
                        "n": 0,
                        "next_position": 0
                    },
                    {
                        "script": "6a24aa21a9ed2e336a4a683fb65e51eee595ebfd9d29ecb4c2b4ea65bb2489be3565db7e77e7",
                        "type": "nulldata",
                        "value": 0,
                        "n": 1,
                        "next_position": 0
                    }
                ],
                "memo": "",
                "metadata": null
            },
        ],
        "nextkey": "",
    },
    "message": "OK"
}
{
    "code":0,
    "message":"OK",
    "data":{
        "confirmation": 554,
        "platform": "BTC",
        "tx_id": "5d3c394304a52aeb7f0a055e3cbabce6462962db3009f2ca84da5247bc4bf710"
    }
}

{
    "code":0,
    "message":"OK",
    "data":{
        "confirmation": 554,
        "platform": "BTC",
        "tx_id": "5d3c394304a52aeb7f0a055e3cbabce6462962db3009f2ca84da5247bc4bf710"
    }
}

{
    "code": 0,
    "data": {
        "id": "c7841cb796c64027391038673de23d2b242fd2108c1e7092b9207cf6ef46ecb8",  // tx hash
        "fee": "-313828",                                                          // fee
        "date": 1617109308,                                                        // date 
        "block": 676997,                                                           // block height
        "confirmation": 966,                                                       // confirmations
        "status": "completed",                                                     // transaction status
        "inputs": [                                                                // transaction inputs
            {
                 "addresses": [                                                     // address list
                    "13vDqiRpJ7h9oSri85e6wonvgtKYbVXiHp"
                ],
                "tx": "5d3c394304a52aeb7f0a055e3cbabce6462962db3009f2ca84da5247bc4bf710", // inputted tx hash
                "script_sig": "483045022100ae07c018a81ce86cd0324ff13cd5bbee4064180b818ec491d9aa6c63ccc84ae702202bb4040c6c94d6509a0cd56fe3625968dccbd3308d1cd2d0376f9f145f3f033b01210360c5c6cd2c7f93b68c834ca38ba27f9a2f6f4d74153bf0bc007cd17c8bda1cbf",                                                       // signature
                "type": "pubkeyhash",
                "value": 347238,                                                    // value
                "vfp": 1,
                "sequence": 4294967295
            },
            {
                "tx": "83e6deea63ea60d2265a0fc3b1e41fa2b5d78e16543c6efb19694721786c01e8",
                 "script_sig": "473044022078b9464543b0e028e897aab1212cf8c9fe3b1fdbef7d603d7511e97a4f4c05820220224035cbadbd31b565b61985c50e25fd3eff678fdc0b147155f2d07de6b5e8cc012102c625fbd4a74117a739ee5489ccd98e3e824f8406adaec3274bed4699cf53f675",
                "value": 0,
                "vfp": 0,
                "sequence": 4294967295
            }
        ],
        "outputs": [                                                                // transaction outputs
            {
                "addresses": [
                    "1AYnQmwWYuomJaJGNkUKkaGdi9Hdfjtkct"
                ],
                "script": "76a91468bbeee32eab032e8865d2ec07ff479a7ad8304288ac",
                "type": "pubkeyhash",
                "next_tx_id": "8f4d66d927b55cc90c6a7641bc85bf80aed3bd694b6f1b04ac09671cd0389dda",
                "value": 307895,
                "n": 0,
                "next_position": 0
            },
            {
                "addresses": [
                    "12JaDBoKxyz5UkzLj4hJqFkqJczY1FjZqs"
                ],
                "script": "76a9140e4aeb66a77a89e013d63e852232998031c8910e88ac",
                "type": "pubkeyhash",
                "next_tx_id": "9e7cff97dfdeb08c158bf8e7fb22288562bf21bec6e61f20fa035893f4b2fb10",
                "value": 353171,
                "n": 1,
                "next_position": 3
            }
        ],
        "memo": "",
        "metadata": null
    },
    "message": "OK"
}
{
    "code":0,
    "message":"OK",
    "data": {
        "id": "5d3c394304a52aeb7f0a055e3cbabce6462962db3009f2ca84da5247bc4bf710",
        "fee": "17706",
        "date": 1616171114,
        "block": 675336,
        "confirmation": 554,
        "status": "completed",
        "inputs": [
            {
                "addresses": [
                    "178monFk9M49PyVi2PmP1Whce8VyvdRZ9T"
                ],
                "tx": "1e67b7c8368edc33c2db3d93716054259eb019fd0cacf4728235e52e8de326ef",
                "script_sig": "4830450221009faabcc6f33a24b42a4181ea73f5a20044a0d339ee5bd928d06eb7b8f1b1eca80220321a8823d91503af497656fbdf87dde5d4781b8ddf545135527aa373d2f3dff70121025ff937e5b23ba3102662990da6dff055514d19f59aba93aaa54aed5eb9674a21",
                "type": "pubkeyhash",
                "value": 379913,
                "vfp": 1,
                "sequence": 4294967295
            }
        ],
        "outputs": [
            {
                "addresses": [
                    "1H98Xu8Te6Lgu2Pj1uA6N5azLbjBP9Ncz2"
                ],
                "script": "76a914b10ba0d4d038c11c50e704ab145302f6c984afe688ac",
                "type": "pubkeyhash",
                "next_tx_id": "aef8039dbead733bf5f58c9ea37de771157dab24f76348cb4da675938c640506",
                "value": 14969,
                "n": 0,
                "next_position": 0,
            },
            {
                "addresses": [
                    "13vDqiRpJ7h9oSri85e6wonvgtKYbVXiHp"
                ],
                "script": "76a914200104085600bedcaad07ef371fdc1620f1c0a8088ac",
                "type": "pubkeyhash",
                "value": 347238,
                "n": 1,
                "next_position": 0,
            }
        ],
        "memo": "",
        "metadata": null
    }
}

{
    "code":0,
    "message":"OK",
    "data": [
        {
            "id": "fce47bbec9029369b511a1474f92c22f3c1687e8df763f1798ab9fdcf519b278",         // tx has
            "fee": "2270",                                                                    // fee
            "date": 1616479878,                                                               // date
            "block": 0,                                                                     
            "confirmation": 0,
            "status": "pending",                                                              // transaction status
            "inputs": [                                                                       // transaction inputs
                {
                    "addresses": [                                  
                        "1DTt8RuAbebwuSTpYPAwixShvT6oeck7We"
                    ],
                    "tx": "06208f276801896b42acb1567de9466ebc1ed33650120870d0b04462029d1197", // inputted tx hash
                    "script_sig": "483045022100b08f642ad75694212911503e51ae95b0e912e4cbb0f5d59ea6bcaecb0b425f520220139bdd50a9f4343faf96b84658a86c32958ab8414ef76ae70a0d38159dbe27a0012103e73051c6b5293f220d033758adfa238d3328e67b79ca5c382060471d8d3b7043",                                                     // signature
                    "type": "pubkeyhash",
                    "value": 983021,                                                          // value
                    "vfp": 74,
                    "sequence": 4294967295
                }
            ],
            "outputs": [                                                                      // transaction outputs
                {
                    "addresses": [
                        "3DNtQzBExZgvo4w2iVuZNPsoQ5PXi4dfuy"
                    ],
                    "script": "a9148033c0de297577714c4883ba6f556ffe8b87c43d87",
                    "type": "scripthash",
                    "value": 14984,
                    "n": 0,
                    "next_position": 0,
                },
                {
                    "addresses": [
                        "1NQz4aMBujoua7t7yDcfcWXHFKNBxesxks"
                    ],
                    "script": "76a914eae3d75b47e6d1043daebe2d3b04bddb67fcb68f88ac",
                    "type": "pubkeyhash",
                    "value": 965767,
                    "n": 1,
                    "next_position": 0,
                }
            ],
            "memo": "",
            "metadata": null
        }
    ]
}
{
    "code": 0,
    "data": {
        "items": [
            {
                "id": "c7841cb796c64027391038673de23d2b242fd2108c1e7092b9207cf6ef46ecb8",  // tx hash
                "fee": "-313828",                                                          // fee
                "date": 1617109308,                                                        // date 
                "block": 676997,                                                           // block height
                "confirmation": 966,                                                       // confirmations
                "status": "completed",                                                     // transaction status
                "inputs": [                                                                // transaction inputs
                    {
                        "addresses": [                                                     // address list
                            "13vDqiRpJ7h9oSri85e6wonvgtKYbVXiHp"
                        ],
                        "tx": "5d3c394304a52aeb7f0a055e3cbabce6462962db3009f2ca84da5247bc4bf710", // inputted tx hash
                        "script_sig": "483045022100ae07c018a81ce86cd0324ff13cd5bbee4064180b818ec491d9aa6c63ccc84ae702202bb4040c6c94d6509a0cd56fe3625968dccbd3308d1cd2d0376f9f145f3f033b01210360c5c6cd2c7f93b68c834ca38ba27f9a2f6f4d74153bf0bc007cd17c8bda1cbf",                                                       // signature
                        "type": "pubkeyhash",
                        "value": 347238,                                                    // value
                        "vfp": 1,
                        "sequence": 4294967295
                    },
                    {
                        "tx": "83e6deea63ea60d2265a0fc3b1e41fa2b5d78e16543c6efb19694721786c01e8",
                        "script_sig": "473044022078b9464543b0e028e897aab1212cf8c9fe3b1fdbef7d603d7511e97a4f4c05820220224035cbadbd31b565b61985c50e25fd3eff678fdc0b147155f2d07de6b5e8cc012102c625fbd4a74117a739ee5489ccd98e3e824f8406adaec3274bed4699cf53f675",
                        "value": 0,
                        "vfp": 0,
                        "sequence": 4294967295
                    }
                ],
                "outputs": [                                                                // transaction outputs
                    {
                        "addresses": [
                            "1AYnQmwWYuomJaJGNkUKkaGdi9Hdfjtkct"
                        ],
                        "script": "76a91468bbeee32eab032e8865d2ec07ff479a7ad8304288ac",
                        "type": "pubkeyhash",
                        "next_tx_id": "8f4d66d927b55cc90c6a7641bc85bf80aed3bd694b6f1b04ac09671cd0389dda",
                        "value": 307895,
                        "n": 0,
                        "next_position": 0
                    },
                    {
                        "addresses": [
                            "12JaDBoKxyz5UkzLj4hJqFkqJczY1FjZqs"
                        ],
                        "script": "76a9140e4aeb66a77a89e013d63e852232998031c8910e88ac",
                        "type": "pubkeyhash",
                        "next_tx_id": "9e7cff97dfdeb08c158bf8e7fb22288562bf21bec6e61f20fa035893f4b2fb10",
                        "value": 353171,
                        "n": 1,
                        "next_position": 3
                    }
                ],
                "memo": "",
                "metadata": null
            },
        ],
        "nextkey": "B1jgkPtsA1FQR21eYU",
        "page": 0
    },
    "message": "OK"
}
{
    "code": 0,
    "data": {
        "items": [
            {
                "address": "bc1qx9t2l3pyny2spqpqlye8svce70nppwtaxwdrp4",                        // address
                "tx_id": "1733c83851565e7e0a2af7db43708f76a628d9e9efc5928fe0e91c93f82cb785",    // tx hash
                "height": 677958,                                                               // block height
                "value": 649552102,                                                             // utxo balance
                "position": 0,                                                                  // utxo in the transaction
                "script": "00143156afc4249915008020f932783319f3e610b97d",                       // script value
                "date": 1617675530                                                              // date
            },
        ],
        "nextkey": ""
    },
    "message": "OK"
}
{
    "address": "1H98Xu8Te6Lgu2Pj1uA6N5azLbjBP9Ncz2",                                // address
    "balance": 9973,                                                                // address balance needs to be divided by the precision of the token
    "balance_rank": 9758350,                                                        // balance ranking
    "total_txs": 27,                                                                // total transactions
    "total_tx_in": "15484598",                                                      // total transfers need to be divided by the precision of the token
    "total_tx_out": "15474625",                                                     // total withdrawals need to be divided by the precision of the token
    "latest_tx":{ 
          "id": "992b8c0b21b2df1fadee7977ef88cb311a307cd39d2ece3851d9a3e810167894", // txid
          "fee": "3008",                                                            // fee needs to be divided by the precision of the token
          "date": 1616367320,                                                       // timestamp
          "block": 675691,                                                          // block height
          "confirmation": 182,                                                      // confirmation quantity
          "status": "completed",                                                    // transaction status
          "inputs": [
            {
                "addresses": [
                    "1H98Xu8Te6Lgu2Pj1uA6N5azLbjBP9Ncz2"                            // input address
                ],
                "tx": "f18b8e446b0270e57c0a1def0c7dc84d40aee9beaedb9482204b7f870397cabb", // input tx hash
                "script_sig": "483045022100c5aab529b01b16a772f911f2b402173245d8b5ad0ac7db82b16f394567db387302205a4ee767d726037449710a7cb0d42ed3294570466c256f0221e7bc8f62d8d06601210264d52cd6e3019188ae97178384a6c6c15d9ca25c019ad1ccbd5e5f72304c48b3",
                "type": "pubkeyhash",
                "value": 40700,                                                     // amount
                "vfp": 0,                                                           // outputted index of a recent transaction
                "sequence": 4294967295
            },
            {
                "addresses": [
                   "1AQ1J6KJfM4AMjE33d2mZVyVnXoin1HpDM"
                 ],
                "tx": "fec9bcbdf5637b89424885dd219e51d50bde6ab73b508043e3037106f03cd0f8",
                "script_sig": "47304402203b2bea0ebfc925ae515cf48ac19bf750c0e9f313c3faf07b7efde8ae56d79838022020fe4eaa9c71ab962c13eab49107956e64dfc7ca07da6823d0b33f42b315dd4b0121032c791c9cecbe143c582f908396bf414775ce8c698ea5eb8d61ff1e8dfc652949",
                "type": "pubkeyhash",
                "value": 346572,
                "vfp": 0,
                "sequence": 4294967295
            }
          ],
            "outputs": [
                {
                    "addresses": [
                        "1H3YKH5EX6E7iMRoPZxuHwRPJnRSwGPnC"
                    ],
                    "script": "76a9140308c68df6134b45459f1384286b1137d32f8f1988ac",
                    "type": "pubkeyhash",
                    "value": 36132,
                    "n": 0,                                                         // output index
                    "next_position": 0,                                             // index of the spent transaction 
                    "ntx":"",                                                       // in which tx hash is spent
                },
                {
                    "addresses": [
                        "1KPW6tY3RovXNak2zAme4JCdcVunh6DLEL"
                    ],
                    "script": "76a914c9b3b53f60d100c362593bf86c89ac0ec8cdf5d688ac",
                    "type": "pubkeyhash",
                    "value": 348132,
                    "n": 1,
                    "next_position": 0,
                    "ntx":""
                }
            ],
            "memo": "",
            "metadata": null
        } 
    } // For a recent transaction, please see "Acquire block information based on block height or hash" to view the detailed field interpretation.
}
{
    "version": "549453824",                                                            // version, when it is null, the current field will not be returned
    "hash": "000000000000000000068bcb8f679a0783d3fb575ce34a968b14cbaf4744db59",        // current block hash
    "merkle_root": "5a4d3d153156039a027fc2390a29de4b052ca89bc01dbb1adaab4da9340404cc", // merkel root
    "confirmations": 1,                                                                // confirmation quantity
    "stripped_size": 555212,
    "size": 2327663,                                                                   // current block size
    "date": 1616467429,                                                                // timestamp
    "nonce": 2854784024, 
    "bits ": 386719599,
    "txs":[
        "ddb91aeb7e7d0f7a45da6bd5d31eac569f1104795d0d1d45801b212a9e4bb9b1",            // transaction hash
    ]
}
{
    "symbol": "BTC",                                                            // token symbol
    "name": "Bitcoin",                                                          // token name
    "decimals": 8,                                                              // precision
    "block_time": 600000,                                                       // block time
    "sample_address": "bc1quvuarfksewfeuevuc6tn0kfyptgjvwsvrprk9d",             // sample address
    "height": 675870,                                                           // current block height
    "hash": "0000000000000000000cd537a29662f9003844d40cd7fbd6bd34e04b5adb354f", // current block hash
    "size": 70390928311,                                                        // chain size
    "tota_txs": 29045598,                                                       // total transactions
    "circulation":16923962                                                      // network circulation
}
{
    "date": 1616342401,                             // date
    "address":"1EaSi5xycF5Ufpy2uSvCbjtSfnVPgeCiaj", // address
    "coin":"BTC",                                   // token name
    "webhook_url":"www.viawallet.com",              // call url
    "status_code":0,                                // status code returned by code
    "error":"error"                                 // incorrect information
}

{
  "code": 0,
  "message": "OK",
  "data": [
    {
      "address": "1EaSi5xycF5Ufpy2uSvCbjtSfnVPgeCiaj",  // subscription address
      "coin": "BTC",                                    // token name
      "webhook_urls": [                                 // call url list
          "www.viawallet.com"
      ]
    }
  ]
    
}

{
    "address":"1EaSi5xycF5Ufpy2uSvCbjtSfnVPgeCiaj",                             // address
    "tx_id":"df244cbc60f4220e5d90de0833b647bd7f376f5132314a1672dd9b5128302659", // transaction hash
    "date": 1612015420,                                                         // trading time (UTC)
    "confirmations": 1,                                                         // the number of confirmation of this transaction when the notice is first issued.
    "value": "-0.002135942",                                                    // balance change
    "coin": "BTC",                                                              // on which chain the transaction occurs
    "height": 10254665,                                                         // the block height where the transaction is packaged
}
echo -n '/openapi/api/btc/v1/webhook/addresses?tonce=1513746038205' | openssl dgst -sha256 -hmac "mpEFG56Nc9u5fUFjrg9mWoTEe8uk343X"
# output: 8c640807d23a80b32f52fbb163afaa677fb33d5b0784017cf47074594ff72f16
/openapi/api/btc/v1/block?tonce=1513746038205 
curl --location --request GET 'https://developers.viawallet.com/openapi/api/btc/v1/block?hashOrHeight=675871' -H 'X-API-KEY: 16289e05354c3c3814b8f3045950395f'
{
    "code": 0,
    "data": {
        "items": [],   // result array
        "limit": 10,   // quantity per page
        "nextkey": "", // Page turning cursor
        "page": 1      // Page number
    },
    "message": "OK"
}
{
  "code": 0,          // error code 
  "data": {},         // result of request, json object, array or null
  "message": "OK"     // cause of error
}
description : know how to be the best
https://github.com/dev-tch/testrepo/blob/master/test.txt
package Api.request;
import org.json.JSONObject;

import com.mashape.unirest.http.exceptions.UnirestException;



public class FieldsJson {
	
	public static void main(String[] args) throws UnirestException {
		FieldsJson fieldJson = new FieldsJson();
		//String jsonTest = jsonString.jsonTest();
		
		
		Request request = new Request();
		String json = request.getJsonTicket(70888);
		System.out.println(json);
		
		System.out.print(fieldJson.getID(json)+ " " );
		System.out.println(fieldJson.get_status_code(json));// 2000 - 4000
		//System.out.println(jsonString.get_status(json));   // success - failed
		
	}
	
	public Integer getID (String json) {
		
        // JSONObject
        JSONObject jsonObject = new JSONObject(json);
        JSONObject request = jsonObject.getJSONObject("request");
        // request
        int id = request.getInt("id");
        
        return id;
	}
	
	public Integer get_status_code (String json) {
		
        // JSONObject
        JSONObject jsonObject = new JSONObject(json);
        JSONObject response_status = jsonObject.getJSONObject("response_status");
        
        // status_code
        int status_code = response_status.getInt("status_code");
        
		return status_code;
	}
	
	public String  get_status (String json) {
		
        // JSONObject
        JSONObject jsonObject = new JSONObject(json);
        JSONObject response_status = jsonObject.getJSONObject("response_status");
        // status
        String status = response_status.getString("status");
        
		return status;
	}
	
	public Integer get_All (String json) {
		
		//FieldsJson gfj = new FieldsJson();
		//String json = gfj.jsonTest();
        
        // JSONObject
        JSONObject jsonObject = new JSONObject(json);
        JSONObject request = jsonObject.getJSONObject("request");
        JSONObject response_status = jsonObject.getJSONObject("response_status");
        //
        // request
        int id = request.getInt("id");
        
        // response_status
        int status_code = response_status.getInt("status_code");
        String status = response_status.getString("status");
        
        System.out.println("id:"+ id + " response_status: " + status_code + " Status:"+ status);
        
		return id;
	}
}
{
  "data": {
    "projects": [
      {
        "description": "This was my first major programming project that I ever saw through from start to finish. It's an emulator I wrote during the sophomore year of my undergrad. This was done so I could have a better understanding of emulation and basic hardware principles. Looking back now, it really lacks some understanding of useful C++ features and proper formatting, as well as typical C++ programming style. Regardless, I found it to be a very informative project that I learned quite a lot from.",
        "title": "SDL-CHIP8",
        "url": "https://gitlab.stegall.me/swstegall/SDL-CHIP8"
      },
      {
        "description": "Notflix was an application that I made for a class in my Master's to demonstrate my ability to create an application to consume an API using ASP.NET MVC. What it does is utilize a movie database API to give random movie suggestions over different genres. I thought my result at the end looked quite nice, given some of the constraints I dealt with in the original assignment.",
        "title": "Notflix",
        "url": "https://gitlab.stegall.me/swstegall/Notflix"
      },
      {
        "description": "This was an application I made for EarthX Hack 2020. It was inspired by the toilet paper shortage caused by the coronavirus pandemic of 2020. The idea for this app is to list goods that you have, that you wish to trade for other goods. It would allow people to accept a trade offer and a meeting location to exchange items, and cut down on over-consumption in the face of scarcity.",
        "title": "Green Trade",
        "url": "https://gitlab.stegall.me/swstegall/green-trade"
      },
      {
        "description": "Orpheus was my first attempt writing a GUI application with conventional tooling for Windows. It is a relatively lightweight C# music player application that manages its library based on a JSON file. I think the application works decently for the short amount of time I had to learn .NET beforehand, but that the theming component of the application, as well as some more advanced functionality, could be further enhanced. Perhaps I'll tackle a similar type of project in the future once Microsoft finishes their rollout of .NET MAUI.",
        "title": "Orpheus",
        "url": "https://gitlab.stegall.me/swstegall/Orpheus"
      },
      {
        "description": "This was a project I did for TAMUhack 2021 at the beginning of the year. This was my first attempt at a mobile app, and it used React Native, React Native Elements, and JavaScript for the frontend, and Node/Express/Sequelize/TypeScript on the backend, with a database managed with Docker. This was an interesting app, because it made use of barcode scanning to manage some gamification elements.",
        "title": "GOTcha",
        "url": "https://gitlab.stegall.me/swstegall/GOTcha"
      },
      {
        "description": "This project is a chat application that I made to allow for privately-hosted servers. It uses Material UI/React/Redux/TypeScript on the frontend, and Node/Express/Sequelize/TypeScript on the backend with a PostgreSQL database managed with Docker.",
        "title": "Trueno",
        "url": "https://gitlab.stegall.me/swstegall/trueno"
      },
      {
        "description": "This was a hackathon project I did with some friends for Hack-O-Lantern 2021. It's a Course Management Website that supports class creation, registration, and (some) file submission. It was a lot of fun to work on and shows some promise!",
        "title": "Class++",
        "url": "https://gitlab.stegall.me/swstegall/class-plus-plus"
      }
    ]
  }
}
{
  "data": {
    "projects": [
      {
        "title": "SDL-CHIP8"
      },
      {
        "title": "Notflix"
      },
      {
        "title": "Green Trade"
      },
      {
        "title": "Orpheus"
      },
      {
        "title": "GOTcha"
      },
      {
        "title": "Trueno"
      },
      {
        "title": "Class++"
      }
    ]
  }
}
{
  "name": "",
  "host": "",
  "protocol": "sftp",
  "port": 2222,
  "username": "",
  "password": "",
  "remotePath": "/wp-content/themes/",
  "uploadOnSave": true,
  "ignore": [
    "**/pdf/dompdf/",
    "**/node_modules/",
    "*.vcf",
    "*.doc",
    "*.docx",
    "*.mp4",
    "*.avi",
    "*.mov",
    "*.flv",
    "*.pdf",
    "*.jpg",
    "*.jpeg",
    "*.png",
    "*.psd",
    "*.xd",
    "*.webp",
    "*.woff",
    "*.woff2",
    "*.otf",
    "*.gif",
    "*.ttf",
    "*.svg",
    "*.eot",
    "*.log",
    "*.xml",
    "*.txt",
    "*.yaml",
    "*.md"
  ]
}
{
  "dependencies": {
    "@actions/core": "^1.2.3",
    "@actions/github": "^2.1.1"
  },
  "devDependencies": {
    "@types/jest": "^25.1.4",
    "@types/node": "^13.9.0",
    "@typescript-eslint/parser": "^2.22.0",
    "@zeit/ncc": "^0.21.1",
    "eslint": "^6.8.0",
    "eslint-plugin-github": "^3.4.1",
    "eslint-plugin-jest": "^23.8.2",
    "jest": "^25.1.0",
    "jest-circus": "^25.1.0",
    "js-yaml": "^3.13.1",
    "prettier": "^1.19.1",
    "ts-jest": "^25.2.1",
    "typescript": "^3.8.3"
  }
}
Scripts sample in in package,json
{
  "scripts": {
    "build": "tsc",
    "format": "prettier --write **/*.ts",
    "format-check": "prettier --check **/*.ts",
    "lint": "eslint src/**/*.ts",
    "pack": "ncc build",
    "test": "jest",
    "all": "npm run build && npm run format && npm run lint && npm run pack && npm test"
  }
}
{
  "presets": ["@babel/preset-react"],
  "env": {
    "development": {
      "presets": [["@babel/preset-react", { "development": true }]]
    }
  }
}
{
  "presets": [
    [
      "@babel/preset-react",
      {
        "pragma": "dom", // default pragma is React.createElement (only in classic runtime)
        "pragmaFrag": "DomFrag", // default is React.Fragment (only in classic runtime)
        "throwIfNamespace": false, // defaults to true
        "runtime": "classic" // defaults to classic
        // "importSource": "custom-jsx-library" // defaults to react (only in automatic runtime)
      }
    ]
  ]
}
{
  "categories": [
    {
      "name": "Social Media",
      "apps": [
        {
          "name": "Facebook",
          "icon": "base64-encoded-icon",
          "urlScheme": "fb://"
        },
        {
          "name": "Twitter",
          "icon": "base64-encoded-icon",
          "urlScheme": "twitter://"
        },
        {
          "name": "Instagram",
          "icon": "base64-encoded-icon",
          "urlScheme": "instagram://"
        }
      ]
    },
    {
      "name": "Entertainment",
      "apps": [
        {
          "name": "Netflix",
          "icon": "base64-encoded-icon",
          "urlScheme": "netflix://"
        },
        {
          "name": "YouTube",
          "icon": "base64-encoded-icon",
          "urlScheme": "youtube://"
        },
        {
          "name": "Spotify",
          "icon": "base64-encoded-icon",
          "urlScheme": "spotify://"
        }
      ]
    }
  ]
}
[
{
"id": 1,
"name": "Amb. Euna Hansen",
"email": "melynda_dietrich@predovic-bruen.example",
"password_digest": "$2a$12$znnt2vgURLmaTvriMe5couk.YOGcnvmA1ykI/bTP0rccYRbcRzO52",
"salesManager_id": 15,
"route_plan_id": 4,
"created_at": "2023-04-18T22:33:40.276Z",
"updated_at": "2023-04-18T22:33:40.276Z"
},
{
"id": 2,
"name": "Johana Pouros",
"email": "edmund_willms@kuvalis-steuber.example",
"password_digest": "$2a$12$JfLfBtocGD/VDyTh/XMFAudHdF3AOv9ajCe30LM/iHiyg8vG6MmoK",
"salesManager_id": 1,
"route_plan_id": 5,
"created_at": "2023-04-18T22:33:40.565Z",
"updated_at": "2023-04-18T22:33:40.565Z"
},
{
"id": 3,
"name": "Jonas Champlin",
"email": "marjory.champlin@konopelski.example",
"password_digest": "$2a$12$mEM9X3anAJqM/zJd6YGK6Oe0MQ8gIbcEun7OmLOPnsyHLkiK3lc2K",
"salesManager_id": 7,
"route_plan_id": 5,
"created_at": "2023-04-18T22:33:40.835Z",
"updated_at": "2023-04-18T22:33:40.835Z"
},
{
"id": 4,
"name": "Msgr. Jean Huels",
"email": "jack.spencer@hessel.test",
"password_digest": "$2a$12$LYpYclw.aRHp42ncyih1r.gO6cFql.PD7qkV.wByyk.xVlpWtGDG.",
"salesManager_id": 1,
"route_plan_id": 5,
"created_at": "2023-04-18T22:33:41.102Z",
"updated_at": "2023-04-18T22:33:41.102Z"
},
{
"id": 5,
"name": "Glennis Pouros",
"email": "hyon_kunze@schuppe.example",
"password_digest": "$2a$12$aH7ReQPNEPcGmJHXtCbnZutjAiQIlSES0FMlwfshbfjYeK3HNmR0S",
"salesManager_id": 1,
"route_plan_id": 5,
"created_at": "2023-04-18T22:33:41.383Z",
"updated_at": "2023-04-18T22:33:41.383Z"
},
{
"id": 6,
"name": "Teresita Shanahan",
"email": "tad.hermann@watsica-jast.test",
"password_digest": "$2a$12$5qF./S4GOsqmWW.R3K/CUutd0r5VZx7wN414em3I0h77BToIBLDKy",
"salesManager_id": 3,
"route_plan_id": 2,
"created_at": "2023-04-18T22:33:41.670Z",
"updated_at": "2023-04-18T22:33:41.670Z"
},
{
"id": 7,
"name": "Lawana Wunsch",
"email": "cyril.dibbert@medhurst-volkman.example",
"password_digest": "$2a$12$Hr4pW2BO2Blv9bcV9Ae5j.ipV6.NFW1PFITI1f91CNfP4sNY4qdq.",
"salesManager_id": 13,
"route_plan_id": 1,
"created_at": "2023-04-18T22:33:41.948Z",
"updated_at": "2023-04-18T22:33:41.948Z"
},
{
"id": 8,
"name": "Barbera Hermann",
"email": "randal.treutel@mayert.example",
"password_digest": "$2a$12$ieZoy38O1UP6x3B9a3gj7.EKGjEK49qJT.BVXcyneFGOwHk717TIC",
"salesManager_id": 7,
"route_plan_id": 2,
"created_at": "2023-04-18T22:33:42.233Z",
"updated_at": "2023-04-18T22:33:42.233Z"
},
{
"id": 9,
"name": "Darci Pouros",
"email": "barry_fahey@trantow-cummings.example",
"password_digest": "$2a$12$ooii9lIIRvpINSxrSk.2ZOGjOXch.56YDZ6FT8L0dinuYHXBPB29O",
"salesManager_id": 5,
"route_plan_id": 5,
"created_at": "2023-04-18T22:33:42.514Z",
"updated_at": "2023-04-18T22:33:42.514Z"
},
{
"id": 10,
"name": "Amb. Leon Cremin",
"email": "mike@hermann-keeling.test",
"password_digest": "$2a$12$pwG.MQ6zeJGT4W8Olz77IO92QFyB0WogFWTCfbQ4ixYtLS4mswQ4K",
"salesManager_id": 8,
"route_plan_id": 4,
"created_at": "2023-04-18T22:33:42.773Z",
"updated_at": "2023-04-18T22:33:42.773Z"
},
{
"id": 11,
"name": "Mathew Kirlin",
"email": "jeromy_bosco@johnston.test",
"password_digest": "$2a$12$p8LCW6mxO0EVTWPADfuOfep7vyUpYVRRS2I.ArrTcAc7Idx.UJ1C.",
"salesManager_id": 5,
"route_plan_id": 2,
"created_at": "2023-04-18T22:35:00.799Z",
"updated_at": "2023-04-18T22:35:00.799Z"
},
{
"id": 12,
"name": "Laquanda Altenwerth",
"email": "blake@schmidt.example",
"password_digest": "$2a$12$4IIMxFLdb6eqVbfQtiiamerax.RPPW2UZGghzdBV8xgyg8VLYk5.m",
"salesManager_id": 11,
"route_plan_id": 3,
"created_at": "2023-04-18T22:35:01.084Z",
"updated_at": "2023-04-18T22:35:01.084Z"
},
{
"id": 13,
"name": "The Hon. Lakenya Bergnaum",
"email": "genoveva@kuvalis-halvorson.test",
"password_digest": "$2a$12$pq8rjtFVPkbkA53XBDSCzOEASEmEk.SeLdDuiSIzROKys.0n8EPdq",
"salesManager_id": 6,
"route_plan_id": 2,
"created_at": "2023-04-18T22:35:01.366Z",
"updated_at": "2023-04-18T22:35:01.366Z"
},
{
"id": 14,
"name": "Homer Hilll",
"email": "alishia_kessler@walsh-ankunding.example",
"password_digest": "$2a$12$V.uGRVrKGviSly8fVgN3buE1/viOJ5975xiLCWfIS1NxkhjlQb9W6",
"salesManager_id": 4,
"route_plan_id": 3,
"created_at": "2023-04-18T22:35:01.648Z",
"updated_at": "2023-04-18T22:35:01.648Z"
},
{
"id": 15,
"name": "Beverley Collier",
"email": "devona@parisian-kulas.example",
"password_digest": "$2a$12$4Fa6MKmHeqmbVtQfd6/iB.Wf01aNmjQE3EN29pOlPCO6IbDIbEU82",
"salesManager_id": 19,
"route_plan_id": 5,
"created_at": "2023-04-18T22:35:01.940Z",
"updated_at": "2023-04-18T22:35:01.940Z"
},
{
"id": 16,
"name": "Sherita Emmerich",
"email": "leslie@cremin.test",
"password_digest": "$2a$12$.FcfUahhFTsSuIm9NaTr6uf/Df.2gGwuINXnZAd9QSS7YNkpDsG1y",
"salesManager_id": 11,
"route_plan_id": 2,
"created_at": "2023-04-18T22:35:02.214Z",
"updated_at": "2023-04-18T22:35:02.214Z"
},
{
"id": 17,
"name": "Madge Harvey",
"email": "millard@baumbach.test",
"password_digest": "$2a$12$w9VcAS4Ov4xeY8KFk2CYu.9hIct784F3kDWwkj8Ej71cB5WJM8ZQS",
"salesManager_id": 14,
"route_plan_id": 4,
"created_at": "2023-04-18T22:35:02.495Z",
"updated_at": "2023-04-18T22:35:02.495Z"
},
{
"id": 18,
"name": "Fredrick Stanton VM",
"email": "marybelle.schimmel@von.test",
"password_digest": "$2a$12$hsBg/QGOPmHOYBApHMpvTOLCIq/Vro3Mles/KP7mey1b3oMNItv1i",
"salesManager_id": 17,
"route_plan_id": 1,
"created_at": "2023-04-18T22:35:02.780Z",
"updated_at": "2023-04-18T22:35:02.780Z"
},
{
"id": 19,
"name": "Romeo Franecki",
"email": "azalee_crooks@kuvalis.example",
"password_digest": "$2a$12$eqeLrM0rLdohLhIwwESLEecWemV.S1Q/Z4QEQ71xD7M8GwCc39OVG",
"salesManager_id": 6,
"route_plan_id": 1,
"created_at": "2023-04-18T22:35:03.052Z",
"updated_at": "2023-04-18T22:35:03.052Z"
},
{
"id": 20,
"name": "Ervin Strosin",
"email": "carlene.parisian@jerde-nicolas.test",
"password_digest": "$2a$12$Xo6c/s9G4fmyTst3qXWf1OXAoD6.seWR.w2NpKTEBZ9ymWSoHeSsW",
"salesManager_id": 14,
"route_plan_id": 1,
"created_at": "2023-04-18T22:35:03.335Z",
"updated_at": "2023-04-18T22:35:03.335Z"
},
{
"id": 21,
"name": "Alane Stiedemann",
"email": "lorena.rath@flatley.example",
"password_digest": "$2a$12$GMPPZ49gzON0koKZfzJUguXdnSwEhDrK2e/wR8PINAgPSRCLFAcIm",
"salesManager_id": 13,
"route_plan_id": 3,
"created_at": "2023-04-18T22:35:36.564Z",
"updated_at": "2023-04-18T22:35:36.564Z"
},
{
"id": 22,
"name": "Gema Adams Esq.",
"email": "nicolas@marquardt.example",
"password_digest": "$2a$12$gnmRzlza6xYZvPspBGmb4eTcaCwCdtLbv6DLtWhEL2mQc6uIa98cy",
"salesManager_id": 4,
"route_plan_id": 3,
"created_at": "2023-04-18T22:35:36.824Z",
"updated_at": "2023-04-18T22:35:36.824Z"
},
{
"id": 23,
"name": "Oren Botsford",
"email": "federico@beahan.test",
"password_digest": "$2a$12$q6T4xdKyHbMXOpKbSuJrseMFOL2gH3obInN4t9HgWUiekgf5mdulO",
"salesManager_id": 15,
"route_plan_id": 3,
"created_at": "2023-04-18T22:35:37.073Z",
"updated_at": "2023-04-18T22:35:37.073Z"
},
{
"id": 24,
"name": "Gilberto Abbott",
"email": "caterina_gulgowski@oconner.example",
"password_digest": "$2a$12$wl976Cawp1jcr1AFuxhLyOB1F1Qcm2iYtB.jbgOYfnGPn7vgeuWo2",
"salesManager_id": 13,
"route_plan_id": 5,
"created_at": "2023-04-18T22:35:37.339Z",
"updated_at": "2023-04-18T22:35:37.339Z"
},
{
"id": 25,
"name": "Ezekiel Wiegand",
"email": "cyril@white-huels.example",
"password_digest": "$2a$12$yJpxalL4dWK2Oh12S2GPU..O3L4aZusk6ipbvMp4p8Ok7tonIyEA6",
"salesManager_id": 20,
"route_plan_id": 3,
"created_at": "2023-04-18T22:35:37.592Z",
"updated_at": "2023-04-18T22:35:37.592Z"
},
{
"id": 26,
"name": "Jame Zemlak Jr.",
"email": "kory.russel@keebler.example",
"password_digest": "$2a$12$.p3v7xx8vISQO7nAxVcuNudazPPQK48kSr8rUbWtDlgzre5HbbHrK",
"salesManager_id": 23,
"route_plan_id": 5,
"created_at": "2023-04-18T22:35:37.843Z",
"updated_at": "2023-04-18T22:35:37.843Z"
},
{
"id": 27,
"name": "Evelia Haley",
"email": "denver@rippin.test",
"password_digest": "$2a$12$DuXak7wskU31rfkpe8dJ8.GKj3t3nk6r2inx8wJ/Vm0x5ZDVa7Xna",
"salesManager_id": 12,
"route_plan_id": 5,
"created_at": "2023-04-18T22:35:38.086Z",
"updated_at": "2023-04-18T22:35:38.086Z"
},
{
"id": 28,
"name": "Sen. Brigette Beer",
"email": "eli@blick-bartell.test",
"password_digest": "$2a$12$lOwecOT.2AaUBdEnd9XSB.QvgeAJldc4B8UVDGEJwa65zUWjqIS/S",
"salesManager_id": 3,
"route_plan_id": 4,
"created_at": "2023-04-18T22:35:38.335Z",
"updated_at": "2023-04-18T22:35:38.335Z"
},
{
"id": 29,
"name": "Asa Wolff DO",
"email": "ellsworth@roob-mclaughlin.example",
"password_digest": "$2a$12$oCH2zEKqNYW.Tg3m1jX65eg02iShfpR5u/jVbQ6uhUauN98ar6ULG",
"salesManager_id": 11,
"route_plan_id": 2,
"created_at": "2023-04-18T22:35:38.591Z",
"updated_at": "2023-04-18T22:35:38.591Z"
},
{
"id": 30,
"name": "Msgr. Georgia Raynor",
"email": "randal.damore@stanton.test",
"password_digest": "$2a$12$FqEeAe1f62/mu9fRJGJ5pOuJ4oug93PPU/30p2Ai.48E8bp75M7.u",
"salesManager_id": 17,
"route_plan_id": 3,
"created_at": "2023-04-18T22:35:38.848Z",
"updated_at": "2023-04-18T22:35:38.848Z"
}
]
// OBJECTS IN JS

let myBook = {
  title: 'The 4 little Birds',
  Author: 'Okile Mousa',
  numberOfPages: 230,
  colorOfCover: 'Maroon',
  isAvailable: true,
  typeOfCover: 'Hard & Soft',
  price: 35.99
  
};

console.log(myBook); 

// console.log (myBook) RESULT
[object Object] {
  author: "Okile Mousa",
  colorOfCover: "Maroon",
  isAvailable: true,
  numberOfPages: 230,
  price: 35.99,
  title: "The 4 little Birds",
  typeOfCover: "Hard & Soft"
}


//single Object access
console.log(myBook.title); // "The 4 little Birds"
console.log(myBook.author); // "Okile Mousa"
console.log(myBook.numberOfPages); // 230
console.log(myBook.isAvailable); // true
console.log(myBook.price); // 35.99 etc...




// CLASSES IN JS

class Car {
  constructor(name, model, size, price) {
    this.name = name;
    this.model = model;
    this.size = size;
    this.price = price;
    
  }
  
};

// class access
let newCar = new Car('Mousat One', 2023, '350 Tonnes', 35000);
 
 console.log(newCar);

// console.log (newCar) RESULT
[object Object] {
  model: 2023,
  name: "Mousat One",
  price: 35000,
  size: "350 Tonnes"
}




// ARRAYS IN JS

let guests = ['Mirjam Boßmeyer', 'Izaan M Okile', 'Liam Barsch', 'Okile M Ebokorait'];

console.log(guests); // ["Mirjam Boßmeyer", "Izaan M Okile", "Liam Barsch", "Okile M Ebokorait"]
console.log(guests[2]); //"Liam Barsch"
console.log(guests[0]); //"Mirjam Boßmeyer" etc...

/*array access

let firstGuest = 'Mirjam Boßmeyer';
let secondGuest = 'Izaan M Okile';
let thirdGuest = 'Liam Barsch';
let fourthGuest = 'Okile M Ebokorait'; */

console.log(firstGuest); // "Mirjam Boßmeyer"
console.log(secondGuest);// "Izaan M Okile" etc...



//ulternatively accessed as ab object

let firstGuest = {name:'Mirjam Boßmeyer', vip: true};
let secondGuest = {name:'Izaan M Okile', vip: true};
let thirdGuest = {name:'Liam Barsch', vip: true};
let fourthGuest = {name:'Okile M Ebokorait', vip: false};


guests = [firstGuest, secondGuest, thirdGuest, fourthGuest];

console.log(guests);


// console.log(guests)RESULT

[[object Object] {
  name: "Mirjam Boßmeyer",
  vip: true
}, [object Object] {
  name: "Izaan M Okile",
  vip: true
}, [object Object] {
  name: "Liam Barsch",
  vip: true
}, [object Object] {
  name: "Okile M Ebokorait",
  vip: false
}]


// There are 2 available hooks that work for the front-end part of the website.
// froala_before_public_init acts before the editor gets initialized and
// froala_after_public_init acts after the editor and all the plugins are loaded.
// Callback function for these hooks accepts 4 params
 
/** Callback function for public hooks"
 *
 * @param null $path        * File path on server.
 * @param null $type        * Can be js or css
 * @param string $prop      * Can be inline|file
 * @param null $mix         * If prop = file, mix will be the file name else if prop = inline mix will be the data.
 *
 * @return array|WP_Error
 *
 *
* To use a public hook, it needs to be registered right after the editor get is instantiated. The proper way
* would be to store it in a variable so you can have access to the debug log.
*
* This example includes a custom CSS file and load's it accordingly because it's used after public init the CSS file
* will be at the very bottom of your head tag.
 
* To understand better, the params are in this way:
* 1' st froala_after_public_init        => name of the hook.
* 2' nd $custom_css_path.'/test.css'    => path to the file.
* 3' rd 'css'                           => script type.
* 4' th 'file'                          => script property, can be file|inline.
* 5' th 'test'                          => the name of the file.
*/
$custom_css_path = plugins_url('wordpress-froala-wysiwyg-master/admin/css');
$custom_js_path = plugins_url('wordpress-froala-wysiwyg-master/admin/js');
 
$hook = apply_filters('froala_after_public_init', $custom_css_path.'/test.css', 'css', 'file','test');
 
if( is_wp_error( $hook ) ) {
    echo $hook->get_error_message();
}
 
// Same as the example above but it includes a javascript file and the action of the hook it's before Froala Editor's initialization.
$hook = apply_filters('froala_before_public_init', $custom_js_path.'/test.js', 'js', 'file','test');
 
if( is_wp_error( $hook ) ) {
  echo $hook->get_error_message();
}
// Example using inline script
 
$hook = apply_filters('froala_after_public_init', null, 'js', 'inline', 'console.log("test")');
 
if( is_wp_error( $hook ) ) {
  echo $hook->get_error_message();
}
 
// Example using inline css
$hook = apply_filters('froala_before_public_init', null, 'css', 'inline', 'h1 {background-color: #00ffff;}');
 
 
if( is_wp_error( $hook ) ) {
  echo $hook->get_error_message();
}
 
// Note!!
//The hooks must be registered right after instantiating the FroalaEditor class.
 
$Froala_Editor = new Froala_Editor();

$hook = apply_filters('froala_before_public_init', null, 'css', 'inline', 'h1 {background-color: #00ffff;}');

$Froala_Editor->activate('#comment',array('colorsBackground' => ['#61BD6D', '#1ABC9C', '#54ACD2', 'REMOVE'],
                                         'colorsText' => ['#61BD6D', '#1ABC9C', '#54ACD2', 'REMOVE']
                                        ));

// There are 2 available hooks that work for the front-end part of the website.
// froala_before_public_init acts before the editor gets initialized and
// froala_after_public_init acts after the editor and all the plugins are loaded.
// Callback function for these hooks accepts 4 params
 
/** Callback function for public hooks"
 *
 * @param null $path        * File path on server.
 * @param null $type        * Can be js or css
 * @param string $prop      * Can be inline|file
 * @param null $mix         * If prop = file, mix will be the file name else if prop = inline mix will be the data.
 *
 * @return array|WP_Error
 *
 *
* To use a public hook, it needs to be registered right after the editor get is instantiated. The proper way
* would be to store it in a variable so you can have access to the debug log.
*
* This example includes a custom CSS file and load's it accordingly because it's used after public init the CSS file
* will be at the very bottom of your head tag.
 
* To understand better, the params are in this way:
* 1' st froala_after_public_init        => name of the hook.
* 2' nd $custom_css_path.'/test.css'    => path to the file.
* 3' rd 'css'                           => script type.
* 4' th 'file'                          => script property, can be file|inline.
* 5' th 'test'                          => the name of the file.
*/
$custom_css_path = plugins_url(wordpress-froala-wysiwyg-master/admin/css);
$custom_js_path = plugins_url(wordpress-froala-wysiwyg-master/admin/js);
 
$hook = apply_filters('froala_after_public_init', $custom_css_path.'/test.css', 'css', 'file','test');
 
if( is_wp_error( $hook ) ) {
    echo $hook->get_error_message();
}
 
// Same as the example above but it includes a javascript file and the action of the hook it's before Froala Editor's initialization.
$hook = apply_filters('froala_before_public_init', $custom_js_path.'/test.js', 'js', 'file','test');
 
if( is_wp_error( $hook ) ) {
  echo $hook->get_error_message();
}
// Example using inline script
 
$hook = apply_filters('froala_after_public_init', null, 'js', 'inline', 'console.log("test")');
 
if( is_wp_error( $hook ) ) {
  echo $hook->get_error_message();
}
 
// Example using inline css
$hook = apply_filters('froala_before_public_init', null, 'css', 'inline', 'h1 {background-color: #00ffff;}');
 
 
if( is_wp_error( $hook ) ) {
  echo $hook->get_error_message();
}
 
// Note!!
//The hooks must be registered right after instantiating the FroalaEditor class.
 
$Froala_Editor = new Froala_Editor();

$hook = apply_filters('froala_before_public_init', null, 'css', 'inline', 'h1 {background-color: #00ffff;}');

$froala->activate('#comment',array('colorsBackground   '=> ['#61BD6D', '#1ABC9C', '#54ACD2', 'REMOVE'],
                                         'colorsText'         => ['#61BD6D', '#1ABC9C', '#54ACD2', 'REMOVE']
                                        ));
[
    {
        "GiftID": "",
        "SenderID": "",
        "egiftApiKey": "",
        "RecipientFirstName": "",
        "RecipientLastName": "",
        "RecipientEmail": "",
        "TreeAmount": "",
        "Salutation": ""
    }
]
SELECT
    planname,
    '{"c":"baz"}'::JSON,
    json_build_object(planname,1,'bar',2)
FROM bplaene
LIMIT 10
;

-- Complex nested JSON with arrays
SELECT json_build_object(
               'trans_id', t.trans_id,
               'user_data', json_build_object(
                       'user_id', t.user_id,
                       'user_username', t.user_username,
                       'user_full_name', t.user_full_name,
                       'user_street', t.user_street,
                       'user_postal_code', t.user_postal_code,
                       'user_additional_info', t.user_additional_info,
                       'user_country', t.user_country,
                       'user_vat_number', t.user_vat_number),
               'order_data', json_build_object(
                       'order_date', t.order_date,
                       'order_sum', t.order_sum,
                       'order_vat', t.order_vat,
                       'order_invoice_nr', t.order_invoice_nr
                   ),
               'locations',
               (SELECT json_agg(row_to_json(locations))
                FROM (SELECT l.address,
                             l.project_title,
                             (SELECT json_agg(row_to_json(f))
                              FROM (SELECT layername,
                                           data
                                    FROM sales.features) f) features

                      FROM sales.locations l) locations)
           ) transaction
FROM sales.transactions t
REST_FRAMEWORK = { 
 (...)
'DEFAULT_CONTENT_NEGOTIATION_CLASS': 'myapp.renderers.IgnoreClientContentNegotiation',
}
{
  // Required
  "manifest_version": 3,
  "name": "My Extension",
  "version": "versionString",

  // Recommended
  "action": {...},
  "default_locale": "en",
  "description": "A plain text description",
  "icons": {...},

  // Optional
  "author": ...,
  "automation": ...,
  "background": {
    // Required
    "service_worker": "background.js",
    // Optional
    "type": ...
  },
  "chrome_settings_overrides": {...},
  "chrome_url_overrides": {...},
  "commands": {...},
  "content_capabilities": ...,
  "content_scripts": [{...}],
  "content_security_policy": {...},
  "converted_from_user_script": ...,
  "cross_origin_embedder_policy": {"value": "require-corp"},
  "cross_origin_opener_policy": {"value": "same-origin"},
  "current_locale": ...,
  "declarative_net_request": ...,
  "devtools_page": "devtools.html",
  "differential_fingerprint": ...,
  "event_rules": [{...}],
  "externally_connectable": {
    "matches": ["*://*.example.com/*"]
  },
  "file_browser_handlers": [...],
  "file_system_provider_capabilities": {
    "configurable": true,
    "multiple_mounts": true,
    "source": "network"
  },
  "homepage_url": "https://path/to/homepage",
  "host_permissions": [...],
  "import": [{"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}],
  "incognito": "spanning, split, or not_allowed",
  "input_components": ...,
  "key": "publicKey",
  "minimum_chrome_version": "versionString",
  "nacl_modules": [...],
  "natively_connectable": ...,
  "oauth2": ...,
  "offline_enabled": true,
  "omnibox": {
    "keyword": "aString"
  },
  "optional_host_permissions": ["..."],
  "optional_permissions": ["tabs"],
  "options_page": "options.html",
  "options_ui": {
    "page": "options.html"
  },
  "permissions": ["tabs"],
  "platforms": ...,
  "replacement_web_app": ...,
  "requirements": {...},
  "sandbox": [...],
  "short_name": "Short Name",
  "storage": {
    "managed_schema": "schema.json"
  },
  "system_indicator": ...,
  "tts_engine": {...},
  "update_url": "https://path/to/updateInfo.xml",
  "version_name": "aString",
  "web_accessible_resources": [...]
}
{
  "$id": "https://json.schemastore.org/pre-commit-config.json",
  "$schema": "http://json-schema.org/draft-07/schema",
  "definitions": {
    "meta_repo": {
      "type": "object",
      "properties": {
        "repo": {
          "default": "meta",
          "description": "meta hooks",
          "enum": ["meta"],
          "type": "string"
        },
        "hooks": {
          "type": "array",
          "items": {
            "type": "object",
            "required": ["id"],
            "properties": {
              "id": {
                "type": "string",
                "enum": [
                  "check-hooks-apply",
                  "check-useless-excludes",
                  "identity"
                ]
              }
            }
          }
        }
      }
    },
    "local_repo": {
      "type": "object",
      "properties": {
        "repo": {
          "default": "local",
          "description": "local hooks",
          "enum": ["local"],
          "type": "string"
        },
        "hooks": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/hook_definition",
            "type": "object",
            "required": ["id", "name", "entry", "language"]
          }
        }
      }
    },
    "uri_repo": {
      "type": "object",
      "properties": {
        "repo": {
          "description": "the repository url to git clone from",
          "type": "string",
          "pattern": "^(?!.*(local|meta)).*$"
        },
        "rev": {
          "description": "the revision or tag to clone at (previously sha).",
          "type": "string"
        },
        "hooks": {
          "description": "A list of hook mappings. See https://pre-commit.com/#pre-commit-configyaml---hooks.",
          "type": "array",
          "items": {
            "type": "object",
            "$ref": "#/definitions/hook_definition"
          }
        }
      }
    },
    "hook_definition": {
      "type": "object",
      "properties": {
        "id": {
          "description": "which hook from the repository to use.",
          "type": "string"
        },
        "alias": {
          "description": "(optional) allows the hook to be referenced using an additional id when using pre-commit run <hookid>.",
          "type": "string"
        },
        "name": {
          "description": "(optional) override the name of the hook - shown during hook execution.",
          "type": "string"
        },
        "language": {
          "description": "(optional) Tells pre-commit on how to install the hook. See https://pre-commit.com/#supported-languages",
          "$ref": "https://json.schemastore.org/pre-commit-hooks.json#/definitions/language"
        },
        "language_version": {
          "description": "(optional) override the language version for the hook. See https://pre-commit.com/#overriding-language-version.",
          "type": "string"
        },
        "files": {
          "description": "(optional) override the default pattern for files to run on.",
          "type": "string"
        },
        "entry": {
          "description": "(optional) Override default command to execute for the hook.",
          "type": "string"
        },
        "exclude": {
          "description": "(optional) file exclude pattern.",
          "type": "string"
        },
        "types": {
          "description": "(optional) override the default file types to run on. See https://pre-commit.com/#filtering-files-with-types.",
          "$ref": "https://json.schemastore.org/pre-commit-hooks.json#/definitions/file_types"
        },
        "types_or": {
          "description": "(optional) override the default file types to run on (OR). See Filtering files with types. new in 2.9.0.",
          "$ref": "https://json.schemastore.org/pre-commit-hooks.json#/definitions/file_types"
        },
        "exclude_types": {
          "description": "(optional) file types to exclude.",
          "$ref": "https://json.schemastore.org/pre-commit-hooks.json#/definitions/file_types"
        },
        "args": {
          "description": "(optional) list of additional parameters to pass to the hook.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "stages": {
          "description": "(optional) confines the hook to the commit, merge-commit, push, prepare-commit-msg, commit-msg, post-checkout, post-commit or manual stage. See https://pre-commit.com/#confining-hooks-to-run-at-certain-stages.",
          "$ref": "https://json.schemastore.org/pre-commit-hooks.json#/definitions/stages"
        },
        "additional_dependencies": {
          "description": "(optional) a list of dependencies that will be installed in the environment where this hook gets run. One useful application is to install plugins for hooks such as eslint.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "always_run": {
          "description": "(optional) if true, this hook will run even if there are no matching files.",
          "type": "boolean"
        },
        "verbose": {
          "description": "(optional) if true, forces the output of the hook to be printed even when the hook passes.",
          "type": "boolean"
        },
        "log_file": {
          "description": "(optional) if present, the hook output will additionally be written to a file.",
          "type": "string"
        },
        "pass_filenames": {
          "description": "(optional) if false, this hook will be called only once without being called for each matching file.",
          "type": "boolean",
          "default": false
        }
      }
    }
  },
  "properties": {
    "ci": {
      "description": "pre-commit.ci specific settings. See https://pre-commit.ci/#configuration",
      "type": "object",
      "properties": {
        "autofix_commit_msg": {
          "description": "custom commit message for PR autofixes",
          "default": "[pre-commit.ci] auto fixes from pre-commit.com hooks\n\nfor more information, see https://pre-commit.ci",
          "type": "string"
        },
        "autofix_prs": {
          "description": "whether to autofix pull requests. when disabled, comment \"pre-commit.ci autofix\" on a pull request to manually trigger auto-fixing",
          "default": true,
          "type": "boolean"
        },
        "autoupdate_branch": {
          "description": "branch to send autoupdate PRs to. by default, pre-commit.ci will update the default branch of the repository.",
          "default": "",
          "type": "string"
        },
        "autoupdate_commit_msg": {
          "description": "custom commit message for autoupdate PRs",
          "default": "[pre-commit.ci] pre-commit autoupdate",
          "type": "string"
        },
        "autoupdate_schedule": {
          "description": "control when the autoupdate runs",
          "type": "string",
          "default": "weekly",
          "enum": ["weekly", "monthly", "quarterly"]
        },
        "skip": {
          "description": "which hook ids to be skipped when running under pre-commit.ci",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "submodules": {
          "description": "whether to recursive check out submodules",
          "default": false,
          "type": "boolean"
        }
      }
    },
    "repos": {
      "description": "A list of repository mappings. See https://pre-commit.com/#pre-commit-configyaml---repos.",
      "type": "array",
      "items": {
        "anyOf": [
          {
            "$ref": "#/definitions/meta_repo"
          },
          {
            "$ref": "#/definitions/local_repo"
          },
          {
            "$ref": "#/definitions/uri_repo"
          }
        ]
      }
    },
    "default_language_version": {
      "description": "(optional: default {}) a mapping from language to the default language_version that should be used for that language. This will only override individual hooks that do not set language_version.",
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "default_stages": {
      "description": "(optional: default (all stages)) a configuration-wide default for the stages property of hooks. This will only override individual hooks that do not set stages.",
      "$ref": "https://json.schemastore.org/pre-commit-hooks.json#/definitions/stages"
    },
    "files": {
      "description": "(optional: default '') global file include pattern.",
      "type": "string",
      "default": ""
    },
    "exclude": {
      "description": "(optional: default ^$) global file exclude pattern.",
      "type": "string",
      "default": "^$"
    },
    "fail_fast": {
      "description": "(optional: default false) set to true to have pre-commit stop running hooks after the first failure.",
      "type": "boolean",
      "default": false
    },
    "minimum_pre_commit_version": {
      "description": "(optional: default '0') require a minimum version of pre-commit.",
      "type": "string",
      "default": "0"
    }
  },
  "required": ["repos"],
  "title": "JSON schema for .pre-commit-config.yaml",
  "type": "object"
}
{
  "name": "My extension",
  ...
  "permissions": [
    "webRequest",
    "*://*.google.com/"
  ],
  ...
}
{
  ...
  "web_accessible_resources": [
    {
      "resources": [ "test1.png", "test2.png" ],
      "matches": [ "https://web-accessible-resources-1.glitch.me/*" ]
    }, {
      "resources": [ "test3.png", "test4.png" ],
      "matches": [ "https://web-accessible-resources-2.glitch.me/*" ],
      "use_dynamic_url": true
    }
  ],
  ...
}
// Manifest V3
{
  ...
  "web_accessible_resources": [{
    "resources": [RESOURCE_PATHS],
    "matches": [MATCH_PATTERNS],
    "extension_ids": [EXTENSION_IDS],
    "use_dynamic_url": boolean //optional
  }]
  ...
}
// Manifest V2
{
  ...
  "web_accessible_resources": [
    RESOURCE_PATHS
  ]
  ...
}
<!DOCTYPE php>
<?php 
error_reporting(null);
$city = $_POST['get'];
$Url = file_get_contents("http://api.openweathermap.org/data/2.5/weather?q=".$city."&units=metric&appid=73c340f4df1ee2a07dca01d0ce48bf48");
$data=json_decode($Url,true);
// echo "<pre>";
// print_r($data);


$dataurl=file_get_contents("https://pixabay.com/api/?key=29428143-1b7675892c7e12c1f8fdd4157&q=".$_POST['get']."&image_type=photo");
$test=json_decode($dataurl,true);
// echo "<pre>";
// print_r($test);
$flag='flag';
$back=$test['hits'][rand(1,19)]['largeImageURL'];



// echo "<pre>";
// print_r($test);
// $lon=$data['coord']['lon'];
// $lat=$data['coord']['lat'];
// $newtest=file_get_contents('https://api.openweathermap.org/data/2.5/weather?lat='.$lat.'&lon='.$lon.'&appid=73c340f4df1ee2a07dca01d0ce48bf48');
// $test1=json_decode($newtest,true);
$weatherAPI="a595f443b58d4c97962234220222208";
$Weatherlink=file_get_contents('http://api.weatherapi.com/v1/current.json?key='.$weatherAPI.'&q='.$city.'');
$getdata=json_decode($Weatherlink,true);

//   echo "<pre>";
// print_r($getdata);
$cnt=$getdata['location']['country'];
$ctname="a595f443b58d4c97962234220222208";
$getct=file_get_contents("http://api.weatherapi.com/v1/current.json?key=".$ctname."&q=".$_POST['get']);
$gvdata=json_decode($getct,true);
$loc=$gvdata["location"]["country"];
$imurl=$gvdata['current']['condition']['icon'];

// echo "<pre>";
// print_r($dta);
?>

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <script src="https://kit.fontawesome.com/3ade12e83a.js" crossorigin="anonymous"></script>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200" />
    <title>Weather</title>
    <style>
        @import url('https://fonts.googleapis.com/css2?family=DynaPuff&display=swap');

       .material-symbols-outlined {
         font-variation-settings:
        'FILL' 0,
        'wght' 400,
        'GRAD'0,
        'opsz' 48
}
       .button{
        padding: 10px;
        float: right;
        width: 100px;
        border: none;
        border-radius: 10px;
        background-color: #038cfc;
        color: white;
       }   
       .button:hover{
        background-color: #055ca3;
       }  

       .wmain{
        width:100%;
        display: flex;
        flex-direction: column;
            
            align-items: center;
            justify-content: center;
       }
        body{
           
            padding: 5%;
            font-family: 'DynaPuff', cursive;
            overflow:scroll;
          
        }
      .backg{
        margin: 0%;
        padding: 0%;
        position: absolute;
        width: 100%;
        height: 200%;
        z-index: -1;
        left:0%;
        top: 0%;
      }
      .show{
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        gap: 30px;
      }
      #box{
        display: flex;
        width: 100px;
        height: 100px;
        backdrop-filter: blur(50px);
        border-radius:15px;
        box-shadow: 1px 1px 10px black;
        color: white;
        align-items: center;
        justify-content: center;

      }
      .ico{
        display: flex;
        width: 200px;
        height: 200px;
        backdrop-filter: blur(50px);
        border-radius:15px;
        box-shadow: 1px 1px 10px black;
        color: white;
        align-items: center;
        justify-content: center;
        margin: 30px;
        flex-direction: column;

      }
      .search{
        border: none;
        border-radius: 30px;
        padding: 10px;
      }
      .sbar{
         border: none;
        border-radius: 30px;
        padding: 10px;
        width: 300px;

      }
      .heade{
        width: 200px;
        height:200px;
        backdrop-filter:blur(50px);
        border-radius: 20px;
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
      }
    </style>
</head>
<img class="backg" src="<?=$back ?>">
<body>
    <div class="nav">
      <a href="signup.php">
      <button name="bt" class="button">
        Source Code
      </button>
      </a>
    </div>
    <div class="wmain">

        <form method="POST">
        <div class="search"><input class="sbar" name="get" value="india" type="search"></div>
        </form>
<div class="heade" style="box-shadow:1px 1px 50px black;">
        <div class="name"><h1 style="color: white;"><?=$_POST['get'];?></h1></div>
            <img width="50px" src="https://countryflagsapi.com/png/<?=$cnt?>">
            </div>
       <div class="ico">
       <img  src="<?=$imurl?>" >
        <div class="ne"><h1><?= $data['weather']['0']['main']?></h1></div>

          <div id="bo" class="temp"><i style="color: yellow;" class="fa-solid fa-temperature-full"></i>&nbsp<?=round($data['main']['temp']) ?>deg</div>
        </div>
        <div class="show">
     
            <div id="box" class="hum"><span style="color: skyblue;" class="material-symbols-outlined">
humidity_high
</span><?=$data['main']['humidity'] ?></div>
            <div id="box" class="press"><span style="color: orange;" class="material-symbols-outlined">
compress
</span><?=$data['main']['pressure'] ?></div>
            <div id="box" class="min"><span style="color: green;" class="material-symbols-outlined">
thermometer
</span><?=$data['main']['temp_min'] ?></div>
            <div id="box" class="max"><span style="color: red;" class="material-symbols-outlined">
thermometer
</span><?=$data['main']['temp_max'] ?></div>
            <div id="box" class="wind"><i style="color: green;"  class="fa-solid fa-wind"></i>&nbsp<?=$data['wind']['speed'] ?></div>
        </div>
        
    </div>
    
</body>

</html>

let a = '{"userId": 1, "id": 1, "title": "delectus aut autem", "completed": false}';
let b = JSON.parse(a);
document.getElementById("divid").innerHTML = b.title;

// Using fetch
fetch ('https://jsonplaceholder.typicode.com/todos/1')
.then(res => res.json())
.then(json => document.getElementById("divid").innerHTML = json.title);
{
  "name": "Getting Started Example",
  "description": "Build an Extension!",
  "version": "1.0",
  "manifest_version": 3,
  "background": {
    "service_worker": "background.js"
  },
  "permissions": ["storage"]
}
formatDateTime(item()['From Date'],'dd-MMM-yy')
{
    "swagger": "2.0",
    "basePath": "/",
    "info": {
        "version": "1.0",
        "title": "External Service for demo bank",
        "description": "### External Service for demo bank",
        "x-vcap-service-name": "DemoBankRestServices"
    },
    "securityDefinitions": {
        "basicAuth": {
            "type": "basic"
        }
    },
    "security": [{
        "basicAuth": []
    }],
    "tags": [{
        "name": "DemoBankRestServices"
    }],
    "paths": {
        "/accounts/{accountName}": {
            "get": {
                "operationId": "getAccount",
                "summary": "Retrieves an account",
                "description": "Retrieves the account with specific name",
                "consumes": ["text/plain"],
                "produces": ["application/json"],
                "parameters": [{
                    "name": "accountName",
                    "in": "path",
                    "required": true,
                    "type": "string",
                    "description": "Name of the account"
                }],
                "responses": {
                    "200": {
                        "description": "The response when system finds an account with given name",
                        "schema": {
                            "$ref": "#/definitions/accountDetails"
                        }
                    },
                    "400": {
                        "description": "Error response if the account name parameter is less than minimum characters",
                        "schema": {
                            "$ref": "#/definitions/errorModel"
                        }
                    },
                    "404": {
                        "description": "Error response if the account is not supported by service or account is not found",
                        "schema": {
                            "$ref": "#/definitions/errorModel"
                        }
                    }
                }
            },
            "delete": {
                "operationId": "DeleteAccount",
                "summary": "Deletes an account",
                "description": "Deletes the account with specific name",
                "consumes": ["text/plain"],
                "produces": ["application/json"],
                "parameters": [{
                    "name": "accountName",
                    "in": "path",
                    "required": true,
                    "type": "string",
                    "description": "Name of the account"
                }],
                "responses": {
                    "204": {
                        "description": "The response when system finds an account with given name",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "400": {
                        "description": "Error response if the account name parameter is less than minimum characters",
                        "schema": {
                            "$ref": "#/definitions/errorModel"
                        }
                    },
                    "404": {
                        "description": "Error response if the account is not supported by service or account is not found",
                        "schema": {
                            "$ref": "#/definitions/errorModel"
                        }
                    }
                }
            },
            "post": {
                "operationId": "addAccount",
                "summary": "Add an account",
                "description": "Add an account to the database",
                "consumes": ["text/plain"],
                "produces": ["application/json"],
                "parameters": [{
                    "name": "accountName",
                    "in": "path",
                    "required": true,
                    "type": "string",
                    "description": "Name of the account"
                }, {
                    "name": "accountType",
                    "in": "query",
                    "required": true,
                    "type": "string",
                    "description": "The type of account"
                }],
                "responses": {
                    "201": {
                        "description": "The response when the account does not already exist and we can create one",
                        "schema": {
                            "$ref": "#/definitions/accountDetails"
                        }
                    },
                    "409": {
                        "description": "The response when the account already exists and we cannot create one",
                        "schema": {
                            "$ref": "#/definitions/accountDetails"
                        }
                    },
                    "400": {
                        "description": "Error response if the account name parameter is less than minimum characters",
                        "schema": {
                            "$ref": "#/definitions/errorModel"
                        }
                    },
                    "404": {
                        "description": "Error response if the account is not supported by service or account is not found",
                        "schema": {
                            "$ref": "#/definitions/errorModel"
                        }
                    }
                }
            },
            "put": {
                "operationId": "updateAccount",
                "summary": "Updates an account",
                "description": "Updates the account with specified name",
                "consumes": ["text/plain"],
                "produces": ["application/json"],
                "parameters": [{
                    "name": "accountName",
                    "in": "path",
                    "required": true,
                    "type": "string",
                    "description": "Name of the account"
                }, {
                    "name": "accountType",
                    "in": "query",
                    "required": true,
                    "type": "string",
                    "description": "The type of account"
                }],
                "responses": {
                    "200": {
                        "description": "The response when system finds an account with given name",
                        "schema": {
                            "$ref": "#/definitions/accountDetails"
                        }
                    },
                    "400": {
                        "description": "Error response if the account name parameter is less than minimum characters",
                        "schema": {
                            "$ref": "#/definitions/errorModel"
                        }
                    },
                    "404": {
                        "description": "Error response if the account is not supported by service or account is not found",
                        "schema": {
                            "$ref": "#/definitions/errorModel"
                        }
                    }
                }
            }
        }
    },
    "definitions": {
        "accountDetails": {
            "required": ["id", "name", "type", "availableBal"],
            "properties": {
                "id": {
                    "type": "string",
                    "description": "id"
                },
                "name": {
                    "type": "string",
                    "description": "name"
                },
                "type": {
                    "type": "string",
                    "description": "type"
                },
                "availableBal": {
                    "type": "string",
                    "description": "availableBal"
                }
            }
        },
        "errorModel": {
            "required": ["errorCode", "errorMessage"],
            "properties": {
                "errorCode": {
                    "type": "string",
                    "description": "A service-specific error code."
                },
                "errorMessage": {
                    "type": "string",
                    "description": "A service-specific error code."
                }
            }
        }
    }
}
{
    "messageId": "PfNxko2cChY94KsiU9cvUL",
    "eventId": "client.updated",    
    "eventSchemaVersion": 1.0,
    "eventInstanceOriginationDateTime": "2022-03-07T00:37:23Z",
    "eventData": {
        "siteId": 123,
        "saleId": 96,
        "purchasingClientId": "100001049",
        "payments": [
            {
                "paymentId": 103,
                "paymentMethodId": 14,
                "paymentMethodName": "Cash",
                "paymentAmountPaid": 300,
                "paymentLastFour": null,
                "paymentNotes": null
            }
        ],
        "saleDateTime": "2018-05-03T16:52:23Z",
        "soldById": 10,
        "soldByName": "Jane Doe",
        "locationId": 1,
        "totalAmountPaid": 150,
        "items": [
            {
                "itemId": 78,
                "type": "Service",
                "name": "10 Punch Pass",
                "amountPaid": 150,
                "amountDiscounted": 0,
                "quantity": 1,
                "recipientClientId": "100000009",
                "paymentReferenceId": 44
            },
            {
                "itemId": 79,
                "type": "Service",
                "name": "10 Kick Pass",
                "amountPaid": 150,
                "amountDiscounted": 0,
                "quantity": 1,
                "recipientClientId": "100000009",
                "paymentReferenceId": 44
            }
        ]
    }
}
public class Sale {
public String messageId;
public String eventId;
public Decimal eventSchemaVersion;
public String eventInstanceOriginationDateTime;
public SaleEventData eventData;
}


public class SaleEventData {
public Integer siteId;
public Integer saleId;
public String purchasingClientId;
public List<PaymentDetails> payments;
public String saleDateTime;
public String soldById;
public String soldByName;
public Integer locationId;
public Integer totalAmountPaid;
public List<SaleItemDetails> items;
}

public class PaymentDetails {
public Integer paymentId;
public Integer paymentMethodId;
public String paymentMethodName;
public String paymentAmountPaid;
public Integer paymentLastFour;
public String paymentNotes;
}

public class SaleItemDetails {
public Integer itemId;
public String type;
public String name;
public Integer amountPaid;
public Integer amountDiscounted;
public Integer quantity;
public String recipientClientId;
public Integer paymentReferenceId;
}

Sale mbSale = (Sale)JSON.deserialize(jsonInput, Sale.class);
/* JSON EXAMPLE
{
    "messageId": "PfNxko2cChY94KsiU9cvUL",
    "eventId": "client.updated",    
    "eventSchemaVersion": 1.0,
    "eventInstanceOriginationDateTime": "2022-03-07T00:37:23Z",
    "eventData": {
        "siteId": 123,
        "saleId": 96,
        "purchasingClientId": "100001049",
        "payments": [
            {
                "paymentId": 103,
                "paymentMethodId": 14,
                "paymentMethodName": "Cash",
                "paymentAmountPaid": 300,
                "paymentLastFour": null,
                "paymentNotes": null
            }
        ],
        "saleDateTime": "2018-05-03T16:52:23Z",
        "soldById": 10,
        "soldByName": "Jane Doe",
        "locationId": 1,
        "totalAmountPaid": 150,
        "items": [
            {
                "itemId": 78,
                "type": "Service",
                "name": "10 Punch Pass",
                "amountPaid": 150,
                "amountDiscounted": 0,
                "quantity": 1,
                "recipientClientId": "100000009",
                "paymentReferenceId": 44
            },
            {
                "itemId": 79,
                "type": "Service",
                "name": "10 Kick Pass",
                "amountPaid": 150,
                "amountDiscounted": 0,
                "quantity": 1,
                "recipientClientId": "100000009",
                "paymentReferenceId": 44
            }
        ]
    }
}*/


public class Sale {
public String messageId;
public String eventId;
public Decimal eventSchemaVersion;
public String eventInstanceOriginationDateTime;
public SaleEventData eventData;
}


public class SaleEventData {
public Integer siteId;
public Integer saleId;
public String purchasingClientId;
public List<PaymentDetails> payments;
public String saleDateTime;
public String soldById;
public String soldByName;
public Integer locationId;
public Integer totalAmountPaid;
public List<SaleItemDetails> items;
}

public class PaymentDetails {
public Integer paymentId;
public Integer paymentMethodId;
public String paymentMethodName;
public String paymentAmountPaid;
public Integer paymentLastFour;
public String paymentNotes;
}

public class SaleItemDetails {
public Integer itemId;
public String type;
public String name;
public Integer amountPaid;
public Integer amountDiscounted;
public Integer quantity;
public String recipientClientId;
public Integer paymentReferenceId;
}

Sale mbSale = (Sale)JSON.deserialize(jsonInput, Sale.class);
/* JSON EXAMPLE
{
    "messageId": "PfNxko2cChY94KsiU9cvUL",
    "eventId": "client.updated",    
    "eventSchemaVersion": 1.0,
    "eventInstanceOriginationDateTime": "2022-03-07T00:37:23Z",
    "eventData": {
        "siteId": 123,
        "saleId": 96,
        "purchasingClientId": "100001049",
        "payments": [
            {
                "paymentId": 103,
                "paymentMethodId": 14,
                "paymentMethodName": "Cash",
                "paymentAmountPaid": 300,
                "paymentLastFour": null,
                "paymentNotes": null
            }
        ],
        "saleDateTime": "2018-05-03T16:52:23Z",
        "soldById": 10,
        "soldByName": "Jane Doe",
        "locationId": 1,
        "totalAmountPaid": 150,
        "items": [
            {
                "itemId": 78,
                "type": "Service",
                "name": "10 Punch Pass",
                "amountPaid": 150,
                "amountDiscounted": 0,
                "quantity": 1,
                "recipientClientId": "100000009",
                "paymentReferenceId": 44
            },
            {
                "itemId": 79,
                "type": "Service",
                "name": "10 Kick Pass",
                "amountPaid": 150,
                "amountDiscounted": 0,
                "quantity": 1,
                "recipientClientId": "100000009",
                "paymentReferenceId": 44
            }
        ]
    }
}*/


public class Sale {
public String messageId;
public String eventId;
public Decimal eventSchemaVersion;
public String eventInstanceOriginationDateTime;
public SaleEventData eventData;
}


public class SaleEventData {
public Integer siteId;
public Integer saleId;
public String purchasingClientId;
public List<PaymentDetails> payments;
public String saleDateTime;
public String soldById;
public String soldByName;
public Integer locationId;
public Integer totalAmountPaid;
public List<SaleItemDetails> items;
}

public class PaymentDetails {
public Integer paymentId;
public Integer paymentMethodId;
public String paymentMethodName;
public String paymentAmountPaid;
public Integer paymentLastFour;
public String paymentNotes;
}

public class SaleItemDetails {
public Integer itemId;
public String type;
public String name;
public Integer amountPaid;
public Integer amountDiscounted;
public Integer quantity;
public String recipientClientId;
public Integer paymentReferenceId;
}

Sale mbSale = (Sale)JSON.deserialize(jsonInput, Sale.class);
{
  "name": "New Workflow",
  "nodes": [
    {
      "parameters": {},
      "name": "Start",
      "type": "n8n-nodes-base.start",
      "typeVersion": 1,
      "position": [
        240,
        300
      ]
    },
    {
      "parameters": {
        "dataType": "boolean",
        "value1": "={{Object.keys($items()[0].json).length === 0}}",
        "rules": {
          "rules": [
            {
              "value2": true
            },
            {
              "output": 1
            }
          ]
        }
      },
      "name": "Switch",
      "type": "n8n-nodes-base.switch",
      "position": [
        520,
        300
      ],
      "typeVersion": 1
    }
  ],
  "connections": {},
  "active": false,
  "settings": {},
  "tags": []
}
import os
import pandas as pd

# Get the list of json files, which are in the folder:   
str_address = r"/media/New Volume/a3d/pdb/json_parser/"
lst_files = [i for i in os.listdir(str_address) if i.endswith(".json")]

# Loop through the json files
for file_ in lst_files: 
    df = pd.read_json(str_address + file_)
    df.to_csv(str_address+ file_+ ".txt", index = False)
{
  "name": "My extension",
  ...
  "permissions": [
    "proxy"
  ],
  ...
}
{

   "Ad_Device":"desktop",

   "Cell":"SheetName",

   "Exposure_Duration":"11",

   "Page_Path":"/fltest/Viacheslav_Svash/visibility_test/playerjs/index.html",

   "Query_Parameters":"?utm_campaign=ID&time=11&origin=https://www.google.com&utm_source=Doc.Name&utm_medium=SheetName",

   "Study_Number":"Doc.Name",

   "UserHash":"ID",

   "Type":{

      "Video":{

         "Name":{

            "test_pre-roll":{

               "Key1":"value1",

               "Key2":"value2",

               "Key3":"value3",

               "Key3":"value4"

            },

            "test_pre-roll2":{

               "Key1":"value1",

               "Key2":"value2",

               "Key3":"value3",

               "Key3":"value4"

            }

         },

         "visibility duration":7.1,

         "visibility fraction":1,

         "visibility share":1

      },

      "Video2":{

         "Name":{

            "test_pre-roll":{

               "Key1":"value1",

               "Key2":"value2",

               "Key3":"value3",

               "Key3":"value4"

            },

            "test_pre-roll2":{

               "Key1":"value1",

               "Key2":"value2",

               "Key3":"value3",

               "Key3":"value4"

            },

            "test_pre-roll3":{

               "Key1":"value1",

               "Key2":"value2",

               "Key3":"value3",

               "Key3":"value4"

            }

         },

         "visibility duration":7.1,

         "visibility fraction":1,

         "visibility share":1

      }

   }

}
{

   "Ad_Device":"desktop",

   "Cell":"SheetName",

   "Exposure_Duration":"11",

   "Page_Path":"/fltest/Viacheslav_Svash/visibility_test/playerjs/index.html",

   "Query_Parameters":"?utm_campaign=ID&time=11&origin=https://www.google.com&utm_source=Doc.Name&utm_medium=SheetName",

   "Study_Number":"Doc.Name",

   "UserHash":"ID",

   "Video":{ //Type

      "test_pre-roll":{ //Name

         "Key1": "value1",

         "Key2": "value2",

         "Key3": "value3",

         "Key3": "value4"

      },

      "visibility duration":7.1,

      "visibility fraction":1,

      "visibility share":1

   }

}
{ "licenceid": "YOUR_LICENSE_ID", "userid": "YOUR_USER_ID" }
HTTP/1.1 403 Forbidden
Content-Type: application/problem+json
Content-Language: en

{
    "type": "https://example.com/probs/out-of-credit",
    "title": "You do not have enough credit.",
    "detail": "Your current balance is 30, but that costs 50.",
    "instance": "/account/12345/msgs/abc",
    "balance": 30,
    "accounts": ["/account/12345","/account/67890"],
    "status": 403
}
{
  …
  "icons": [
    …
    {
      "src": "path/to/regular_icon.png",
      "sizes": "196x196",
      "type": "image/png",
      "purpose": "any"
    },
    {
      "src": "path/to/maskable_icon.png",
      "sizes": "196x196",
      "type": "image/png",
      "purpose": "maskable" // <-- New property value `"maskable"`
    },
    …
  ],
  …
}
{"error":1,"message":"Filename is not a match"}
{
  "name": "Very Secure Extension",
  "version": "1.0",
  "description": "Example of a Secure Extension",
  "permissions": [
    "https://developer.chrome.com/*",
    "https://*.google.com/*"
  ],
  "manifest_version": 2
}
[
  {
    "title": "The Virgin Way: How to Listen, Learn, Laugh and Lead",
    "link": "https://books.google.com/books?id=Jkp1AgAAQBAJ&printsec=frontcover&dq=richard+branson&hl=en&newbks=1&newbks_redir=1&sa=X&ved=2ahUKEwin3IrX-_n1AhXclmoFHbMHDfIQ6AF6BAgIEAI",
    "displayed_link": "books.google.com",
    "snippet": "This is not a conventional book on leadership. There are no rules \u2013 but rather the secrets of leadership that he has learned along the way from his days at Virgin Records, to his recent work with The Elders.",
    "author": "Sir Richard Branson",
    "author_link": "https://www.google.com/search/search?gl=us&hl=en&tbm=bks&tbm=bks&q=inauthor:%22Sir+Richard+Branson%22&sa=X&ved=2ahUKEwin3IrX-_n1AhXclmoFHbMHDfIQ9Ah6BAgIEAU",
    "date_published": "2014",
    "preview_link": "https://books.google.com/books?id=Jkp1AgAAQBAJ&printsec=frontcover&dq=richard+branson&hl=en&newbks=1&newbks_redir=1&sa=X&ved=2ahUKEwin3IrX-_n1AhXclmoFHbMHDfIQuwV6BAgIEAc",
    "more_editions_link": "https://www.google.com/books/edition/The_Virgin_Way/Jkp1AgAAQBAJ?hl=en&gl=us&kptab=editions&sa=X&ved=2ahUKEwin3IrX-_n1AhXclmoFHbMHDfIQmBZ6BAgIEAg",
    "thumbnail": "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"
  }, ... other results
]
import socket
from threading import Thread
from tkinter import *
from tkinter import messagebox
from tkinter import scrolledtext
import json
import time
from sys import exit
enter_connection_number = Tk()
enter_connection_number.geometry('100x100')
#create a entry to enter port number
connection_number_entry = Entry(enter_connection_number, width=10)
connection_number_entry.insert(0, '')
connection_number_entry.pack()
connection_number_label = Label(enter_connection_number, text='Enter connection IP:')
connection_number_label.pack()
#create a 'set' button for the entry
def set_connection_number():
    global connection_number, connection_number_entry, connection_number_label, connection_number_button
    #set connection_number
    answer = connection_number_entry.get()
    if answer.count('.') == 3 and not ' ' in answer:
        connection_number = connection_number_entry.get()

        #destroy connection_number_entry and connection_number_button
        connection_number_entry.destroy()
        connection_number_button.destroy()
        connection_number_label.destroy()
        #close window
        enter_connection_number.destroy()

    else:
        messagebox.showerror('Invalid connection IP', 'Please enter a connection IP in the format: xxx.xxx.xxx.xxx (no spaces)')
        connection_number_entry.delete(0, END)
connection_number_button = Button(text='Set connection number', command=set_connection_number)
connection_number_button.pack()
enter_connection_number.mainloop()


def send_message_and_get_message(message, start_timer = False):
    '''Sends a message to the server until response is valid and returns the response'''
    if start_timer:
        global timer, my_socket
        timer = time.perf_counter()
    my_socket.send(message.encode())
    response = my_socket.recv(1024).decode()
    while response.startswith('0'):
        if start_timer:
            timer = time.perf_counter()
        my_socket.send(message.encode())
        response = my_socket.recv(1024).decode()
    return response

def send_message(message, mode = 1, func=None):
    '''sends message/command to server and running the command if needed'''
    global closed, username, timer
    try:
        message = str(mode) + message
        data = send_message_and_get_message(message, func == 'timer')
    except Exception as e:
        print(f'ERROR1: {e}\nclosing connection')
        exit()
    else:
        try:
            if func == 'timer':
                timer = time.perf_counter() - timer
                messagebox.showinfo('Ping message', f'Ping Message sent in {int(timer * 10000)/10000} seconds')
            elif func == 'server data':
                messagebox.showinfo('Server data', data)
            elif func == 'connected clients':
                messagebox.showinfo('Connected clients', f' there are {len(data.split(" "))} user(s) online:   {data}')
            elif func == 'set username':
                if data.endswith('1'):
                    messagebox.showinfo('Username changed', data[:-1])
                    username.destroy()
                    username = Label(root, text=f'username: {message.split(" ")[2]}')
                    username.pack()
                else:
                    messagebox.showerror('Username change failed', data[:-1])
                    name_entry.config(state=NORMAL)
                    name_button.config(text='Change name', command=change_name)
            elif data == 'quit':
                print('quiting')
                closed = True
                exit()
            
            else:
                print('\n' + data)
        except Exception as e:
            print(f'ERROR2: {e}')
            closed = True
        
            
closed = False
root = Tk()
#create a tkinter window with label frame
root.title('Chat')
root.geometry('400x400')
frame = Frame(root)
frame.pack()
#create a label and text entry widget
label = Label(frame, text='Enter your message:')
label.pack()
entry = Entry(frame)
entry.pack()
#create a button to send message
button = Button(frame, text='Send', command=lambda: send_message(entry.get()))
button.pack()
#create scrolled text widget to display messages
messages_box = scrolledtext.ScrolledText(frame, height=10, width=100)
#lock messages box
messages_box.config(state=DISABLED)
messages_box.pack()

#create a frame for commands buttons
commands_frame = Frame(root)
commands_frame.pack()
#create a button to quit
quit_button = Button(commands_frame, text='Quit', command=lambda: send_message('QUIT', 2))
quit_button.pack(side=RIGHT)
#create a button to clear messages
def clear_messages():
    messages_box.config(state=NORMAL)
    messages_box.delete(1.0, END)
    messages_box.config(state=DISABLED)
clear_button = Button(commands_frame, text='Clear', command=clear_messages)
clear_button.pack(side=LEFT)
#create a button to send PING commands to server
ping_button = Button(commands_frame, text='Ping', command=lambda: send_message('PING', 2, 'timer'))
ping_button.pack(side=LEFT)
#create a DATA command button
data_button = Button(commands_frame, text='server data', command=lambda: send_message('SERVER', 2, 'server data'))
data_button.pack(side=LEFT)
#create connected clients command button
clients_button = Button(commands_frame, text='Connected clients', command=lambda: send_message('CONNECTED CLIENTS', 2, 'connected clients'))
clients_button.pack(side=LEFT)

#create an entry to change name
name_frame = Frame(root)
name_frame.pack()
name_label = Label(name_frame, text='Enter new username:')
name_label.pack()
name_entry = Entry(name_frame)
name_entry.pack()
#create a button to change name
def change_name():
    global name
    name = name_entry.get()
    send_message(f'SET USERNAME {name}', 2, 'set username')
    print(f'SET USERNAME {name}', 2, 'set username')
    name_entry.delete(0, END)
    name_entry.insert(0, name)
    name_button.config(text='Change name', command=change_name)
name_button = Button(name_frame, text=f'Change name', command=change_name)
name_button.pack()



#create a socket
my_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
my_socket.settimeout(5)

#label that shows the socket address


try:
    my_socket.connect((connection_number, 8820))
    username = Label(root, text=f'username: {my_socket.getsockname()[1]}')
    username.pack()
except:
    #show messagebox: server is down
    root.withdraw()
    messagebox.showerror(f'Server {connection_number} is down', 'Server is down, please try again later')
    root.destroy()
    quit()
def check_new_messages():
    global last_message, closed
    try:
        while True:
            root.update()
            time.sleep(1)
            try:
                my_socket.send(f'0{last_message}'.encode())
            except:
                if not closed:
                    messagebox.showerror('Server is down', 'Server is down, please try again later')
                    root.destroy()
                    quit()

            data = str(f'[{my_socket.recv(1024).decode()}]')
            #check if not first letter of data is upper case
            if data[1] == '0':
                data = data[2:-1]
                print(data)
                try:
                    data = json.loads(data)
                except Exception as e:
                    print(f'ERROR3: {e}\n{data}')
                else:
                    if data[len(data)-1][0] > last_message:
                        for i in data:
                            if i[0] > last_message:
                                messages_box.config(state=NORMAL)
                                messages_box.insert(END, f'{i[1]} wrote: {i[2]}\n')
                                messages_box.config(state=DISABLED)
                                last_message = i[0]
                    else:
                        continue
            else:
                print(f'ignored message {data}')
 
    except Exception as e:
        pass

last_message = -1
Thread(target=check_new_messages).start()
root.mainloop()
send_message('QUIT', 2)
closed = True
my_socket.close()
select * from custom_tests_results
insert into custom_tests_results(custom_test_id, student_id, date, )

select * from student_results a
join group_tests b
on a.test_id = b.test_id
ORDER BY b.test_id


select  
groups.name as group_name,
students.name as students_name
from group_students
join groups on group_students.group_id = groups.group_id
join students on students.student_id = group_students.student_id
join student_subjects
on student_subjects.student_id = students.student_id
join subjects on subjects.id = student_subjects.subject_id
where group_students.group_id = 66


select * from group_tests a


select * from group_tests a
join student_results b
on a.test_id = b.test_id
join subjects c
on a.subject_id = c.id

select * from group_custom_tests a
join custom_tests_results b
on a.id = b.custom_test_id


insert into group_custom_tests(group_id, format)
VALUES (7,	'Рейтинговый срез'),(7,	'Рейтинговый срез'),(7,	'Рейтинговый срез'),(7,	'Рейтинговый срез'),(7,	'Рейтинговый срез'),(7,	'Рейтинговый срез'),(10,	'Рейтинговый срез'),(10,	'Рейтинговый срез'),(12,	'Рейтинговый срез'),(11,	'Рейтинг'),(11,	'Рейтинг'),(23,	'Рейтинг'),(23,	'Рейтинг'),(8,	'Рейтинг'),(8,	'Рейтинг'),(24,	'Рейтинг'),(24,	'Рейтинг'),(15,	'Рейтинговый срез'),(15,	'Рейтинговый срез'),(17,	'Рейтинговый срез'),(18,	'Рейтинговый срез'),(18,	'Рейтинговый срез'),(19,	'Рейтинговый срез'),(19,	'Рейтинговый срез'),(20,	'Рейтинговый срез'),(20,	'Рейтинговый срез'),(21,	'Рейтинговый срез'),(21,	'Рейтинговый срез'),(22,	'Рейтинговый срез'),(22,	'Рейтинговый срез'),(15,	'Рейтинговый срез'),(16,	'Рейтинговый срез'),(17,	'Рейтинговый срез'),(33,	'Рейтинговый срез'),(18,	'Рейтинговый срез'),(19,	'Рейтинговый срез'),(21,	'Рейтинговый срез'),(22,	'Рейтинговый срез'),(26,	'Пробное тестирование'),(23,	'Рейтинг'),(23,	'Рейтинг'),(9,	'Рейтинг'),(9,	'Рейтинг'),(9,	'Рейтинг'),(9,	'Рейтинг'),(9,	'Рейтинг'),(24,	'Рейтинг'),(25,	'Рейтинг'),(25,	'Рейтинг'),(25,	'Рейтинг'),(25,	'Рейтинг'),(34,	'Рейтинг'),(34,	'Рейтинг'),(35,	'Рейтинг'),(35,	'Рейтинг'),(7,	'Рейтинговый срез'),(7,	'Рейтинговый срез'),(36,	'Рейтинг'),(36,	'Рейтинг'),(37,	'Рейтинг'),(37,	'Рейтинг'),(6,	'Рейтинг'),(6,	'Рейтинг'),(38,	'Рейтинг'),(38,	'Рейтинг'),(39,	'Рейтинг'),(39,	'Рейтинг'),(39,	'Рейтинг'),(40,	'Рейтинг'),(40,	'Рейтинг'),(41,	'Рейтинг'),(41,	'Рейтинг'),(42,	'Рейтинг'),(42,	'Рейтинг'),(43,	'Рейтинг'),(43,	'Рейтинг'),(45,	'Рейтинг'),(45,	'Рейтинг'),(46,	'Рейтинг'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Рейтинговый срез'),(15,	'Рейтинговый срез'),(19,	'Рейтинговый срез'),(22,	'Рейтинговый срез'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(46,	'Рейтинг'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(26,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(12,	'Рейтинговый срез'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(33,	'Рейтинговый срез'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(17,	'Рейтинговый срез'),(62,	'Рейтинговый срез'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(62,	'Рейтинговый срез'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(67,	'Рейтинговый срез'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(67,	'Рейтинговый срез'),(29,	'Пробное тестирование'),(67,	'Рейтинговый срез'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(67,	'Рейтинговый срез'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(63,	'Рейтинговый срез'),(63,	'Рейтинговый срез'),(63,	'Рейтинговый срез'),(63,	'Рейтинговый срез'),(29,	'Пробное тестирование'),(61,	'Рейтинговый срез'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(61,	'Рейтинговый срез'),(61,	'Рейтинговый срез'),(61,	'Рейтинговый срез'),(61,	'Рейтинговый срез'),(68,	'Рейтинговый срез'),(68,	'Рейтинговый срез'),(68,	'Рейтинговый срез'),(58,	'Рейтинговый срез'),(58,	'Рейтинговый срез'),(58,	'Рейтинговый срез'),(58,	'Рейтинговый срез'),(58,	'Рейтинговый срез'),(65,	'Рейтинговый срез'),(65,	'Рейтинговый срез'),(65,	'Рейтинговый срез'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(30,	'Пробное тестирование'),(29,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(13,	'Рейтинговый срез'),(17,	'Рейтинговый срез'),(18,	'Рейтинговый срез'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Рейтинговый срез'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(62,	'Рейтинг по теме Кинематика'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(65,	'Рейтинговый срез'),(65,	'Рейтинговый срез'),(64,	'Рейтинговый срез'),(64,	'Рейтинговый срез'),(64,	'Рейтинговый срез'),(64,	'Рейтинговый срез'),(64,	'Рейтинговый срез'),(61,	'Рейтинг по теме Кинематика'),(58,	'Пробный экзамен'),(58,	'Пробный экзамен'),(62,	'Пробный экзамен'),(62,	'Пробный экзамен'),(67,	'Пробный экзамен'),(67,	'Пробный экзамен'),(63,	'Пробный экзамен'),(61,	'Пробный экзамен'),(61,	'Пробный экзамен'),(68,	'Пробный экзамен'),(68,	'Пробный экзамен'),(59,	'Пробный экзамен'),(66,	'Пробный экзамен'),(18,	'Рейтинговый срез'),(13,	'Рейтинговый срез'),(20,	'Рейтинговый срез'),(20,	'Рейтинговый срез'),(21,	'Рейтинговый срез'),(64,	'Пробный экзамен'),(65,	'Пробный экзамен'),(65,	'Пробный экзамен'),(65,	'Пробный экзамен'),(65,	'Пробный экзамен'),(66,	'Рейтинговый срез'),(66,	'Рейтинговый срез'),(66,	'Рейтинговый срез'),(66,	'Рейтинговый срез'),(62,	'Рейтинговый срез'),(62,	'Рейтинговый срез'),(68,	'Рейтинговый срез'),(59,	'Рейтинговый срез'),(59,	'Рейтинговый срез'),(22,	'Рейтинговый срез'),(19,	'Рейтинговый срез'),(15,	'Рейтинговый срез'),(21,	'Рейтинговый срез'),(33,	'Рейтинговый срез'),(33,	'Рейтинговый срез'),(33,	'Рейтинговый срез'),(17,	'Рейтинговый срез'),(17,	'Рейтинговый срез'),(17,	'Рейтинговый срез'),(17,	'Рейтинговый срез'),(18,	'Рейтинговый срез'),(18,	'Рейтинговый срез'),(18,	'Рейтинговый срез'),(18,	'Рейтинговый срез'),(15,	'Рейтинговый срез'),(15,	'Рейтинговый срез'),(16,	'Рейтинговый срез'),(16,	'Рейтинговый срез'),(13,	'Рейтинговый срез'),(14,	'Рейтинговый срез'),(14,	'Рейтинговый срез'),(32,	'Пробное тестирование'),(28,	'Пробное тестирование'),(31,	'Пробное тестирование'),(44,	'Пробное тестирование'),(29,	'Пробное тестирование'),(30,	'Пробное тестирование'),(26,	'Пробное тестирование'),(27,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(11,	'Рейтинг'),(11,	'Рейтинг'),(11,	'Рейтинг'),(11,	'Рейтинг'),(8,	'Рейтинг'),(8,	'Рейтинг'),(8,	'Рейтинг'),(23,	'Рейтинг'),(23,	'Рейтинг'),(23,	'Рейтинг'),(9,	'Рейтинг'),(9,	'Рейтинг'),(9,	'Рейтинг'),(9,	'Рейтинг'),(24,	'Рейтинг'),(24,	'Рейтинг'),(24,	'Рейтинг'),(24,	'Рейтинг'),(24,	'Рейтинг'),(25,	'Рейтинг'),(25,	'Рейтинг'),(34,	'Рейтинг'),(34,	'Рейтинг'),(35,	'Рейтинг'),(35,	'Рейтинг'),(36,	'Рейтинг'),(36,	'Рейтинг'),(37,	'Рейтинг'),(37,	'Рейтинг'),(38,	'Рейтинг'),(38,	'Рейтинг'),(39,	'Рейтинг'),(39,	'Рейтинг'),(39,	'Рейтинг'),(41,	'Рейтинг'),(41,	'Рейтинг'),(42,	'Рейтинг'),(42,	'Рейтинг'),(43,	'Рейтинг'),(43,	'Рейтинг'),(46,	'Рейтинг'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(44,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(26,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(27,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(28,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(29,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(30,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(31,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(32,	'Пробное тестирование'),(27,	'Пробное тестирование'),(26,	'Пробное тестирование'),(30,	'Пробное тестирование'),(28,	'Пробное тестирование'),(32,	'Пробное тестирование'),(31,	'Пробное тестирование'),(29,	'Пробное тестирование'),(28,	'Пробное тестирование'),(26,	'Пробное тестирование'),(32,	'Пробное тестирование'),(31,	'Пробное тестирование'), (44,	'Пробное тестирование'),(29,	'Пробное тестирование'),(27,	'Пробное тестирование'),(30,	'Пробное тестирование'),(11,	'Рейтинг'),(8,	'Рейтинг'),(24,	'Рейтинг'),(25,	'Рейтинг'),(34,	'Рейтинг'),(35,	'Рейтинг'),(36,	'Рейтинг'),(6,	'Рейтинг'),(38,	'Рейтинг'),(39,	'Рейтинг'),(41,	'Рейтинг'),(42,	'Рейтинг'),(43,	'Рейтинг'),(45,	'Рейтинг'),(51,	'Рейтинг'),(57,	'Рейтинг'),(50,	'Рейтинг'),(23,	'Рейтинг'),(40,	'Рейтинг'),(55,	'Рейтинг'),(56,	'Рейтинг'),(52,	'Рейтинг'),(33,	'Рейтинговый срез'),(33,	'Рейтинговый срез')
{
  // Required
  "manifest_version": 3,
  "name": "My Extension",
  "version": "versionString",

  // Recommended
  "action": {...},
  "default_locale": "en",
  "description": "A plain text description",
  "icons": {...},

  // Optional
  "author": ...,
  "automation": ...,
  "background": {
    // Required
    "service_worker": "background.js",
    // Optional
    "type": ...
  },
  "chrome_settings_overrides": {...},
  "chrome_url_overrides": {...},
  "commands": {...},
  "content_capabilities": ...,
  "content_scripts": [{...}],
  "content_security_policy": {...},
  "converted_from_user_script": ...,
  "cross_origin_embedder_policy": {"value": "require-corp"},
  "cross_origin_opener_policy": {"value": "same-origin"},
  "current_locale": ...,
  "declarative_net_request": ...,
  "devtools_page": "devtools.html",
  "differential_fingerprint": ...,
  "event_rules": [{...}],
  "externally_connectable": {
    "matches": ["*://*.example.com/*"]
  },
  "file_browser_handlers": [...],
  "file_system_provider_capabilities": {
    "configurable": true,
    "multiple_mounts": true,
    "source": "network"
  },
  "homepage_url": "https://path/to/homepage",
  "host_permissions": [...],
  "import": [{"id": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}],
  "incognito": "spanning, split, or not_allowed",
  "input_components": ...,
  "key": "publicKey",
  "minimum_chrome_version": "versionString",
  "nacl_modules": [...],
  "natively_connectable": ...,
  "oauth2": ...,
  "offline_enabled": true,
  "omnibox": {
    "keyword": "aString"
  },
  "optional_permissions": ["tabs"],
  "options_page": "options.html",
  "options_ui": {
    "page": "options.html"
  },
  "permissions": ["tabs"],
  "platforms": ...,
  "replacement_web_app": ...,
  "requirements": {...},
  "sandbox": [...],
  "short_name": "Short Name",
  "storage": {
    "managed_schema": "schema.json"
  },
  "system_indicator": ...,
  "tts_engine": {...},
  "update_url": "https://path/to/updateInfo.xml",
  "version_name": "aString",
  "web_accessible_resources": [...]
}
{
  "update_url": "https://clients2.google.com/service/update2/crx"
}
{
  "update_url": "https://clients2.google.com/service/update2/crx"
}
select distinct b.name from custom_tests_results a
join students b
on a.student_id = b.student_id
join group_custom_tests c
on a.custom_test_id = c.id
where c.group_id = 69 and c.format = 'Пробные тесты ЕНТ'
and a.subject_id = 1
GROUP BY a.test_date, a.id, b.student_id, c.id

select distinct a.test_date from custom_tests_results a
join students b
on a.student_id = b.student_id
join group_custom_tests c
on a.custom_test_id = c.id
where c.group_id = 69 and c.format = 'Пробные тесты ЕНТ'
and a.subject_id = 1
GROUP BY a.test_date, a.id, b.student_id, c.id
[{"format":"","format_id":54,"subjects":[{"subject":{"subject_id":14,"subject_name":"История Казахстана"},"tests":[{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":584,"student_name":"Кенебаев Манас","max_points":15,"points":8,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"53"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":585,"student_name":"Мадина Тлектесова","max_points":15,"points":5,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":2,"percents":"33"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":614,"student_name":"Камила Темирбек","max_points":15,"points":10,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"67"}]},{"subject":{"subject_id":17,"subject_name":"География"},"tests":[{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":584,"student_name":"Кенебаев Манас","max_points":15,"points":8,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"53"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":585,"student_name":"Мадина Тлектесова","max_points":15,"points":5,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":2,"percents":"33"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":614,"student_name":"Камила Темирбек","max_points":15,"points":10,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"67"}]}]},{"format":"Вто рой","format_id":24,"subjects":[{"subject":{"subject_id":14,"subject_name":"История Казахстана"},"tests":[{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":584,"student_name":"Кенебаев Манас","max_points":15,"points":8,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"53"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":585,"student_name":"Мадина Тлектесова","max_points":15,"points":5,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":2,"percents":"33"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":614,"student_name":"Камила Темирбек","max_points":15,"points":10,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"67"}]},{"subject":{"subject_id":17,"subject_name":"География"},"tests":[{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":584,"student_name":"Кенебаев Манас","max_points":15,"points":8,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"53"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":585,"student_name":"Мадина Тлектесова","max_points":15,"points":5,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":2,"percents":"33"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":614,"student_name":"Камила Темирбек","max_points":15,"points":10,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"67"}]}]},{"format":"Новый","format_id":62,"subjects":[]},{"format":"Пробные тесты ЕНТ","format_id":57,"subjects":[{"subject":{"subject_id":1,"subject_name":"Математика"},"tests":[{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":584,"student_name":"Кенебаев Манас","max_points":15,"points":8,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"53"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":585,"student_name":"Мадина Тлектесова","max_points":15,"points":5,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":2,"percents":"33"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":614,"student_name":"Камила Темирбек","max_points":15,"points":10,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"67"}]},{"subject":{"subject_id":4,"subject_name":"Казахский язык"},"tests":[{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":584,"student_name":"Кенебаев Манас","max_points":15,"points":8,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"53"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":585,"student_name":"Мадина Тлектесова","max_points":15,"points":5,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":2,"percents":"33"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":614,"student_name":"Камила Темирбек","max_points":15,"points":10,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"67"}]},{"subject":{"subject_id":14,"subject_name":"История Казахстана"},"tests":[{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":584,"student_name":"Кенебаев Манас","max_points":15,"points":8,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"53"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":585,"student_name":"Мадина Тлектесова","max_points":15,"points":5,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":2,"percents":"33"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":614,"student_name":"Камила Темирбек","max_points":15,"points":10,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"67"}]}]},{"format":"Рейтинговый тест","format_id":71,"subjects":[{"subject":{"subject_id":1,"subject_name":"Математика"},"tests":[{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":584,"student_name":"Кенебаев Манас","max_points":15,"points":8,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"53"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":585,"student_name":"Мадина Тлектесова","max_points":15,"points":5,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":2,"percents":"33"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":614,"student_name":"Камила Темирбек","max_points":15,"points":10,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"67"}]}]},{"format":"Третий","format_id":25,"subjects":[{"subject":{"subject_id":14,"subject_name":"История Казахстана"},"tests":[{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":584,"student_name":"Кенебаев Манас","max_points":15,"points":8,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"53"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":585,"student_name":"Мадина Тлектесова","max_points":15,"points":5,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":2,"percents":"33"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":614,"student_name":"Камила Темирбек","max_points":15,"points":10,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"67"}]},{"subject":{"subject_id":17,"subject_name":"География"},"tests":[{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":584,"student_name":"Кенебаев Манас","max_points":15,"points":8,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"53"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":585,"student_name":"Мадина Тлектесова","max_points":15,"points":5,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":2,"percents":"33"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":614,"student_name":"Камила Темирбек","max_points":15,"points":10,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"67"}]}]},{"format":"Четвертый","format_id":38,"subjects":[{"subject":{"subject_id":14,"subject_name":"История Казахстана"},"tests":[{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":584,"student_name":"Кенебаев Манас","max_points":15,"points":8,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"53"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":585,"student_name":"Мадина Тлектесова","max_points":15,"points":5,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":2,"percents":"33"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":614,"student_name":"Камила Темирбек","max_points":15,"points":10,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"67"}]},{"subject":{"subject_id":17,"subject_name":"География"},"tests":[{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":584,"student_name":"Кенебаев Манас","max_points":15,"points":8,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"53"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":585,"student_name":"Мадина Тлектесова","max_points":15,"points":5,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":2,"percents":"33"},{"format":"Вто рой","subject_id":14,"test_date":"2022-01-30T18:00:00.000Z","student_id":614,"student_name":"Камила Темирбек","max_points":15,"points":10,"score_five":89,"score_four":69,"score_three":49,"last_date":"2022-01-30T18:00:00.000Z","grade":3,"percents":"67"}]}]}]
SELECT distinct ROUND(avg(b.points)) as average_points,
            b.test_date,
            b.theme, b.max_points,
            b.score_five, b.score_four, b.score_three,
            ROUND(AVG(ROUND(cast(b.points as decimal) / b.max_points * 100))) as percents,
            CASE 
            WHEN AVG(ROUND(cast(b.points as decimal) / b.max_points * 100)) > b.score_five THEN 5
            WHEN AVG(ROUND(cast(b.points as decimal) / b.max_points * 100)) > b.score_four 
            AND AVG(ROUND(cast(b.points as decimal) / b.max_points * 100)) < b.score_five THEN 4
            WHEN AVG(ROUND(cast(b.points as decimal) / b.max_points * 100)) > b.score_three
            AND AVG(ROUND(cast(b.points as decimal) / b.max_points * 100)) < b.score_four THEN 3
            ELSE null 
            END
            AS average_grade,
            SUM 
            ( CASE
            WHEN ROUND(cast(b.points as decimal) / b.max_points * 100) < b.score_three THEN 
              1
            ELSE
              0
            END
            ) AS bad_grade
            from custom_tests_results b
            join group_custom_tests a
            on b.custom_test_id = a.id
            where a.group_id = ${groupId}
            and a.format = '${format.format}' and b.subject_id = ${subject.subject_id}
            GROUP BY b.test_date, b.theme, b.max_points,
            b.score_five, b.score_four, b.score_three
select *, ROUND(cast(b.points as decimal) / b.max_points * 100) as percents,
AVG(score_five)
from group_custom_tests a
join custom_tests_results b
on a.id = b.custom_test_id
where a.group_id = 69
and a.format = 'Вто рой' and b.subject_id = 14
GROUP BY a.id, b.id


select distinct on(format) id, format, group_id from group_custom_tests
 where group_id = 69


select distinct b.subject_id, c.name as subject_name
from group_custom_tests a
join custom_tests_results b
on a.id = custom_test_id
join subjects c
on b.subject_id = c.id
where a.group_id = 69 and a.format = 'Вто рой'
select a.date, e.name, a.format,
c.name as subject_name, d.name as student_name,
a.max_points, b.points
from group_tests a
join student_results b
on a.test_id = b.test_id
join subjects c
on a.subject_id = c.id
join students d
on b.student_id = d.student_id
join groups e
on a.group_id = e.group_id
where e.group_id = 29
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
// 20220208113324
// http://localhost:3000/groups/69

{
  "formats": [
    {
      "id": 54,
      "format": "",
      "group_id": 69,
      "subjects": [
        {
          "id": 17,
          "subject_id": 17,
          "group_id": 69,
          "name": "География",
          "tests": [
            {
              "format": "",
              "id": 26,
              "test_date": "2022-01-24T18:00:00.000Z",
              "theme": null,
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 17,
                      "max_points": 10,
                      "points": 1
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 17,
                      "max_points": 10,
                      "points": 5
                    }
                  ]
                }
              ]
            },
            {
              "format": "",
              "id": 54,
              "test_date": "2022-02-06T18:00:00.000Z",
              "theme": "Ацтеки2",
              "score_five": 89,
              "score_four": 59,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    {
                      "student_id": 614,
                      "subject_id": 17,
                      "max_points": 15,
                      "points": 4
                    }
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 17,
                      "max_points": 15,
                      "points": 10
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 17,
                      "max_points": 15,
                      "points": 2
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "id": 14,
          "subject_id": 14,
          "group_id": 69,
          "name": "История Казахстана",
          "tests": [
            {
              "format": "",
              "id": 26,
              "test_date": "2022-01-23T18:00:00.000Z",
              "theme": null,
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 14,
                      "max_points": 5,
                      "points": 1
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 14,
                      "max_points": 5,
                      "points": 2
                    }
                  ]
                }
              ]
            },
            {
              "format": "",
              "id": 54,
              "test_date": "2022-02-05T18:00:00.000Z",
              "theme": "Чингизхан",
              "score_five": 79,
              "score_four": 49,
              "score_three": 39,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    {
                      "student_id": 614,
                      "subject_id": 14,
                      "max_points": 20,
                      "points": 5
                    }
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 14,
                      "max_points": 20,
                      "points": 15
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 14,
                      "max_points": 20,
                      "points": 3
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "id": 4,
          "subject_id": 4,
          "group_id": 69,
          "name": "Казахский язык",
          "tests": [
            
          ]
        }
      ]
    },
    {
      "id": 29,
      "format": "Вто рой",
      "group_id": 69,
      "subjects": [
        {
          "id": 17,
          "subject_id": 17,
          "group_id": 69,
          "name": "География",
          "tests": [
            {
              "format": "Вто рой",
              "id": 27,
              "test_date": "2022-01-04T18:00:00.000Z",
              "theme": null,
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 17,
                      "max_points": 10,
                      "points": 4
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 17,
                      "max_points": 10,
                      "points": 5
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "id": 14,
          "subject_id": 14,
          "group_id": 69,
          "name": "История Казахстана",
          "tests": [
            {
              "format": "Вто рой",
              "id": 24,
              "test_date": "2022-01-23T18:00:00.000Z",
              "theme": null,
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 14,
                      "max_points": 11,
                      "points": 4
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 14,
                      "max_points": 11,
                      "points": 5
                    }
                  ]
                }
              ]
            },
            {
              "format": "Вто рой",
              "id": 27,
              "test_date": "2022-01-05T18:00:00.000Z",
              "theme": null,
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 14,
                      "max_points": 15,
                      "points": 14
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 14,
                      "max_points": 15,
                      "points": 12
                    }
                  ]
                }
              ]
            },
            {
              "format": "Вто рой",
              "id": 29,
              "test_date": "2022-01-30T18:00:00.000Z",
              "theme": null,
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    {
                      "student_id": 614,
                      "subject_id": 14,
                      "max_points": 15,
                      "points": 10
                    }
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 14,
                      "max_points": 15,
                      "points": 8
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 14,
                      "max_points": 15,
                      "points": 5
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "id": 4,
          "subject_id": 4,
          "group_id": 69,
          "name": "Казахский язык",
          "tests": [
            
          ]
        }
      ]
    },
    {
      "id": 25,
      "format": "Третий",
      "group_id": 69,
      "subjects": [
        {
          "id": 17,
          "subject_id": 17,
          "group_id": 69,
          "name": "География",
          "tests": [
            {
              "format": "Третий",
              "id": 25,
              "test_date": "2022-01-22T18:00:00.000Z",
              "theme": null,
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 17,
                      "max_points": 15,
                      "points": 15
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 17,
                      "max_points": 15,
                      "points": 11
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "id": 14,
          "subject_id": 14,
          "group_id": 69,
          "name": "История Казахстана",
          "tests": [
            {
              "format": "Третий",
              "id": 25,
              "test_date": "2022-01-23T18:00:00.000Z",
              "theme": null,
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 14,
                      "max_points": 20,
                      "points": 0
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 14,
                      "max_points": 20,
                      "points": 12
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "id": 4,
          "subject_id": 4,
          "group_id": 69,
          "name": "Казахский язык",
          "tests": [
            
          ]
        }
      ]
    },
    {
      "id": 33,
      "format": "Четвертый",
      "group_id": 69,
      "subjects": [
        {
          "id": 17,
          "subject_id": 17,
          "group_id": 69,
          "name": "География",
          "tests": [
            {
              "format": "Четвертый",
              "id": 28,
              "test_date": "2022-01-27T18:00:00.000Z",
              "theme": null,
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 17,
                      "max_points": 10,
                      "points": 10
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 17,
                      "max_points": 10,
                      "points": 5
                    }
                  ]
                }
              ]
            },
            {
              "format": "Четвертый",
              "id": 42,
              "test_date": "2022-01-31T18:00:00.000Z",
              "theme": "",
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    {
                      "student_id": 614,
                      "subject_id": 17,
                      "max_points": 15,
                      "points": 5
                    }
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 17,
                      "max_points": 15,
                      "points": 12
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 17,
                      "max_points": 15,
                      "points": 5
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "id": 14,
          "subject_id": 14,
          "group_id": 69,
          "name": "История Казахстана",
          "tests": [
            {
              "format": "Четвертый",
              "id": 42,
              "test_date": "2022-01-31T18:00:00.000Z",
              "theme": "Саки-тиграхауда",
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    {
                      "student_id": 614,
                      "subject_id": 14,
                      "max_points": 10,
                      "points": 4
                    }
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 14,
                      "max_points": 10,
                      "points": 1
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 14,
                      "max_points": 10,
                      "points": 4
                    }
                  ]
                }
              ]
            },
            {
              "format": "Четвертый",
              "id": 50,
              "test_date": "2022-02-03T18:00:00.000Z",
              "theme": "Отырар",
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    {
                      "student_id": 614,
                      "subject_id": 14,
                      "max_points": 15,
                      "points": 15
                    }
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 14,
                      "max_points": 15,
                      "points": 5
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 14,
                      "max_points": 15,
                      "points": 10
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "id": 4,
          "subject_id": 4,
          "group_id": 69,
          "name": "Казахский язык",
          "tests": [
            
          ]
        }
      ]
    }
  ]
}
// 20220207164202
// http://localhost:3000/groups/69

{
  "formats": [
    {
      "format": "Четвертый",
      "group_id": 69,
      "subjects": [
        {
          "id": 17,
          "subject_id": 17,
          "group_id": 69,
          "name": "География",
          "tests": [
            {
              "format": "Четвертый",
              "id": 28,
              "test_date": "2022-01-27T18:00:00.000Z",
              "theme": null,
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 17,
                      "max_points": 10,
                      "points": 10
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 17,
                      "max_points": 10,
                      "points": 5
                    }
                  ]
                }
              ]
            },
            {
              "format": "Четвертый",
              "id": 42,
              "test_date": "2022-01-31T18:00:00.000Z",
              "theme": "",
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    {
                      "student_id": 614,
                      "subject_id": 17,
                      "max_points": 15,
                      "points": 5
                    }
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 17,
                      "max_points": 15,
                      "points": 12
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 17,
                      "max_points": 15,
                      "points": 5
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "id": 14,
          "subject_id": 14,
          "group_id": 69,
          "name": "История Казахстана",
          "tests": [
            {
              "format": "Четвертый",
              "id": 42,
              "test_date": "2022-01-31T18:00:00.000Z",
              "theme": "Саки-тиграхауда",
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    {
                      "student_id": 614,
                      "subject_id": 14,
                      "max_points": 10,
                      "points": 4
                    }
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 14,
                      "max_points": 10,
                      "points": 1
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 14,
                      "max_points": 10,
                      "points": 4
                    }
                  ]
                }
              ]
            },
            {
              "format": "Четвертый",
              "id": 50,
              "test_date": "2022-02-03T18:00:00.000Z",
              "theme": "Отырар",
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    {
                      "student_id": 614,
                      "subject_id": 14,
                      "max_points": 15,
                      "points": 15
                    }
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 14,
                      "max_points": 15,
                      "points": 5
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 14,
                      "max_points": 15,
                      "points": 10
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "id": 4,
          "subject_id": 4,
          "group_id": 69,
          "name": "Казахский язык",
          "tests": [
            
          ]
        }
      ]
    },
    {
      "format": "Второй",
      "group_id": 69,
      "subjects": [
        {
          "id": 17,
          "subject_id": 17,
          "group_id": 69,
          "name": "География",
          "tests": [
            {
              "format": "Второй",
              "id": 27,
              "test_date": "2022-01-04T18:00:00.000Z",
              "theme": null,
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 17,
                      "max_points": 10,
                      "points": 4
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 17,
                      "max_points": 10,
                      "points": 5
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "id": 14,
          "subject_id": 14,
          "group_id": 69,
          "name": "История Казахстана",
          "tests": [
            {
              "format": "Второй",
              "id": 24,
              "test_date": "2022-01-23T18:00:00.000Z",
              "theme": null,
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 14,
                      "max_points": 11,
                      "points": 4
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 14,
                      "max_points": 11,
                      "points": 5
                    }
                  ]
                }
              ]
            },
            {
              "format": "Второй",
              "id": 27,
              "test_date": "2022-01-05T18:00:00.000Z",
              "theme": null,
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 14,
                      "max_points": 15,
                      "points": 14
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 14,
                      "max_points": 15,
                      "points": 12
                    }
                  ]
                }
              ]
            },
            {
              "format": "Второй",
              "id": 29,
              "test_date": "2022-01-30T18:00:00.000Z",
              "theme": null,
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    {
                      "student_id": 614,
                      "subject_id": 14,
                      "max_points": 15,
                      "points": 10
                    }
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 14,
                      "max_points": 15,
                      "points": 8
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 14,
                      "max_points": 15,
                      "points": 5
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "id": 4,
          "subject_id": 4,
          "group_id": 69,
          "name": "Казахский язык",
          "tests": [
            
          ]
        }
      ]
    },
    {
      "format": "",
      "group_id": 69,
      "subjects": [
        {
          "id": 17,
          "subject_id": 17,
          "group_id": 69,
          "name": "География",
          "tests": [
            {
              "format": "",
              "id": 26,
              "test_date": "2022-01-24T18:00:00.000Z",
              "theme": null,
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 17,
                      "max_points": 10,
                      "points": 1
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 17,
                      "max_points": 10,
                      "points": 5
                    }
                  ]
                }
              ]
            },
            {
              "format": "",
              "id": 54,
              "test_date": "2022-02-06T18:00:00.000Z",
              "theme": "Ацтеки2",
              "score_five": 89,
              "score_four": 59,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    {
                      "student_id": 614,
                      "subject_id": 17,
                      "max_points": 15,
                      "points": 4
                    }
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 17,
                      "max_points": 15,
                      "points": 10
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 17,
                      "max_points": 15,
                      "points": 2
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "id": 14,
          "subject_id": 14,
          "group_id": 69,
          "name": "История Казахстана",
          "tests": [
            {
              "format": "",
              "id": 26,
              "test_date": "2022-01-23T18:00:00.000Z",
              "theme": null,
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 14,
                      "max_points": 5,
                      "points": 1
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 14,
                      "max_points": 5,
                      "points": 2
                    }
                  ]
                }
              ]
            },
            {
              "format": "",
              "id": 54,
              "test_date": "2022-02-05T18:00:00.000Z",
              "theme": "Чингизхан",
              "score_five": 79,
              "score_four": 49,
              "score_three": 39,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    {
                      "student_id": 614,
                      "subject_id": 14,
                      "max_points": 20,
                      "points": 5
                    }
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 14,
                      "max_points": 20,
                      "points": 15
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 14,
                      "max_points": 20,
                      "points": 3
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "id": 4,
          "subject_id": 4,
          "group_id": 69,
          "name": "Казахский язык",
          "tests": [
            
          ]
        }
      ]
    },
    {
      "format": "Третий",
      "group_id": 69,
      "subjects": [
        {
          "id": 17,
          "subject_id": 17,
          "group_id": 69,
          "name": "География",
          "tests": [
            {
              "format": "Третий",
              "id": 25,
              "test_date": "2022-01-22T18:00:00.000Z",
              "theme": null,
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 17,
                      "max_points": 15,
                      "points": 15
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 17,
                      "max_points": 15,
                      "points": 11
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "id": 14,
          "subject_id": 14,
          "group_id": 69,
          "name": "История Казахстана",
          "tests": [
            {
              "format": "Третий",
              "id": 25,
              "test_date": "2022-01-23T18:00:00.000Z",
              "theme": null,
              "score_five": 89,
              "score_four": 69,
              "score_three": 49,
              "students": [
                {
                  "name": "Камила Темирбек",
                  "results": [
                    
                  ]
                },
                {
                  "name": "Кенебаев Манас",
                  "results": [
                    {
                      "student_id": 584,
                      "subject_id": 14,
                      "max_points": 20,
                      "points": 0
                    }
                  ]
                },
                {
                  "name": "Мадина Тлектесова",
                  "results": [
                    {
                      "student_id": 585,
                      "subject_id": 14,
                      "max_points": 20,
                      "points": 12
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "id": 4,
          "subject_id": 4,
          "group_id": 69,
          "name": "Казахский язык",
          "tests": [
            
          ]
        }
      ]
    }
  ]
}
{
  "binary": "/mnt/c/users/jimmy/appdata/local/Microsoft/WindowsApps/MicrosoftEdge.exe",
  "provider": "bing",
  "customProviders": [
    {
      "name": "gmail",
      "url": "https://inbox.google.com/search/%s",
      "tags": [
        "email",
        "google",
        "mycontent"
      ]
    },
    {
      "name": "gdrive",
      "url": "https://drive.google.com/drive/u/0/search?q=%s",
      "tags": [
        "mycontent",
        "cloud"
      ]
    },
    {
      "name": "edgesettings",
      "url": "edge://settings/?search=%s",
      "tags": [
        "microsoft",
        "edge",
        "settings",
        "config"
      ]
    },
    {
      "name": "edgehist",
      "url": "edge://history/all?q=%s",
      "tags": [
        "edge",
        "mycontent"
      ]
    },
    {
      "name": "msoft",
      "url": "https://docs.microsoft.com/en-us/search/?terms=%s",
      "tags": [
        "microsoft",
        "dev",
        "docs",
        "windows"
      ]
    },
    {
      "name": "gh",
      "url": "https://github.com/search?q=%s",
      "tags": [
        "github",
        "dev"
      ]
    },
    {
      "name": "ghr",
      "url": "https://github.com/search?q=%s+language:r",
      "tags": [
        "github",
        "r",
        "dev"
      ]
    },
    {
      "name": "ghpwsh",
      "url": "https://github.com/search?q=%s+language:powershell",
      "tags": [
        "github",
        "powershell",
        "dev",
        "windows"
      ]
    },
    {
      "name": "myrepos",
      "url": "https://github.com/search?q=%s+user:jimbrig",
      "tags": [
        "github",
        "dev",
        "mycontent"
      ]
    },
    {
      "name": "rseek",
      "url": "http://rseek.org/?q=%s",
      "tags": [
        "r",
        "dev"
      ]
    },
    {
      "name": "choco",
      "url": "https://community.chocolatey.org/packages?q=%s",
      "tags": [
        "windows",
        "config",
        "packages",
        "software",
        "dev"
      ]
    },
    {
      "name": "metacran",
      "url": "https://r-pkg.org/search.html?q=%s",
      "tags": [
        "r",
        "dev",
        "docs"
      ]
    },
    {
      "name": "psgallery",
      "url": "https://www.powershellgallery.com/packages?q=%s",
      "tags": [
        "windows",
        "software",
        "packages",
        "config",
        "dev"
      ]
    },
    {
      "name": "obsidian",
      "url": "https://forum.obsidian.md/search?q=%s",
      "tags": [
        "dev",
        "docs",
        "obsidian",
        "forum"
      ]
    },
    {
      "name": "devto",
      "url": "https://dev.to/search?q=%s",
      "tags": [
        "dev",
        "forum"
      ]
    },
    {
      "name": "devdocs",
      "url": "https://devdocs.io/#q=%s",
      "tags": [
        "dev",
        "docs"
      ]
    },
    {
      "name": "hashnode",
      "url": "https://hashnode.com/search?q=%s",
      "tags": [
        "dev",
        "forum"
      ]
    },
    {
      "name": "rsite",
      "url": "http://finzi.psych.upenn.edu/cgi-bin/namazu.cgi?query=%s&max=100&result=normal&sort=score&idxname=functions&idxname=views",
      "tags": [
        "r",
        "dev"
      ]
    },
    {
      "name": "rproj",
      "url": "https://www.google.com/search?q=%s&domains=r-project.org&sitesearch=r-project.org&btnG=Google+Search",
      "tags": [
        "r",
        "dev"
      ]
    },
    {
      "name": "rdrr",
      "url": "https://rdrr.io/search?q=%s",
      "tags": [
        "r",
        "docs"
      ]
    },
    {
      "name": "gistr",
      "url": "https://gist.github.com/search?q=%s+language:r&ref=searchresults",
      "tags": [
        "r",
        "github",
        "dev"
      ]
    },
    {
      "name": "fa",
      "url": "https://fontawesome.com/icons?d=gallery&q=%s",
      "tags": [
        "dev",
        "design"
      ]
    },
    {
      "name": "pypi",
      "url": "https://pypi.org/search/?q=%s",
      "tags": [
        "dev",
        "python"
      ]
    }
  ]
}
ALTER TABLE custom_tests_results
ADD COLUMN theme varchar(55);

select * from custom_tests_results a
join group_custom_tests b
on a.custom_test_id = b.id
join students c
on a.student_id = c.student_id
join subjects d
on a.subject_id = d.id
where a.custom_test_id = 24
and a.student_id = 585
and a.subject_id = 14

select distinct a.format, a.id, b.test_date
from group_custom_tests a
            join custom_tests_results b
            on a.id = b.custom_test_id
            where a.format = 'Второй' 
            and b.subject_id = 17

select * from group_subjects a
join subjects b
on a.subject_id = b.id
where a.group_id = 69

select * from custom_tests_results a
join subjects b
on a.subject_id = b.id
join students c
on a.student_id = c.student_id
where c.name = 'Кенебаев Манас'
and b.name = 'История Казахстана'
and custom_test_id = 24