neonvm-controller logs don't show reconcile duration

Problem description / Motivation
Currently, we have various neonvm-controller metrics showing the duration of reconcile operations. However, if there's e.g. a sudden spike in long reconciles, we don't have a way to either (a) identify that a particular reconcile took a long time, or (b) filter the logs to look only at reconciles above a certain duration.
Lacking this ability is particularly impactful if a small number of reconcile operations are creating a disproportionate impact by running for much longer than the median operation — the chances of finding the logs of an offending reconcile operation are low.
This came up in investigation here: https://neondb.slack.com/archives/C03TN5G758R/p1713734101217499?thread_ts=1713730859.492929
Feature idea(s) / DoD

When looking at a reconcile operation, it should be possible to see how long it took
It should be possible to query to find the reconcile operations that took beyond a certain duration

Fetching e.g. all the logs for sufficiently long reconcile operations is AFAICT not possible with our log querying service, because earlier log lines would need to know the final duration.
It would also be nice if the final result of the reconcile operation were included in any log message mentioning the duration — that way, we could filter for reconcile operations with certain durations, matching certain error messages, for example.
Implementation ideas
Probably just need to track the time and insert/modify a log line somewhere?

Made changes to "Overview" and "neonvm-controller" dashboards to separate errors vs conflicts.
@sharnoff, please, take look.

Looks good! Made a couple changes to the Overview dashboard; feel free to ping with questions.
To be clear, that closes #918 and is unrelated to this issue, right?

To be clear, that closes #918 and is unrelated to this issue, right?

Ah, right, thanks.


Fix isComponentMounted usages

cc @nickmurray47
Details

Gets rid of a couple of usages of isComponentMounted and replaces them with makeCancellablePromise()
Also stops throwing inside makeCancellablePromise() as cancelling should be allowed and not throw an error.

Fixed Issues
$ https://github.com/Expensify/Expensify/issues/179650
Tests / QA Steps

Test tooltip behavior and verify it still works
Upload image attachment and view attachments in modals verify there are no issues.

[ ] Verify that no errors appear in the JS console

Tested On

[x] Web
[ ] Mobile Web
[ ] Desktop
[ ] iOS
[ ] Android

Screenshots

Web

Mobile Web

Desktop

iOS

Android

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by @TomatoToaster in version: 1.1.31-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by @AndrewGable in version: 1.1.32-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Azure OpenAI Swagger Validation Failure with APIM

I'm converting the Swagger for Azure OpenAI API Version 2023-07-01-preview from json to yaml
My Swagger looks like this
openapi: 3.0.1
info:
  title: OpenAI Models API
  description: ''
  version: '123'
servers:
  - url: https://def.com/openai
paths:
  /gpt-35-turbo/chat/completions:
    post:
      tags:
        - openai
      summary: Creates a completion for the chat message
      description: gpt-35-turbo-chat-completion
      operationId: GPT_35_Turbo_ChatCompletions_Create
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/createChatCompletionRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/createChatCompletionResponse'
          headers:
            apim-request-id:
              description: Request ID for troubleshooting purposes
              schema:
                type: string
        default:
          description: Service unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorResponse'
          headers:
            apim-request-id:
              description: Request ID for troubleshooting purposes
              schema:
                type: string
components:
  schemas:
    errorResponse:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/error'
    errorBase:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
    error:
      type: object
      allOf:
        - $ref: '#/components/schemas/errorBase'
      properties:
        code:
          type: string
        message:
          type: string
        param:
          type: string
        type:
          type: string
        inner_error:
          $ref: '#/components/schemas/innerError'
    innerError:
      description: Inner error with additional details.
      type: object
      properties:
        code:
          $ref: '#/components/schemas/innerErrorCode'
        content_filter_results:
          $ref: '#/components/schemas/contentFilterResults'
    innerErrorCode:
      description: Error codes for the inner error object.
      enum:
        - ResponsibleAIPolicyViolation
      type: string
      x-ms-enum:
        name: InnerErrorCode
        modelAsString: true
        values:
          - value: ResponsibleAIPolicyViolation
            description: The prompt violated one of more content filter rules.
    contentFilterResult:
      type: object
      properties:
        severity:
          type: string
          enum:
            - safe
            - low
            - medium
            - high
          x-ms-enum:
            name: ContentFilterSeverity
            modelAsString: true
            values:
              - value: safe
                description: >-
                  General content or related content in generic or non-harmful
                  contexts.
              - value: low
                description: Harmful content at a low intensity and risk level.
              - value: medium
                description: Harmful content at a medium intensity and risk level.
              - value: high
                description: Harmful content at a high intensity and risk level.
        filtered:
          type: boolean
      required:
        - severity
        - filtered
    contentFilterResults:
      type: object
      description: >-
        Information about the content filtering category (hate, sexual,
        violence, self_harm), if it has been detected, as well as the severity
        level (very_low, low, medium, high-scale that determines the intensity
        and risk level of harmful content) and if it has been filtered or not.
      properties:
        sexual:
          $ref: '#/components/schemas/contentFilterResult'
        violence:
          $ref: '#/components/schemas/contentFilterResult'
        hate:
          $ref: '#/components/schemas/contentFilterResult'
        self_harm:
          $ref: '#/components/schemas/contentFilterResult'
        error:
          $ref: '#/components/schemas/errorBase'
    promptFilterResult:
      type: object
      description: Content filtering results for a single prompt in the request.
      properties:
        prompt_index:
          type: integer
        content_filter_results:
          $ref: '#/components/schemas/contentFilterResults'
    promptFilterResults:
      type: array
      description: >-
        Content filtering results for zero or more prompts in the request. In a
        streaming request, results for different prompts may arrive at different
        times or in different orders.
      items:
        $ref: '#/components/schemas/promptFilterResult'
    createChatCompletionRequest:
      type: object
      allOf:
        - $ref: '#/components/schemas/chatCompletionsRequestCommon'
        - properties:
            messages:
              description: >-
                A list of messages comprising the conversation so far. [Example
                Python
                code](https://github.com/openai/openai-cookbook/blob/main/examples/How_to_format_inputs_to_ChatGPT_models.ipynb).
              type: array
              minItems: 1
              items:
                $ref: '#/components/schemas/chatCompletionRequestMessage'
            functions:
              description: A list of functions the model may generate JSON inputs for.
              type: array
              minItems: 1
              items:
                $ref: '#/components/schemas/chatCompletionFunctions'
            function_call:
              description: >-
                Controls how the model responds to function calls. "none" means
                the model does not call a function, and responds to the
                end-user. "auto" means the model can pick between an end-user or
                calling a function.  Specifying a particular function via
                `{"name":\ "my_function"}` forces the model to call that
                function. "none" is the default when no functions are present.
                "auto" is the default if functions are present.
              oneOf:
                - type: string
                  enum:
                    - none
                    - auto
                - type: object
                  properties:
                    name:
                      type: string
                      description: The name of the function to call.
                  required:
                    - name
            'n':
              type: integer
              minimum: 1
              maximum: 128
              default: 1
              example: 1
              nullable: true
              description: >-
                How many chat completion choices to generate for each input
                message.
      required:
        - messages
    chatCompletionsRequestCommon:
      type: object
      properties:
        temperature:
          description: >-
            What sampling temperature to use, between 0 and 2. Higher values
            like 0.8 will make the output more random, while lower values like
            0.2 will make it more focused and deterministic.

            We generally recommend altering this or `top_p` but not both.
          type: number
          minimum: 0
          maximum: 2
          default: 1
          example: 1
          nullable: true
        top_p:
          description: >-
            An alternative to sampling with temperature, called nucleus
            sampling, where the model considers the results of the tokens with
            top_p probability mass. So 0.1 means only the tokens comprising the
            top 10% probability mass are considered.

            We generally recommend altering this or `temperature` but not both.
          type: number
          minimum: 0
          maximum: 1
          default: 1
          example: 1
          nullable: true
        stop:
          description: Up to 4 sequences where the API will stop generating further tokens.
          oneOf:
            - type: string
              nullable: true
            - type: array
              items:
                type: string
                nullable: false
              minItems: 1
              maxItems: 4
              description: Array minimum size of 1 and maximum of 4
          default: null
        max_tokens:
          description: >-
            The maximum number of tokens allowed for the generated answer. By
            default, the number of tokens the model can return will be (4096 -
            prompt tokens).
          type: integer
          default: 4096
        presence_penalty:
          description: >-
            Number between -2.0 and 2.0. Positive values penalize new tokens
            based on whether they appear in the text so far, increasing the
            model's likelihood to talk about new topics.
          type: number
          default: 0
          minimum: -2
          maximum: 2
        frequency_penalty:
          description: >-
            Number between -2.0 and 2.0. Positive values penalize new tokens
            based on their existing frequency in the text so far, decreasing the
            model's likelihood to repeat the same line verbatim.
          type: number
          default: 0
          minimum: -2
          maximum: 2
        logit_bias:
          description: >-
            Modify the likelihood of specified tokens appearing in the
            completion. Accepts a json object that maps tokens (specified by
            their token ID in the tokenizer) to an associated bias value from
            -100 to 100. Mathematically, the bias is added to the logits
            generated by the model prior to sampling. The exact effect will vary
            per model, but values between -1 and 1 should decrease or increase
            likelihood of selection; values like -100 or 100 should result in a
            ban or exclusive selection of the relevant token.
          type: object
          nullable: true
        user:
          description: >-
            A unique identifier representing your end-user, which can help Azure
            OpenAI to monitor and detect abuse.
          type: string
          example: user-1234
          nullable: false
    chatCompletionRequestMessage:
      type: object
      properties:
        role:
          type: string
          enum:
            - system
            - user
            - assistant
            - function
          description: >-
            The role of the messages author. One of `system`, `user`,
            `assistant`, or `function`.
        content:
          type: string
          description: >-
            The contents of the message. `content` is required for all messages
            except assistant messages with function calls.
        name:
          type: string
          description: >-
            The name of the author of this message. `name` is required if role
            is `function`, and it should be the name of the function whose
            response is in the `content`. May contain a-z, A-Z, 0-9, and
            underscores, with a maximum length of 64 characters.
        function_call:
          type: object
          description: >-
            The name and arguments of a function that should be called, as
            generated by the model.
          properties:
            name:
              type: string
              description: The name of the function to call.
            arguments:
              type: string
              description: >-
                The arguments to call the function with, as generated by the
                model in JSON format. Note that the model does not always
                generate valid JSON, and may hallucinate parameters not defined
                by your function schema. Validate the arguments in your code
                before calling your function.
      required:
        - role
    createChatCompletionResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/chatCompletionsResponseCommon'
        - properties:
            prompt_filter_results:
              $ref: '#/components/schemas/promptFilterResults'
            choices:
              type: array
              items:
                type: object
                allOf:
                  - $ref: '#/components/schemas/chatCompletionChoiceCommon'
                  - properties:
                      message:
                        $ref: '#/components/schemas/chatCompletionResponseMessage'
                      content_filter_results:
                        $ref: '#/components/schemas/contentFilterResults'
      required:
        - id
        - object
        - created
        - model
        - choices
    chatCompletionFunctions:
      type: object
      properties:
        name:
          type: string
          description: >-
            The name of the function to be called. Must be a-z, A-Z, 0-9, or
            contain underscores and dashes, with a maximum length of 64.
        description:
          type: string
          description: The description of what the function does.
        parameters:
          $ref: '#/components/schemas/chatCompletionFunctionParameters'
      required:
        - name
    chatCompletionFunctionParameters:
      type: object
      description: >-
        The parameters the functions accepts, described as a JSON Schema object.
        See the [guide](/docs/guides/gpt/function-calling) for examples, and the
        [JSON Schema
        reference](https://json-schema.org/understanding-json-schema/) for
        documentation about the format.
      additionalProperties: true
    chatCompletionsResponseCommon:
      type: object
      properties:
        id:
          type: string
        object:
          type: string
        created:
          type: integer
          format: unixtime
        model:
          type: string
        usage:
          type: object
          properties:
            prompt_tokens:
              type: integer
            completion_tokens:
              type: integer
            total_tokens:
              type: integer
          required:
            - prompt_tokens
            - completion_tokens
            - total_tokens
      required:
        - id
        - object
        - created
        - model
    chatCompletionChoiceCommon:
      type: object
      properties:
        index:
          type: integer
        finish_reason:
          type: string
    chatCompletionResponseMessage:
      type: object
      properties:
        role:
          type: string
          enum:
            - system
            - user
            - assistant
            - function
          description: The role of the author of this message.
        content:
          type: string
          description: The contents of the message.
        function_call:
          type: object
          description: >-
            The name and arguments of a function that should be called, as
            generated by the model.
          properties:
            name:
              type: string
              description: The name of the function to call.
            arguments:
              type: string
              description: >-
                The arguments to call the function with, as generated by the
                model in JSON format. Note that the model does not always
                generate valid JSON, and may hallucinate parameters not defined
                by your function schema. Validate the arguments in your code
                before calling your function.
      required:
        - role
  securitySchemes:
    apiKeyHeader:
      type: apiKey
      name: Ocp-Apim-Subscription-Key
      in: header
    apiKeyQuery:
      type: apiKey
      name: subscription-key
      in: query
security:
  - apiKeyHeader: [ ]
  - apiKeyQuery: [ ]

I used this in azure apim and validating the content like this
<validate-content unspecified-content-type-action="ignore" max-size="102400" size-exceeded-action="detect" errors-variable-name="requestBodyValidation">
			<content type="application/json" validate-as="json" action="prevent" allow-additional-properties="false" />
		</validate-content>

Now I tried to give the request like the actual property
{
    "messages": [
        {
            "role": "user",
            "content": "Find beachfront hotels in San Diego for less than $300 a month with free breakfast."
        }
    ],
    "temperature": 1,
    "top_p": 1,
    "stop": "",
    "max_tokens": 2000,
    "presence_penalty": 0,
    "frequency_penalty": 0,
    "logit_bias": {},
    "user": "user-1234",
    "n": 1,
    "function_call" : "auto",
    "functions" : [
            {
            "name": "search_hotels",
            "description": "Retrieves hotels from the search index based on the parameters provided",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "The location of the hotel (i.e. Seattle, WA)"
                    },
                    "max_price": {
                        "type": "number",
                        "description": "The maximum price for the hotel"
                    },
                    "features": {
                        "type": "string",
                        "description": "A comma separated list of features (i.e. beachfront, free wifi, etc.)"
                    }
                },
                "required": ["location"]
            }
        }
    ]
}

And the APIM is giving the error like
{
  "statusCode": 400,
  "message": "Body of the request does not conform to the definition which is associated with the content type application/json. JSON does not match all schemas from 'allOf'. Invalid schema indexes: 0, 1. Line: 42, Position: 1"
}

But the same request is working when I directly hit the azure openai.
What could be the possible issue here ?

Got the solution for my problem from S.O


Sip proxy: Support for outbound transactions

Commit Message: Add support for outbound transactions to SIP proxy extension
Co-authored-by: Jonah Murphy<EMAIL_ADDRESS>Additional Description: See below
Risk Level: Medium
Testing: Unit testing & Manual testing
Docs Changes: API for SIP proxy plugin settings updated
Release Notes:
Platform Specific Features:
[Optional Runtime guard:]
[Optional Fixes #Issue]
[Optional Fixes commit #PR or SHA]
[Optional Deprecated:]
[Optional API Considerations:]
This PR provides to SIP proxy extension for Envoy with support for handling outbound transactions, that is, transactions being initiated in the SIP server towards the client.
Background
SIP proxy contrib extension was implemented in September 2021 to enable Service Mesh for SIP protocol, taking into account SIP specific router mechanisms and features.
Current behavior of SIP proxy extension supports the forwarding of inbound messages (request coming from the client to be redirected to an endpoint), but only responses to existing transactions initiated by an inbound request are supported to be forwarded from the endpoint to the client. The forwarding of outbound request coming from an endpoint is not currently supported by SIP proxy extension, as Envoy does not know to which downstream connection has to forward the message when received.
This PR provides through the usage of a new header the routing mechanisms for forwarding an outbound request coming from an endpoint to the target client, providing in that way support for outbound initiated transactions.
Design
The basic idea is to provide support for outbound transactions by adding a new header, X-Envoy-Origin-Ingress, which will provide information about the thread and downstream connection where to forward any outbound transaction initiated. This X-Envoy-Origin-Ingress header will be composed of two parameters:

Thread ID: Identify the thread instance to which the client is connected, with a format thread-number@local-envoy-address.
Downstream connection ID: Identify the downstream connection instance being used by the thread instance for connecting with the client, with a format remote-client-address:remote-client-port@random-uuid.

These parameters will be initiated in the beginning, when a client connects to Envoy and a ConnectionManager is initiated. For each thread, a local map will relate the downstream connection ID with its ConnectionManager instance through a wrapper object called DownstreamConnection (new class).
Each message coming from the client (either request or response) will be modified by adding the X-Envoy-Origin-Ingress header before being forwarded to an endpoint.
The endpoint, when receiving a request coming from Envoy, will process the request as usual, but storing the value from X-Envoy-Origin-Ingress header for being used in future outbound transactions.
Each outbound request coming from a server will need to have the X-Envoy-Origin-Ingress header. It will be parsed and the DownstreamConnection associated will be recovered, providing the ConnectionManager instance to be used for forwarding the message to the client. An UpstreamTransaction instance (new class) will be created and mapped in a thread local map, saving the address of the endpoint sending the request.
Each response coming from the client to an outbound request will be processed by getting the UpstreamTransaction instance from the transaction ID and routing the message but setting the address of the endpoint which started the transaction as preferred destination. In that way the response to an outbound request will be routed by setting an affinity with the origin endpoint of the request, having the response forwarded to the same endpoint.
System architecture
This is the relationship between classes in the forwarding of an outbound initiated request to a client:

And this is the relationship between classes in the forwarding of the response to an outbound initiated request to the original endpoint:

Call flows
Here is the call flow for the connection and register of the client to the SIP server through Envoy:

Here is the call flow for a successful outbound transaction (an INVITE in this case):

Configuration
For configuring the SIP proxy plugin to allow the management of upstream transactions as an optional feature, API files for SIP proxy extension has been modified to include a new node for SIP proxy clusters, called upstream_transactions. In that way, it will be possible to enable/disable upstream transactions at a cluster level.
static_resources:
  clusters:
  - name: cluster_0
    type:
      ...
    typed_extension_protocol_options:
      envoy.filters.network.sip_proxy:
        "@type": type.googleapis.com/envoy.extensions.filters.network.sip_proxy.v3alpha.SipProtocolOptions
         ...
         upstream_transactions:
            enabled: true
         ...

This node will define for now just one parameter, enabled, which enables or disables the support for outbound transactions in that cluster. Disabling outbound transactions will provoke the following actions in the cluster:

X-Envoy-Origin-Ingress header won't be added in messages being forwarded upstream to the cluster.
Request messages received upstream will be discarded.
Indirectly, response messages received downstream will be always discarded, as the thread-local map for upstream transactions won't contain and upstream transaction instance with the transaction ID.

Main changes done
Here is the summary of the main changes done in this PR:

Parsing of X-Envoy-Origin-Ingress header during decoding, addition in all messages forwarded upstream and removal in all requests forwarded downstream.
Creation of DownstreamConnection class for mapping ConnectionManager instances to their downstream connection IDs. Creation of a TLS-base thread-local map for this mapping.
Modify ActiveTrans class to make it abstract, and create two implementations of this class:

DownstreamActiveTrans, representing all downstream initiated transactions. Replace the old use of ActiveTrans for DownstreamActiveTrans.
UpstreamActiveTrans, representing all upstream initiated transactions. Creation of a TLS-base thread-local map for mapping these upstream transactions with their transaction ID.

Rename of some existing classes for better sense:

Router::UpstreamRequest -> Router::UpstreamConnection.
Router::ResponseDecoder -> Router::UpstreamMessageDecoder.

Behavior of SIP proxy extension modified for working according to what's documented above.
Set of statistics created for upstream transactions, mirroring downstream ones (still pending to review stats behavior).

Current stats remains unchanged but could be worth to add downstream_ prefix to them.

Possibility to send local replies for outbound initiated transactions, although not used for now (for now all errors detected in outbound transactions will result in the discarding of the message).
Metadata function for validating message headers in both inbound and outbound paths, and logic for discarding in both paths the message if any of the mandatory SIP headers which may provoke a crash is not present.

@durd07 This is the draft PR. Thanks for your time

/assign

@arejasco thanks for your teams great contribution. we will go through them later. I will let you know if there are any comments.

@durd07 would you mind giving this another pass

As this is so big a PR, I need some time to review, I will began to review this soon.

thanks
/wait-any

Thanks @durd07 @phlax

Thanks for your review @durd07. I'll try to address all your comments in the following days

@arejasco  I merged one PR https://github.com/envoyproxy/envoy/pull/24165#event-7941986437 with the latest stats change, please merge this and adapt the new stats changes.
Sorry for any inconvenience.

assigning myself to merge after this has @durd07's LGTM
/wait

Sorry for the lack of activity on this PR, I've been on a long abscence. I'll try to address your comments between this week and the next one

Still working on it


[Question] How To Pull Info In Nested Array

@php $api = new Rennokki\Larafy\Larafy('***', '***'); @endphp

@php $spotify = $api->getAlbum('1OZ7GnepAtCfGivyYPCWUM'); @endphp

Now I can pull things like {{ $spotify->label }} and {{ $spotify->release_date }} just fine. But how does one go about getting just one image from the nested array?
{
  "album_type": "album",
  "artists": [
    {
      "external_urls": {
        "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
      },
      "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
      "id": "6XyY86QOPPrYVGvF9ch6wz",
      "name": "Linkin Park",
      "type": "artist",
      "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
    }
  ],
  "copyrights": [
    {
      "text": "2002 Warner Bros. Records Inc. for the U.S. and WEA International Inc. for the world outside the U.S.",
      "type": "C"
    },
    {
      "text": "2002 Warner Bros. Records Inc. for the U.S. and WEA International Inc. for the world outside the U.S.",
      "type": "P"
    }
  ],
  "external_ids": {
    "upc": "093624449263"
  },
  "external_urls": {
    "spotify": "https://open.spotify.com/album/1OZ7GnepAtCfGivyYPCWUM"
  },
  "genres": [],
  "href": "https://api.spotify.com/v1/albums/1OZ7GnepAtCfGivyYPCWUM",
  "id": "1OZ7GnepAtCfGivyYPCWUM",
  "images": [
    {
      "height": 563,
      "url": "https://i.scdn.co/image/38bb3e277a22ac9ac96f0d4eac1ea65b4bd52f34",
      "width": 640
    },
    {
      "height": 264,
      "url": "https://i.scdn.co/image/834d54c921174d76484c73812cbc210e5c7496ed",
      "width": 300
    },
    {
      "height": 56,
      "url": "https://i.scdn.co/image/9701da95a5863226969612fde4ce959228dc4113",
      "width": 64
    }
  ],
  "label": "Warner Bros.",
  "name": "Reanimation",
  "popularity": 43,
  "release_date": "2002-07-29",
  "release_date_precision": "day",
  "total_tracks": 23,
  "tracks": {
    "href": "https://api.spotify.com/v1/albums/1OZ7GnepAtCfGivyYPCWUM/tracks?offset=0&limit=50&market=ES",
    "items": [
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          }
        ],
        "disc_number": 1,
        "duration_ms": 67560,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/3gh2SWZZ2QfEBCCkZntgbk"
        },
        "href": "https://api.spotify.com/v1/tracks/3gh2SWZZ2QfEBCCkZntgbk",
        "id": "3gh2SWZZ2QfEBCCkZntgbk",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/6OXK7gqZGlVt6dt4TI4vZ7"
          },
          "href": "https://api.spotify.com/v1/tracks/6OXK7gqZGlVt6dt4TI4vZ7",
          "id": "6OXK7gqZGlVt6dt4TI4vZ7",
          "type": "track",
          "uri": "spotify:track:6OXK7gqZGlVt6dt4TI4vZ7"
        },
        "name": "Opening",
        "preview_url": "https://p.scdn.co/mp3-preview/d8cf75eab43f00f7c1d4a5dd47f4fdded1160065?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 1,
        "type": "track",
        "uri": "spotify:track:3gh2SWZZ2QfEBCCkZntgbk"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/08I5arPdBfbrzaLTdipFSy"
            },
            "href": "https://api.spotify.com/v1/artists/08I5arPdBfbrzaLTdipFSy",
            "id": "08I5arPdBfbrzaLTdipFSy",
            "name": "Jay Gordon",
            "type": "artist",
            "uri": "spotify:artist:08I5arPdBfbrzaLTdipFSy"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/0KDd5HlyPLRwtVImNJoNZ2"
            },
            "href": "https://api.spotify.com/v1/artists/0KDd5HlyPLRwtVImNJoNZ2",
            "id": "0KDd5HlyPLRwtVImNJoNZ2",
            "name": "Nova for The Astro Americans",
            "type": "artist",
            "uri": "spotify:artist:0KDd5HlyPLRwtVImNJoNZ2"
          }
        ],
        "disc_number": 1,
        "duration_ms": 225520,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/1tTgDt1fKE6wcul5s9CaDA"
        },
        "href": "https://api.spotify.com/v1/tracks/1tTgDt1fKE6wcul5s9CaDA",
        "id": "1tTgDt1fKE6wcul5s9CaDA",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/6RGPoHP8lpVie2habvjbkJ"
          },
          "href": "https://api.spotify.com/v1/tracks/6RGPoHP8lpVie2habvjbkJ",
          "id": "6RGPoHP8lpVie2habvjbkJ",
          "type": "track",
          "uri": "spotify:track:6RGPoHP8lpVie2habvjbkJ"
        },
        "name": "Pts.OF.Athrty",
        "preview_url": "https://p.scdn.co/mp3-preview/37d1cb58e9f0e887e58a81ca5c1a690e1f56f183?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 2,
        "type": "track",
        "uri": "spotify:track:1tTgDt1fKE6wcul5s9CaDA"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6AysajaVPM9PDGZ3IPkWAR"
            },
            "href": "https://api.spotify.com/v1/artists/6AysajaVPM9PDGZ3IPkWAR",
            "id": "6AysajaVPM9PDGZ3IPkWAR",
            "name": "Motion Man",
            "type": "artist",
            "uri": "spotify:artist:6AysajaVPM9PDGZ3IPkWAR"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/2T3TY0bgKbi5lH3TfD0m7O"
            },
            "href": "https://api.spotify.com/v1/artists/2T3TY0bgKbi5lH3TfD0m7O",
            "id": "2T3TY0bgKbi5lH3TfD0m7O",
            "name": "KutMasta Kurt",
            "type": "artist",
            "uri": "spotify:artist:2T3TY0bgKbi5lH3TfD0m7O"
          }
        ],
        "disc_number": 1,
        "duration_ms": 243613,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/4fYnWAimYBRNgNgTLYbXAI"
        },
        "href": "https://api.spotify.com/v1/tracks/4fYnWAimYBRNgNgTLYbXAI",
        "id": "4fYnWAimYBRNgNgTLYbXAI",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/5XbZovWUtNyGEwZVWfdps4"
          },
          "href": "https://api.spotify.com/v1/tracks/5XbZovWUtNyGEwZVWfdps4",
          "id": "5XbZovWUtNyGEwZVWfdps4",
          "type": "track",
          "uri": "spotify:track:5XbZovWUtNyGEwZVWfdps4"
        },
        "name": "Enth E Nd",
        "preview_url": "https://p.scdn.co/mp3-preview/b9961858b2179f63dc43a91c26b7a5e951b7ff2c?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 3,
        "type": "track",
        "uri": "spotify:track:4fYnWAimYBRNgNgTLYbXAI"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/1ZJlXFkFDBsjSuYyjVcMkk"
            },
            "href": "https://api.spotify.com/v1/artists/1ZJlXFkFDBsjSuYyjVcMkk",
            "id": "1ZJlXFkFDBsjSuYyjVcMkk",
            "name": "Chali 2na",
            "type": "artist",
            "uri": "spotify:artist:1ZJlXFkFDBsjSuYyjVcMkk"
          }
        ],
        "disc_number": 1,
        "duration_ms": 23746,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/4NHtT5oIvUEabTJrJkGYK4"
        },
        "href": "https://api.spotify.com/v1/tracks/4NHtT5oIvUEabTJrJkGYK4",
        "id": "4NHtT5oIvUEabTJrJkGYK4",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/114JedZ8kyzAauwVlsq32N"
          },
          "href": "https://api.spotify.com/v1/tracks/114JedZ8kyzAauwVlsq32N",
          "id": "114JedZ8kyzAauwVlsq32N",
          "type": "track",
          "uri": "spotify:track:114JedZ8kyzAauwVlsq32N"
        },
        "name": "Chali",
        "preview_url": "https://p.scdn.co/mp3-preview/d8cf6582a62808272bd3956a78467ef4070574d9?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 4,
        "type": "track",
        "uri": "spotify:track:4NHtT5oIvUEabTJrJkGYK4"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/0eVyjRhzZKke2KFYTcDkeu"
            },
            "href": "https://api.spotify.com/v1/artists/0eVyjRhzZKke2KFYTcDkeu",
            "id": "0eVyjRhzZKke2KFYTcDkeu",
            "name": "The Alchemist",
            "type": "artist",
            "uri": "spotify:artist:0eVyjRhzZKke2KFYTcDkeu"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/1ZJlXFkFDBsjSuYyjVcMkk"
            },
            "href": "https://api.spotify.com/v1/artists/1ZJlXFkFDBsjSuYyjVcMkk",
            "id": "1ZJlXFkFDBsjSuYyjVcMkk",
            "name": "Chali 2na",
            "type": "artist",
            "uri": "spotify:artist:1ZJlXFkFDBsjSuYyjVcMkk"
          }
        ],
        "disc_number": 1,
        "duration_ms": 212293,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/778BjQ7gIDzDuhxjCC4Xjz"
        },
        "href": "https://api.spotify.com/v1/tracks/778BjQ7gIDzDuhxjCC4Xjz",
        "id": "778BjQ7gIDzDuhxjCC4Xjz",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/7e24AU1oA4X7rNNNVhsKGD"
          },
          "href": "https://api.spotify.com/v1/tracks/7e24AU1oA4X7rNNNVhsKGD",
          "id": "7e24AU1oA4X7rNNNVhsKGD",
          "type": "track",
          "uri": "spotify:track:7e24AU1oA4X7rNNNVhsKGD"
        },
        "name": "Frgt/10",
        "preview_url": "https://p.scdn.co/mp3-preview/b5cffa07a945bf43be7af59fbe50a60c129321f1?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 5,
        "type": "track",
        "uri": "spotify:track:778BjQ7gIDzDuhxjCC4Xjz"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/7nvXvW4Z33HGn1iae6EGeL"
            },
            "href": "https://api.spotify.com/v1/artists/7nvXvW4Z33HGn1iae6EGeL",
            "id": "7nvXvW4Z33HGn1iae6EGeL",
            "name": "StephenRichards",
            "type": "artist",
            "uri": "spotify:artist:7nvXvW4Z33HGn1iae6EGeL"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6xBZgSMsnKVmaAxzWEwMSD"
            },
            "href": "https://api.spotify.com/v1/artists/6xBZgSMsnKVmaAxzWEwMSD",
            "id": "6xBZgSMsnKVmaAxzWEwMSD",
            "name": "Mike Shinoda",
            "type": "artist",
            "uri": "spotify:artist:6xBZgSMsnKVmaAxzWEwMSD"
          }
        ],
        "disc_number": 1,
        "duration_ms": 277973,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/2AonZJ7LkhkQyWPck40uOO"
        },
        "href": "https://api.spotify.com/v1/tracks/2AonZJ7LkhkQyWPck40uOO",
        "id": "2AonZJ7LkhkQyWPck40uOO",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/0YpPlCcc2TahZM1sVBi3b4"
          },
          "href": "https://api.spotify.com/v1/tracks/0YpPlCcc2TahZM1sVBi3b4",
          "id": "0YpPlCcc2TahZM1sVBi3b4",
          "type": "track",
          "uri": "spotify:track:0YpPlCcc2TahZM1sVBi3b4"
        },
        "name": "P5hng Me Aw*y",
        "preview_url": "https://p.scdn.co/mp3-preview/106e788502681502bd53488a08498e6b6e15d25b?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 6,
        "type": "track",
        "uri": "spotify:track:2AonZJ7LkhkQyWPck40uOO"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/1CVKHwcsqgtMXbKZJlBYID"
            },
            "href": "https://api.spotify.com/v1/artists/1CVKHwcsqgtMXbKZJlBYID",
            "id": "1CVKHwcsqgtMXbKZJlBYID",
            "name": "Zion",
            "type": "artist",
            "uri": "spotify:artist:1CVKHwcsqgtMXbKZJlBYID"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/0Sc7WliRqPh9FH1N9GYXOU"
            },
            "href": "https://api.spotify.com/v1/artists/0Sc7WliRqPh9FH1N9GYXOU",
            "id": "0Sc7WliRqPh9FH1N9GYXOU",
            "name": "Amp Live for 418 Hz Productions",
            "type": "artist",
            "uri": "spotify:artist:0Sc7WliRqPh9FH1N9GYXOU"
          }
        ],
        "disc_number": 1,
        "duration_ms": 260746,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/4uRW7Q5JdBNmpCMknCav6w"
        },
        "href": "https://api.spotify.com/v1/tracks/4uRW7Q5JdBNmpCMknCav6w",
        "id": "4uRW7Q5JdBNmpCMknCav6w",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/1qFuqMXA8JGEwq23dIMGb5"
          },
          "href": "https://api.spotify.com/v1/tracks/1qFuqMXA8JGEwq23dIMGb5",
          "id": "1qFuqMXA8JGEwq23dIMGb5",
          "type": "track",
          "uri": "spotify:track:1qFuqMXA8JGEwq23dIMGb5"
        },
        "name": "Plc.4 Mie Haed",
        "preview_url": "https://p.scdn.co/mp3-preview/9b98d254ad657e23aefed5f72d184eaf8899f940?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 7,
        "type": "track",
        "uri": "spotify:track:4uRW7Q5JdBNmpCMknCav6w"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/1BBTSA7m7qYHwyK7QqG0Q5"
            },
            "href": "https://api.spotify.com/v1/artists/1BBTSA7m7qYHwyK7QqG0Q5",
            "id": "1BBTSA7m7qYHwyK7QqG0Q5",
            "name": "Roc Raida",
            "type": "artist",
            "uri": "spotify:artist:1BBTSA7m7qYHwyK7QqG0Q5"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/37DKbi0EBIqEBvSNxFIjvh"
            },
            "href": "https://api.spotify.com/v1/artists/37DKbi0EBIqEBvSNxFIjvh",
            "id": "37DKbi0EBIqEBvSNxFIjvh",
            "name": "Sean C",
            "type": "artist",
            "uri": "spotify:artist:37DKbi0EBIqEBvSNxFIjvh"
          }
        ],
        "disc_number": 1,
        "duration_ms": 109493,
        "explicit": true,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/5WOCLjTmfTvrEE6gzyb2XO"
        },
        "href": "https://api.spotify.com/v1/tracks/5WOCLjTmfTvrEE6gzyb2XO",
        "id": "5WOCLjTmfTvrEE6gzyb2XO",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/4poB5UxNa3ZSmIAaUfYvn5"
          },
          "href": "https://api.spotify.com/v1/tracks/4poB5UxNa3ZSmIAaUfYvn5",
          "id": "4poB5UxNa3ZSmIAaUfYvn5",
          "type": "track",
          "uri": "spotify:track:4poB5UxNa3ZSmIAaUfYvn5"
        },
        "name": "X-Ecutioner Style",
        "preview_url": "https://p.scdn.co/mp3-preview/2088060fa064c1d16dc88c938c779234030f9145?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 8,
        "type": "track",
        "uri": "spotify:track:5WOCLjTmfTvrEE6gzyb2XO"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/7LSCBbEAuCqQqE0MGszyKl"
            },
            "href": "https://api.spotify.com/v1/artists/7LSCBbEAuCqQqE0MGszyKl",
            "id": "7LSCBbEAuCqQqE0MGszyKl",
            "name": "DJ Babu",
            "type": "artist",
            "uri": "spotify:artist:7LSCBbEAuCqQqE0MGszyKl"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/5DKuVtlpDH0agZQUFDy8O7"
            },
            "href": "https://api.spotify.com/v1/artists/5DKuVtlpDH0agZQUFDy8O7",
            "id": "5DKuVtlpDH0agZQUFDy8O7",
            "name": "Pharoahe Monch",
            "type": "artist",
            "uri": "spotify:artist:5DKuVtlpDH0agZQUFDy8O7"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6VfeYClQyVUCPJdXb9jl3O"
            },
            "href": "https://api.spotify.com/v1/artists/6VfeYClQyVUCPJdXb9jl3O",
            "id": "6VfeYClQyVUCPJdXb9jl3O",
            "name": "Evidence",
            "type": "artist",
            "uri": "spotify:artist:6VfeYClQyVUCPJdXb9jl3O"
          }
        ],
        "disc_number": 1,
        "duration_ms": 210733,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/46DFLr1KAE4nfWcsgkT4xi"
        },
        "href": "https://api.spotify.com/v1/tracks/46DFLr1KAE4nfWcsgkT4xi",
        "id": "46DFLr1KAE4nfWcsgkT4xi",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/4wxBU80jnII5GmqR2gylzd"
          },
          "href": "https://api.spotify.com/v1/tracks/4wxBU80jnII5GmqR2gylzd",
          "id": "4wxBU80jnII5GmqR2gylzd",
          "type": "track",
          "uri": "spotify:track:4wxBU80jnII5GmqR2gylzd"
        },
        "name": "H! Vltg3",
        "preview_url": "https://p.scdn.co/mp3-preview/1811a498f1f442991ba01e2bd01968032023e6ce?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 9,
        "type": "track",
        "uri": "spotify:track:46DFLr1KAE4nfWcsgkT4xi"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/31IZdHrCZ5pRhLz4zBxN3o"
            },
            "href": "https://api.spotify.com/v1/artists/31IZdHrCZ5pRhLz4zBxN3o",
            "id": "31IZdHrCZ5pRhLz4zBxN3o",
            "name": "Riff Raff",
            "type": "artist",
            "uri": "spotify:artist:31IZdHrCZ5pRhLz4zBxN3o"
          }
        ],
        "disc_number": 1,
        "duration_ms": 21906,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/6ZsorJwy0kv5Eav0zbGjUo"
        },
        "href": "https://api.spotify.com/v1/tracks/6ZsorJwy0kv5Eav0zbGjUo",
        "id": "6ZsorJwy0kv5Eav0zbGjUo",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/4uhV1SjCnhwTE6cojEX3qt"
          },
          "href": "https://api.spotify.com/v1/tracks/4uhV1SjCnhwTE6cojEX3qt",
          "id": "4uhV1SjCnhwTE6cojEX3qt",
          "type": "track",
          "uri": "spotify:track:4uhV1SjCnhwTE6cojEX3qt"
        },
        "name": "Riff Raff",
        "preview_url": "https://p.scdn.co/mp3-preview/6f921fb5d36eee033805f801639f18dc99573182?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 10,
        "type": "track",
        "uri": "spotify:track:6ZsorJwy0kv5Eav0zbGjUo"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/7CaUk9xCxdXAmmqQn3PLR7"
            },
            "href": "https://api.spotify.com/v1/artists/7CaUk9xCxdXAmmqQn3PLR7",
            "id": "7CaUk9xCxdXAmmqQn3PLR7",
            "name": "Aceyalone",
            "type": "artist",
            "uri": "spotify:artist:7CaUk9xCxdXAmmqQn3PLR7"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6glaZ3qSwdXqln8g8JpYzr"
            },
            "href": "https://api.spotify.com/v1/artists/6glaZ3qSwdXqln8g8JpYzr",
            "id": "6glaZ3qSwdXqln8g8JpYzr",
            "name": "Chairman Hahn",
            "type": "artist",
            "uri": "spotify:artist:6glaZ3qSwdXqln8g8JpYzr"
          }
        ],
        "disc_number": 1,
        "duration_ms": 252306,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/0vSAsph1vdB1zN1OJR3lHy"
        },
        "href": "https://api.spotify.com/v1/tracks/0vSAsph1vdB1zN1OJR3lHy",
        "id": "0vSAsph1vdB1zN1OJR3lHy",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/2S5zPHcduyNfdB8dM7PECC"
          },
          "href": "https://api.spotify.com/v1/tracks/2S5zPHcduyNfdB8dM7PECC",
          "id": "2S5zPHcduyNfdB8dM7PECC",
          "type": "track",
          "uri": "spotify:track:2S5zPHcduyNfdB8dM7PECC"
        },
        "name": "Wth>You",
        "preview_url": "https://p.scdn.co/mp3-preview/8f36cabe73805c221b8a05691b1b694c1eab5c6f?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 11,
        "type": "track",
        "uri": "spotify:track:0vSAsph1vdB1zN1OJR3lHy"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          }
        ],
        "disc_number": 1,
        "duration_ms": 29400,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/1fQ8GKT2XwnRdRMUrhMyfT"
        },
        "href": "https://api.spotify.com/v1/tracks/1fQ8GKT2XwnRdRMUrhMyfT",
        "id": "1fQ8GKT2XwnRdRMUrhMyfT",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/0GmF7d6rx0N4wOCJGFO3KW"
          },
          "href": "https://api.spotify.com/v1/tracks/0GmF7d6rx0N4wOCJGFO3KW",
          "id": "0GmF7d6rx0N4wOCJGFO3KW",
          "type": "track",
          "uri": "spotify:track:0GmF7d6rx0N4wOCJGFO3KW"
        },
        "name": "Ntr\\Mssion",
        "preview_url": "https://p.scdn.co/mp3-preview/99f766e95f12e31f17206dbd308ca460d9e8a29e?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 12,
        "type": "track",
        "uri": "spotify:track:1fQ8GKT2XwnRdRMUrhMyfT"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/3W9SDpMLYOSVYn5zIqr90j"
            },
            "href": "https://api.spotify.com/v1/artists/3W9SDpMLYOSVYn5zIqr90j",
            "id": "3W9SDpMLYOSVYn5zIqr90j",
            "name": "Rasco",
            "type": "artist",
            "uri": "spotify:artist:3W9SDpMLYOSVYn5zIqr90j"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/7dGfoIWAb0h9eGpl3vEkVo"
            },
            "href": "https://api.spotify.com/v1/artists/7dGfoIWAb0h9eGpl3vEkVo",
            "id": "7dGfoIWAb0h9eGpl3vEkVo",
            "name": "Planet Asia",
            "type": "artist",
            "uri": "spotify:artist:7dGfoIWAb0h9eGpl3vEkVo"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/5ZovxJNFbEPDVZCVslGIlP"
            },
            "href": "https://api.spotify.com/v1/artists/5ZovxJNFbEPDVZCVslGIlP",
            "id": "5ZovxJNFbEPDVZCVslGIlP",
            "name": "Cheapshot",
            "type": "artist",
            "uri": "spotify:artist:5ZovxJNFbEPDVZCVslGIlP"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6GAn8bdLKsnKi8U3IGNEn1"
            },
            "href": "https://api.spotify.com/v1/artists/6GAn8bdLKsnKi8U3IGNEn1",
            "id": "6GAn8bdLKsnKi8U3IGNEn1",
            "name": "Jubacca",
            "type": "artist",
            "uri": "spotify:artist:6GAn8bdLKsnKi8U3IGNEn1"
          }
        ],
        "disc_number": 1,
        "duration_ms": 206346,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/1Vz8DpQYciyM1gdGtwqVg2"
        },
        "href": "https://api.spotify.com/v1/tracks/1Vz8DpQYciyM1gdGtwqVg2",
        "id": "1Vz8DpQYciyM1gdGtwqVg2",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/1lFngXBWWoQB8dZwA8e5Ff"
          },
          "href": "https://api.spotify.com/v1/tracks/1lFngXBWWoQB8dZwA8e5Ff",
          "id": "1lFngXBWWoQB8dZwA8e5Ff",
          "type": "track",
          "uri": "spotify:track:1lFngXBWWoQB8dZwA8e5Ff"
        },
        "name": "PPr:Kut",
        "preview_url": "https://p.scdn.co/mp3-preview/0c27c1d4b6ca51ecef08cbcdecab6d707ca79b36?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 13,
        "type": "track",
        "uri": "spotify:track:1Vz8DpQYciyM1gdGtwqVg2"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/4Zz1RuMOwTXPsTGSb6O6vJ"
            },
            "href": "https://api.spotify.com/v1/artists/4Zz1RuMOwTXPsTGSb6O6vJ",
            "id": "4Zz1RuMOwTXPsTGSb6O6vJ",
            "name": "Phoenix Orion",
            "type": "artist",
            "uri": "spotify:artist:4Zz1RuMOwTXPsTGSb6O6vJ"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6YYaqU1s1LSJuhzxYrYXNq"
            },
            "href": "https://api.spotify.com/v1/artists/6YYaqU1s1LSJuhzxYrYXNq",
            "id": "6YYaqU1s1LSJuhzxYrYXNq",
            "name": "Backyard Bangers",
            "type": "artist",
            "uri": "spotify:artist:6YYaqU1s1LSJuhzxYrYXNq"
          }
        ],
        "disc_number": 1,
        "duration_ms": 193400,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/1VXt7X8M9sHvdeNI7GUuYJ"
        },
        "href": "https://api.spotify.com/v1/tracks/1VXt7X8M9sHvdeNI7GUuYJ",
        "id": "1VXt7X8M9sHvdeNI7GUuYJ",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/4mMzSoDkdsExAkIpl5Jgey"
          },
          "href": "https://api.spotify.com/v1/tracks/4mMzSoDkdsExAkIpl5Jgey",
          "id": "4mMzSoDkdsExAkIpl5Jgey",
          "type": "track",
          "uri": "spotify:track:4mMzSoDkdsExAkIpl5Jgey"
        },
        "name": "Rnw@y",
        "preview_url": "https://p.scdn.co/mp3-preview/fa7ca96c95f06be4b40de02013ab9e28856f4081?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 14,
        "type": "track",
        "uri": "spotify:track:1VXt7X8M9sHvdeNI7GUuYJ"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/33x1juS3GMXmg2USPcriOa"
            },
            "href": "https://api.spotify.com/v1/artists/33x1juS3GMXmg2USPcriOa",
            "id": "33x1juS3GMXmg2USPcriOa",
            "name": "Kelli Ali",
            "type": "artist",
            "uri": "spotify:artist:33x1juS3GMXmg2USPcriOa"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/0IVFf6Cg0XBPOFVNmOf59Z"
            },
            "href": "https://api.spotify.com/v1/artists/0IVFf6Cg0XBPOFVNmOf59Z",
            "id": "0IVFf6Cg0XBPOFVNmOf59Z",
            "name": "Mickey Petralia",
            "type": "artist",
            "uri": "spotify:artist:0IVFf6Cg0XBPOFVNmOf59Z"
          }
        ],
        "disc_number": 1,
        "duration_ms": 258133,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/1utX6NphyZRVzF2kI3eq42"
        },
        "href": "https://api.spotify.com/v1/tracks/1utX6NphyZRVzF2kI3eq42",
        "id": "1utX6NphyZRVzF2kI3eq42",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/4hQYCCSzI1YJYymBvvbDMn"
          },
          "href": "https://api.spotify.com/v1/tracks/4hQYCCSzI1YJYymBvvbDMn",
          "id": "4hQYCCSzI1YJYymBvvbDMn",
          "type": "track",
          "uri": "spotify:track:4hQYCCSzI1YJYymBvvbDMn"
        },
        "name": "My<Dsmbr",
        "preview_url": "https://p.scdn.co/mp3-preview/b0e4cca4110c9e95f6b0f57acca06f6292edba0d?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 15,
        "type": "track",
        "uri": "spotify:track:1utX6NphyZRVzF2kI3eq42"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/07Zc768NRSAiirmBGDOksm"
            },
            "href": "https://api.spotify.com/v1/artists/07Zc768NRSAiirmBGDOksm",
            "id": "07Zc768NRSAiirmBGDOksm",
            "name": "Stef Carpenter",
            "type": "artist",
            "uri": "spotify:artist:07Zc768NRSAiirmBGDOksm"
          }
        ],
        "disc_number": 1,
        "duration_ms": 10026,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/1iAv8iIqA0xNGAQgJoAukT"
        },
        "href": "https://api.spotify.com/v1/tracks/1iAv8iIqA0xNGAQgJoAukT",
        "id": "1iAv8iIqA0xNGAQgJoAukT",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/1Uklm158zBrGrDLM88FZti"
          },
          "href": "https://api.spotify.com/v1/tracks/1Uklm158zBrGrDLM88FZti",
          "id": "1Uklm158zBrGrDLM88FZti",
          "type": "track",
          "uri": "spotify:track:1Uklm158zBrGrDLM88FZti"
        },
        "name": "Stef",
        "preview_url": "https://p.scdn.co/mp3-preview/625d97b3bdd81f21f045acea25d47ee8a006b48d?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 16,
        "type": "track",
        "uri": "spotify:track:1iAv8iIqA0xNGAQgJoAukT"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/0fI7XTbV15bFnDfievQtmD"
            },
            "href": "https://api.spotify.com/v1/artists/0fI7XTbV15bFnDfievQtmD",
            "id": "0fI7XTbV15bFnDfievQtmD",
            "name": "Josh Abraham",
            "type": "artist",
            "uri": "spotify:artist:0fI7XTbV15bFnDfievQtmD"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6xBZgSMsnKVmaAxzWEwMSD"
            },
            "href": "https://api.spotify.com/v1/artists/6xBZgSMsnKVmaAxzWEwMSD",
            "id": "6xBZgSMsnKVmaAxzWEwMSD",
            "name": "Mike Shinoda",
            "type": "artist",
            "uri": "spotify:artist:6xBZgSMsnKVmaAxzWEwMSD"
          }
        ],
        "disc_number": 1,
        "duration_ms": 222440,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/5tavbOJXnynWlwijfausey"
        },
        "href": "https://api.spotify.com/v1/tracks/5tavbOJXnynWlwijfausey",
        "id": "5tavbOJXnynWlwijfausey",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/1fglrqrJuT8CUs5PJAGQl5"
          },
          "href": "https://api.spotify.com/v1/tracks/1fglrqrJuT8CUs5PJAGQl5",
          "id": "1fglrqrJuT8CUs5PJAGQl5",
          "type": "track",
          "uri": "spotify:track:1fglrqrJuT8CUs5PJAGQl5"
        },
        "name": "By_Myslf",
        "preview_url": "https://p.scdn.co/mp3-preview/fade89a299ccb1e5ba122d7818a3c657a03ed95a?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 17,
        "type": "track",
        "uri": "spotify:track:5tavbOJXnynWlwijfausey"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6glaZ3qSwdXqln8g8JpYzr"
            },
            "href": "https://api.spotify.com/v1/artists/6glaZ3qSwdXqln8g8JpYzr",
            "id": "6glaZ3qSwdXqln8g8JpYzr",
            "name": "Chairman Hahn",
            "type": "artist",
            "uri": "spotify:artist:6glaZ3qSwdXqln8g8JpYzr"
          }
        ],
        "disc_number": 1,
        "duration_ms": 152533,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/0KY2dzbnOUqsGVfIpKLkHi"
        },
        "href": "https://api.spotify.com/v1/tracks/0KY2dzbnOUqsGVfIpKLkHi",
        "id": "0KY2dzbnOUqsGVfIpKLkHi",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/1csSTytg32ZP29aHqBiwTn"
          },
          "href": "https://api.spotify.com/v1/tracks/1csSTytg32ZP29aHqBiwTn",
          "id": "1csSTytg32ZP29aHqBiwTn",
          "type": "track",
          "uri": "spotify:track:1csSTytg32ZP29aHqBiwTn"
        },
        "name": "Kyur4 Th Ich",
        "preview_url": "https://p.scdn.co/mp3-preview/1e2fa730281d32d4147a3343dca204cf8e092d8f?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 18,
        "type": "track",
        "uri": "spotify:track:0KY2dzbnOUqsGVfIpKLkHi"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/1VW5tZ9pmSb2rG0GmSELwW"
            },
            "href": "https://api.spotify.com/v1/artists/1VW5tZ9pmSb2rG0GmSELwW",
            "id": "1VW5tZ9pmSb2rG0GmSELwW",
            "name": "Jonathan Davis",
            "type": "artist",
            "uri": "spotify:artist:1VW5tZ9pmSb2rG0GmSELwW"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/1Wmcb9h61fI7cmTAd2henr"
            },
            "href": "https://api.spotify.com/v1/artists/1Wmcb9h61fI7cmTAd2henr",
            "id": "1Wmcb9h61fI7cmTAd2henr",
            "name": "The Humble Brothers",
            "type": "artist",
            "uri": "spotify:artist:1Wmcb9h61fI7cmTAd2henr"
          }
        ],
        "disc_number": 1,
        "duration_ms": 346040,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/6BcF4tXjinsT9NBYFoxS6t"
        },
        "href": "https://api.spotify.com/v1/tracks/6BcF4tXjinsT9NBYFoxS6t",
        "id": "6BcF4tXjinsT9NBYFoxS6t",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/0ua37G8zWZ3E8gKjLGTZJc"
          },
          "href": "https://api.spotify.com/v1/tracks/0ua37G8zWZ3E8gKjLGTZJc",
          "id": "0ua37G8zWZ3E8gKjLGTZJc",
          "type": "track",
          "uri": "spotify:track:0ua37G8zWZ3E8gKjLGTZJc"
        },
        "name": "1stp Klosr",
        "preview_url": "https://p.scdn.co/mp3-preview/7fba996770a9380ef94db1ebd00c039eededbda9?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 19,
        "type": "track",
        "uri": "spotify:track:6BcF4tXjinsT9NBYFoxS6t"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/2t2XKfWKLXpFIjFwy1K8wx"
            },
            "href": "https://api.spotify.com/v1/artists/2t2XKfWKLXpFIjFwy1K8wx",
            "id": "2t2XKfWKLXpFIjFwy1K8wx",
            "name": "Aaron Lewis",
            "type": "artist",
            "uri": "spotify:artist:2t2XKfWKLXpFIjFwy1K8wx"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6xBZgSMsnKVmaAxzWEwMSD"
            },
            "href": "https://api.spotify.com/v1/artists/6xBZgSMsnKVmaAxzWEwMSD",
            "id": "6xBZgSMsnKVmaAxzWEwMSD",
            "name": "Mike Shinoda",
            "type": "artist",
            "uri": "spotify:artist:6xBZgSMsnKVmaAxzWEwMSD"
          }
        ],
        "disc_number": 1,
        "duration_ms": 340253,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/7glG2aRcS9PsbBDiSbsliO"
        },
        "href": "https://api.spotify.com/v1/tracks/7glG2aRcS9PsbBDiSbsliO",
        "id": "7glG2aRcS9PsbBDiSbsliO",
        "is_local": false,
        "is_playable": true,
        "linked_from": {
          "external_urls": {
            "spotify": "https://open.spotify.com/track/00PT0nOo96i5EVJ1NhpdK0"
          },
          "href": "https://api.spotify.com/v1/tracks/00PT0nOo96i5EVJ1NhpdK0",
          "id": "00PT0nOo96i5EVJ1NhpdK0",
          "type": "track",
          "uri": "spotify:track:00PT0nOo96i5EVJ1NhpdK0"
        },
        "name": "Krwlng",
        "preview_url": "https://p.scdn.co/mp3-preview/763904ecd54bca662c68c4e0121288df839f4be0?cid=774b29d4f13844c495f206cafdad9c86",
        "track_number": 20,
        "type": "track",
        "uri": "spotify:track:7glG2aRcS9PsbBDiSbsliO"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          }
        ],
        "disc_number": 1,
        "duration_ms": 222240,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/7ETIpeMVkmcTyCNUrm4arS"
        },
        "href": "https://api.spotify.com/v1/tracks/7ETIpeMVkmcTyCNUrm4arS",
        "id": "7ETIpeMVkmcTyCNUrm4arS",
        "is_local": false,
        "is_playable": false,
        "name": "One Step Closer - Live LP Underground Tour 2003",
        "preview_url": null,
        "restrictions": {
          "reason": "market"
        },
        "track_number": 21,
        "type": "track",
        "uri": "spotify:track:7ETIpeMVkmcTyCNUrm4arS"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          },
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/2VYQTNDsvvKN9wmU5W7xpj"
            },
            "href": "https://api.spotify.com/v1/artists/2VYQTNDsvvKN9wmU5W7xpj",
            "id": "2VYQTNDsvvKN9wmU5W7xpj",
            "name": "Marilyn Manson",
            "type": "artist",
            "uri": "spotify:artist:2VYQTNDsvvKN9wmU5W7xpj"
          }
        ],
        "disc_number": 1,
        "duration_ms": 266013,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/4HGGQh0oyKiFYNDvln3mlg"
        },
        "href": "https://api.spotify.com/v1/tracks/4HGGQh0oyKiFYNDvln3mlg",
        "id": "4HGGQh0oyKiFYNDvln3mlg",
        "is_local": false,
        "is_playable": false,
        "name": "Buy Myself - Manson Remix Non-Album Track",
        "preview_url": null,
        "restrictions": {
          "reason": "market"
        },
        "track_number": 22,
        "type": "track",
        "uri": "spotify:track:4HGGQh0oyKiFYNDvln3mlg"
      },
      {
        "artists": [
          {
            "external_urls": {
              "spotify": "https://open.spotify.com/artist/6XyY86QOPPrYVGvF9ch6wz"
            },
            "href": "https://api.spotify.com/v1/artists/6XyY86QOPPrYVGvF9ch6wz",
            "id": "6XyY86QOPPrYVGvF9ch6wz",
            "name": "Linkin Park",
            "type": "artist",
            "uri": "spotify:artist:6XyY86QOPPrYVGvF9ch6wz"
          }
        ],
        "disc_number": 1,
        "duration_ms": 267280,
        "explicit": false,
        "external_urls": {
          "spotify": "https://open.spotify.com/track/3XnaERXkQCk6EpWTWwcRX5"
        },
        "href": "https://api.spotify.com/v1/tracks/3XnaERXkQCk6EpWTWwcRX5",
        "id": "3XnaERXkQCk6EpWTWwcRX5",
        "is_local": false,
        "is_playable": false,
        "name": "My December - Live Project Rev. 2002",
        "preview_url": null,
        "restrictions": {
          "reason": "market"
        },
        "track_number": 23,
        "type": "track",
        "uri": "spotify:track:3XnaERXkQCk6EpWTWwcRX5"
      }
    ],
    "limit": 50,
    "next": null,
    "offset": 0,
    "previous": null,
    "total": 23
  },
  "type": "album",
  "uri": "spotify:album:1OZ7GnepAtCfGivyYPCWUM"
}

Thanks for the package and support!

If you mean to get al album's biggest cover photo, you can do it so using collection:
$cover = collect($album->images)->first();
$cover->url;

I will think and provide a better, eloquent way to retrieve this data using directly chained methods. :D


job recurring

Hi there,
I have scheduled a job for daily use and works fine, however, there is a need to run some other jobs weekly, monthly and yearly.
Is there this functionality?
For example, can I schedule the below jobs? Will be executed?
$scheduler->php(DIR.'/assets/scripts/dailyaggregation.php')->daily();
$scheduler->php(DIR.'/assets/scripts/weeklyaggregation.php')->weekly();
$scheduler->php(DIR.'/assets/scripts/monthlyaggregation.php')->monthly();
$scheduler->php(DIR.'/assets/scripts/yearlyaggregation.php')->yearly();
Thank you

Yes, they will be executed


LDO CI Update

[x] Added an option to the LDO Makefile to specify the array size
[x] Run the CI test workflow at different array sizes (default, 50, 100, 150)

We need to add expected DRC reports for the largers LDOs, or disable the report matching for LDO completely @harshkhandeparkar

We need to add expected DRC reports for the largers LDOs, or disable the report matching for LDO completely @harshkhandeparkar

The DRC is failing for the larger one, I am not sure why. Checking that  now.


Enable Custom Repo URL for Rancher Charts ClusterRepo

Fix Cluster Tools hanging forever when 'rancher-charts' Helm repository URL is changed:
The Rancher Dashboard UI lets you change the URL of the 'rancher-charts' Helm repository to an arbitrary value. But if you do so, the Cluster Tools (bottom left corner button) hangs forever in the 'Loading…' phase, since the UI only considers URLs ending with rancher.io as valid.
Technical details:
This loc here fails, due to rancherCatalog being null: https://github.com/rancher/dashboard/blob/de1a20415aa54c212a88a3b1f0deddd579cb9013/pages/c/_cluster/explorer/tools/index.vue#L119
rancherCatalog is null since no entry in the array fullfils this find condition: https://github.com/rancher/dashboard/blob/de1a20415aa54c212a88a3b1f0deddd579cb9013/pages/c/_cluster/explorer/tools/index.vue#L87

Both rancher and rancher partner chart repos should always come from rancher sources, so unfortunately we can't support use cases that alter this.


Infra mostly deployed + bing key as ACA secret + Keyvault infra + API endpoint deployed

Current state:

Infra is mostly deployed
Removed all Cosmos infra
Bing secret is read from Bing and injected into API container using ACA secret (directly, without using Keyvault)
Keyvault is also provisioned and Bing key successfully stored in Keyvault with permissions setup but the API container is not reading the key from there at the moment
API image is built and registered to ACA and API endpoint deployed at /get_article
AI Search index is populated with sample contoso data

Note: The azd up currently fails with the following error message despite the API container being successfully deployed so it's unclear what's happening. I tried to run azd up with --debug but it didn't help.
ERROR: error executing step command 'deploy --all': failed running post hooks: 'postdeploy' hook failed with exit code: '1', Path: '/tmp/azd-postdeploy-1476688786.sh'. : exit code: 1, stdout: , stderr: Error: accepts 2 arg(s), received 1

What remains to be done:

Fix that weird azd up error
Test API endpoint /get_article (was getting late and didn't get to this)
Configure ACA infra for the web app
Inject API endpoint into the web container
End to end test for the web app querying the API
Github action to automate deployment
Wait for Christopher's answer to see if we go with ACA secrets or Keyvault or something else

Thanks @cedricvidal I'm going to merge into the branch


[CI] Release pipeline test case 7

This is to test on scenario that deleting the whole extension.
Job "LintOnModifiedExtension" should skip to do nothing and pass.

This checklist is used to make sure that common guidelines for a pull request are followed.

For new extensions:

[ ] My extension description/summary conforms to the Extension Summary Guidelines.

If this PR is for a new extension or change to an existing extension, use the following to try out the changes in this PR:
docker run -it microsoft/azure-cli:latest
export EXT=<NAME>
pip install --upgrade --target ~/.azure/cliextensions/$EXT "git+https://github.com/haroldrandom/azure-cli-extensions.git@release-pipeline-test-case-7#subdirectory=src/$EXT&egg=$EXT"


attr-name-style isn't template friendly

The current options for attr-name-style don't work well for angular and thymeleaf templates where characters like : and _ are allowed.
Perhaps another choice that allows these characters, or another option to support template languages that are syntactically similar to html.

I'm also struggling with this.  "lowercase" seems to fail on things like aria-label, etc. which is to be expected, but when you switch to "dash" the error is:
Fatal error: op is not defined which is an altogether different error than if you throw in a random format string.  In other words it seems like a bug more than a doc problem.
It seems like either allowing for error levels (non-build-breaking warnings for attr-name-style) or regex or an array of allowed keyword styles or something.  As it is I had no option but to switch to false.

Google's Polymer Web Components is another example. It uses the following syntax to bind to attributes:

{{mainLabel}}

attr-name-ignore-regex mostly solves this issue. Between that and the fact that attr-name-style itself can now accept a RegExp, I would say this is solved.


Fatal error when Fetching the models

Hello!
I've got into the issue on the stage of Fetching the models from Web, please see the screenshot:

Hi,
There should be some extra info about this problem in the log file, could you attach that to this thread, please? You can find it by pasting this into the Windows explorer: %LOCALAPPDATA%/opuscat/logs.

Thank you for the advice, please see the log file attached.
opuscat_log20230130.txt

According to the log, there seems to be a certificate problem. However, I can't reproduce the error on my computers, so the certificate should be fine. Could you go to the following address in your browser and see if the browser reports a problem with the certificate: https://a3s.fi/Tatoeba-MT-models/released-model-languages.txt?

Ok, so that confirms that the underlying reason is a certificate issue. The site that the link leads to is safe and it has a correct, valid certificate. There might be something wrong in your computer that causes the certificate to be rejected. I'm not an expert on certificate issues, but one cause might be that the system time in your computer is incorrect.


unsupported gpu architecture?

It seems that the half-precision stuff doesn't compile for GTX Titan X cards, architecture=52. In particular it doesn't seem to like the half precision stuff.
One option could be to prevent half-precision compilation for this architecture. Another could be to simply make a list of unsupported architectures somewhere.
What do you all think?

Half precision is only available from Pascal (sm=60) and up.

I see. Would it be sufficient to add some logic to the CMakeLists.txt to get it not to try to compile for half precision when the architecture is lower than 60? Otherwise I think we need to specify an architecture requirement in our documentation


System-1: System testing: Updates to g_protocol_test.go

Added encoding type in gnmi get request for the below error:
g_protocol_test.go:60: gnmi.Get failed: rpc error: code = Unimplemented desc = Encoding not supported.

Pull Request Functional Test Report for #2855 / 97d7840b55d95b0bc47a4519aea6a5a5ea67dc26
Virtual Devices

Device
Test
Test Documentation
Job
Raw Log

Arista cEOS

System-1: System testing

Cisco 8000E

System-1: System testing

Cisco XRd

System-1: System testing

Juniper ncPTX

System-1: System testing

Nokia SR Linux

System-1: System testing

Openconfig Lemming

System-1: System testing

Hardware Devices

Device
Test
Test Documentation
Raw Log

Arista 7808

System-1: System testing

Cisco 8808

System-1: System testing

Juniper PTX10008

System-1: System testing

Nokia 7250 IXR-10e

System-1: System testing

Help

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 54.484%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1847

Relevant Lines:
3390

💛  - Coveralls

Looks good

Thanks Ram!


The result in keras_vision_model_MobileNet_test is too small to compare

In #1651 we found that the result of the test is too small numerically. All of the numbers are less than 1e-10, so the comparison between backends is not reasonable because we set the error range to 1e-6.
After #1667 being landed, we can also compile and run the model on VMLA. It's good to fix the comparison issue. Otherwise we are just testing if the model is able to run on backends.
Note: I tried to make the input range within [0, 255] but seems not working.

I can't make @rybakov to assignees for now, so mention it here.

Thank you HanHan, I am working on it.


Need to add Zawrs extension

Documentation is in the RISC-V Instruction Set Manual Volume 1

Added in PR https://github.com/sparcians/mavis/pull/27

Done


[BUG] Test 'test_setting_toleration_extra' fails to check the updated tolerations.

Describe the bug
test_setting_toleration_extra fails to check that the longhorn components are updated with tolerations.
To Reproduce
Steps to reproduce the behavior:

Run the integration test test_setting_toleration_extra in a cluster of 1 etcd/control plane and 3 wroker nodes.
The test fails with below error

    def test_setting_toleration_extra(core_api, apps_api):  # NOQA
        """
        Steps:
        1. Set Kubernetes Taint Toleration to:
           `ex.com/foobar:NoExecute;ex.com/foobar:NoSchedule`
        2. Verify that all components have the 2 tolerations
           `ex.com/foobar:NoExecute; ex.com/foobar:NoSchedule`
        3. Set Kubernetes Taint Toleration to:
           `node-role.kubernetes.io/controlplane=true:NoSchedule`
        4. Verify that all components have the the toleration
           `node-role.kubernetes.io/controlplane=true:NoSchedule`
           and don't have the 2 tolerations
           `ex.com/foobar:NoExecute;ex.com/foobar:NoSchedule`
        5. Set Kubernetes Taint Toleration to special value:
           `:`
        6. Verify that all components have the toleration with
           `operator: Exists` and other field of the toleration are empty.
           Verify that all components don't have the toleration
           `node-role.kubernetes.io/controlplane=true:NoSchedule`
        7.
  RequestsDependencyWarning)

The test passed for build 188, 189, 190


I can not access to 'this' context in the channelName computed method.

I can not access to 'this' context in the channelName computed method.
To Reproduce
Steps to reproduce the behaviour:
I have a VueJS app, I added the follow in my  main.js file
Vue.use(ActionCableVue, {
  debug: true,
  debugLevel: 'error',
  connectionUrl: `ws://${process.env.VUE_APP_BASE_BACKEND_DOMAIN}/cable?token=${token}`,
  connectImmediately: true,
});

Then I created a component like this:
  export default {
    name: 'MyComponent',

    props: {
      room: {
        type: String,
        default: ""
      }
    },

    data() {
      return {
        state: 'none'
      }
    },

    channels: {
      computed: [{
        channelName() {
          return this.room
        },
        connected() {
          console.log("Connected")
        },
        rejected() {
          console.log("Connection Rejected")
        },
        received(data) {
          this.state = data["state"]
        }
      }]
    },

    mounted() {
      this.$cable.subscribe({
        channel: 'MyChannel',
        room: this.room
      })
    }
  }

When I try to get this.room it return 'Undefined'
Expected behaviour
Like the example 3, I would like to pass this.room like channel name.
I'm using the las version: 2.1.2
Additional context
I would like to render this component many times with different rooms on the same page when I render this component one time, it works properly.

Hi @Jinara! I just fixed this. Kindly update to v2.1.3.

@mclintprojects Similar problem here. I've got a component in a loop, and this.id always returns the value of the last item in the loop. It seems like the channels method is not properly maintaining local context.
channels: {
    LikeChannel: {
      connected() {
        console.log(this.id)
      }
    }
  }

  mounted() {
    this.$cable.subscribe({
      channel: 'LikeChannel',
      id: this.id
    })
  },

Ahh. It seems like I did not properly understand this issue. I do now and I'll look into publishing a fix as soon as I can.

@mclintprojects you are the freaking man. Thank you so much, it works great otherwise!

@Petercopter Kindly use this build directly in your project and let me if it fixes you and @Jinara's issue.

@mclintprojects Yep! That did the trick. this is now referring to the correct context while in a loop. Thanks for the quick turnaround.

Alright, thanks! I'll publish a patch to NPM in a few.

@mclintprojects 2.1.4 did the trick, thank you!

"actioncable-vue": "^2.3.2",

this is undefined


Galician, Català & Spanish UI

Hey there!
I'm adding translations for the UI component in Galician, Català and Spanish.
How could we improve word stemming for them?

Thanks @pvillaverde! ❤
For stemming, Pagefind uses https://snowballstem.org/algorithms/ (GitHub) so improving stemming would likely have to done on that end, unless some other approach was taken. I haven't done a deep dive there yet, so I can't say how involved that would be

Translations released in v0.10.6, thanks again!

 Let me know if you need any update anytime! And thanks for the link of the algorithms. I've added it to the backlog to check it when I have time! :-)


Download sometimes hangs on Windows 10

As reported here and here, the installer can hang and stop downloading. Investigate this.

It is possible that the sockFile is timing out, but this leaves pSockFileWorking set to true, so the thread never triggers another download.
Instead, perhaps have the thread directly monitor the socket, and kick off a new connection if the socket closes.
Not clear from the docs how you actually check whether a socket has closed though…


Implement Real-time Face Recognition in main.py

Description
In the current project, we have identified the need to implement real-time face recognition functionality in the main.py file. This feature would enable the system to perform face recognition on video frames captured from a camera source and display the results in real time.
Expected behavior

The real_time_detection function in main.py should capture video from a camera source.
For each frame, the system should perform face recognition using the trained model.
The recognized faces should be annotated on the frame.
The user should be able to press 'q' to quit the real-time detection.

Additional context

Assume that the code for face recognition and model loading is already implemented in the project.
Comments indicating the structure and functionality of the real_time_detection function are present in the code.
Refer to # TODO 1  in main.py to locate the function you need to modify.

Sir I would like to contribute to this project . sir can you please assign this to me?

Sure, Go ahead @meenakshi3151

sir, can I work on this?

@harmonicfunc You need to request it from Contrihub  website as well.
@meenakshi3151 Any progress?

Yes sir I have written the function yesterday currently getting some errors and trying to resolve it .

Yes sir I have written the function yesterday currently getting some errors and trying to resolve it .

Sure! Be mindful of the timer for the issue.


Is it possible in Field Arrays to not allow selecting the same dropdown item more than once?

I am using redux form Field Arrays to dynamically build a form.
I have a dropdown field ${protein}.title below, is there a way I can stop the same select option from being selected more than once?
const renderProteinQuestions = ({ fields, meta: { touched, error, submitFailed }, methods, proteinItems }) => (

            <button className="ui icon button" type="button" onClick={() => fields.push({})}>
                 Add Protein Question
            </button>

            {(touched || submitFailed) && error && {error}}

            {fields.map((protein, index) =>

                                    <Field
                                        name={`${protein}.title`} component="select"
                                        className="select-control ui selection dropdown2">

                                        {proteinItems.map((protein, proteinIndex) => (
                                            <option key={protein.id} value={protein.id}>{protein.title}</option>

                                        ))}
                                    </Field>

)}

);

Certainly, but please note that StackOverflow is the appropriate site to ask usage questions.
We reserve GitHub to bugs and feature requests only.


Creds from credentials file must have precedence over creds from env var

What this PR does / why we need it:
While identifying the creds to use the credentials specified in the environment variable takes precedence over the ones specified in the credentials file. This is because in the creds finder function we are checking if the creds are set as environment variables & returning the value before checking if they are already available in the map where we store the creds passed using credentials file.
Which issue(s) this PR fixes:

Fixes #2798
What type of PR is this?
/kind bug
None

Documentation:

None

/retest-required

/hold
We're getting very close to the release and given our proximity to the release, I don't feel comfortable merging this. Thank you for the PR @akash-gautam, but we'll have to consider it after the v1.7 release.

/remove-lifecycle stale

#2991 has been superseding this PR and now is merged.
/close

The issue has been fixed by #2991
/close


[Service Bus] Rename ServiceBusManagementClient class to ServiceBusAdministrationClient

The naming guidelines for a client that does resource management but not via the ARM apis, is that it should use the term Administration and not Management. See https://github.com/Azure/azure-sdk/issues/1360 for more details
For this reason, the ServiceBusManagementClient class in the new Service Bus package which is currently in preview should be renamed to ServiceBusAdministrationClient

It has already been renamed.


Add log archiving family

Add family which incorporates tasks for archiving logs to ecfs.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


integration_events: Restore checkbox in events modal.

This adds a critical missing .rendered-checkbox class to the integration events modal, restoring checkboxes in that area.

Screenshots and screen captures:

Before
After

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

Merged, thanks @karlstolley! I guess this is a class of bug we could purge if we were including the settings_checkbox in more places rather than hand-copying its HTML.


Add scripts and resources to install recaf as GNU/Linux app

What's new
This PR adds the necessary scripts to install Recaf as a GUI and CLI application on GNU/Linux systems. I also wrote an AUR package for Recaf, but am waiting on this PR to be accepted to release it.

based

I'm no linux user so I don't have any opinions on the subject. Just wondering what the setup is that requires this to be in the main repo. I was under the assumption the AUR-side of things could include these items:
For example:

https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=recaf

I didn't realize there was already an AUR package. This PR is still valid for installing on non pacman based systems or installing beta and older releases. It would also be nice to not have the desktop and start files not hard coded in the AUR package.

closed bc windows users