text:
# UnitySteer

## General notes

Steering behaviors for Unity, initially based on OpenSteer. Please read License.txt before using in your projects.

Starting on 2.5, UnitySteer depends on TickedPriorityQueue. The latest  library is now included on this repository.

Perusing the latest changelog is strongly recommended.

If you're looking for a specific version, you can look at the project tags:

* [UnitySteer 2.7](https://github.com/ricardojmendez/UnitySteer/tree/v2.7)
* [UnitySteer 2.5.1](https://github.com/ricardojmendez/UnitySteer/tree/v2.5.1)

## Stable and alpha versions

The latest stable 2.x release is [UnitySteer 2.7](https://github.com/ricardojmendez/UnitySteer/tree/v2.7)

You are currently looking at UnitySteer 3.0 *alpha*. Make sure you catch up with [the latest UnitySteer blogposts](http://arges-systems.com/blog/category/unitysteer/), as well as reading the changelog, to be aware of the latest changes.

## UnitySteer and iOS

If you are using UnitySteer on iOS, bear in mind that you may need to change
LINQ calls, since Unity has a penchant for not AOT'ing them properly.

repository: mitien/UnitySteer

repo_name: mitien/UnitySteer


text:
---
layout: post
title: 【搬运】CNN评中国股市
category: blog
description: 中国股市岌岌可危？
permalink: /p/549378
---

# Why China's crazy stock market is getting scary

**中国疯狂的股市为何变得如此令人生畏**

中英翻译由本人所做。原文链接：
[http://money.cnn.com/2015/07/02/investing/china-stock-markets/index.html](http://money.cnn.com/2015/07/02/investing/china-stock-markets/index.html)

_由于一些样式无法显示，我将页面做了重排，内容保持不变。此翻译于早前发布在我的新浪博客上。_

> Fill in the blank: In recent weeks, China's stock markets have **__**.
>
> A) Wiped out as much as $2 trillion of investors' wealth.
>
> B) Swung by as much as 10% in a matter of hours.
>
> C) Scared the living daylights out of millions of shareholders.
>
> D) All of the above.

填空题：中国股市在近几周内，**__**。

A.投资者的财富蒸发了2万亿美元

B.在数小时内震荡幅度达10%。

C.将上百万的股东吓了个半死

D.以上全部。

Yes, correct! The answer is "all of the above." China's stocks markets have been swinging wildly since the middle of last month. One minute shares are up 6%, the next they're down 5% and plunging into a bear market. The main Shanghai market lurched lower again Friday, losing 5.8% over an extremely volatile trading session.

是的，完全正确！答案是“以上全部”。自上月中旬起，中国的股票市场就经历着剧烈的震荡。股票一会涨达6%，一会又跌达5%，瞬间跳水由牛市转变为熊市。在周五，上海这一主要市场又遭突然下挫，在极其不稳定的一个交易时段内，市值减少了5.8%。

Here's what you need to know:

你需要知道以下事情:

1) First, relax -- at least for now. Unless you're reading this from China, you probably don't have much invested in these markets. Foreigners own just 1.5% of Chinese shares, according to Capital Economics. That number is growing, but only very gradually.

先放松——至少现在先别急。在这些市场中，你可能并未投资多少。——除非你身在中国。。据资本经济学（研究）公司（的数据），外国（投资者）仅仅持有了这些市场中1.5%的股份。这一数字是在增长，但是增长得十分缓慢。

2) For Chinese investors, however, it's been a very wild ride. The Shanghai Composite -- the world's third largest stock exchange if you add up the value of its companies -- has lost 24% since June 12. The bears are growling even louder on the smaller Shenzhen Composite, down roughly 30% in the same period.

然而对于中国投资者来说，这种震荡是相当疯狂的。全球第三大股票交易所——上海证券交易所（如果把它旗下的企业市值都算上的话）自6月12日以来，其内交易的股票市值已经蒸发了24%。在规模较小的深圳交易所，熊市程度更甚。其内的股票，在同期之内，跌了大约30%。

3) Right, but those markets are still up for the year? Yes, that's true. The sharp losses follow a long bull run. The Shanghai Composite is still up 20% since Jan 1.

是的。但是这些市场今年还是涨了啊？对，这是真的。熊市巨大的损失之后，紧接着就是一次强劲的牛市。与1月1日相比，上证中的股票还是涨了20%。

![](http://i2.cdn.turner.com/money/dam/assets/150702170003-china-charts-7-2-780x439.png)

4) Still, there's a lot of pain out there, especially among retail investors. Just 10% to 12% of Chinese households own shares, but a wave of newbie investors have flooded into the market this year. Brokers opened four million new accounts in a single week in April, according to BlackRock.

但是，这一过程仍然伴随着巨大的痛苦，特别是对于那些零售行业的投资者。仅有10%~12%的中国家庭炒股，但是今年，大批新进投资者涌入了市场。BlackRock的数据显示，仅在四月的一周之内，交易所的新开户数就达到了400万个。

 Here's the most compelling: Shares prices had got way ahead of economic growth -- now at its weakest since 2009 -- and company profits, which are actually lower than a year ago.

分析人士提出了不少理论解释这种泡沫破裂的现象。最令人信服的解释是，股票增长的速度大大快过经济的（实际）增长速度——现在的股票市场是自2009年以来最为虚弱的——企业盈利与去年相比实际也有所走低，这也是彼此彼此。

6) Particularly troubling is an explosion in margin trading. That's when investors buy stocks with borrowed money. When margin bets go sour, investors are forced to quickly pay back huge amounts of cash.

而最为棘手的问题则是“边际贸易”（通过中介借款购买股票的行为——见[http://www.investopedia.com/university/margin/margin1.asp](http://www.investopedia.com/university/margin/margin1.asp)）。当“边际赌注”（见[http://bet-types.com.au/margin-betting/](http://bet-types.com.au/margin-betting/)）出现问题时，投资者将不得不在短期内还回巨量现金。

7) Things could get much worse. According to Oxford Economics, shares may have to fall another 35% or so to bring them into line with long-term averages.

事情还可能更加恶化。牛津经济学杂志称，股票可能还会再跌大约35%，才能使得它们回到长期均衡的轨道上来。

8) Trouble in the stock market has the potential to ripple through the Chinese economy, the second biggest on the planet with trade ties to nearly every country. Another 30% fall would erase roughly $1 trillion in wealth. That could have a big impact far beyond China.

股票市场的问题有可能会影响整个中国经济——中国这一进行对外贸易的第二大经济体几乎联系着世上的每个国家。若是中国股价再下跌30%，会导致大约1万亿美元财富的蒸发。这会给其他国家带来巨大的冲击。

9) Beijing is worried and is trying to prevent panic. The central bank has already cut interest rates to a record low. Market regulators have tried to reassure investors by blaming "irresponsible internet hearsay" and critical commentaries for "disturbing market order."

北京对此十分担忧，并正在试图防止恐慌。中国央行已将利率降至有记录以来十分低的水平。市场的调节者试图将问题归咎为“不负责任的网络谣传”和“扰乱市场秩序”的批评家，帮助投资者重拾信心。

10) Regulators have also launched an investigation into possible market manipulation. Criminal cases will be referred to security authorities, they said.

同时，市场调节者也对可能存在的市场操纵的行为开始了调查。他们声称，若是具体情况涉及犯罪，将会将案件交由有关安全部门处理。

11) But official moves could simply pump more air into the bubble, risking an even bigger crash. Regulators further relaxed rules on margin trading Thursday.

但官方的举动可能仅仅是会增大泡沫，下次崩溃（破坏）更大的风险将会增大。在周四，市场的调节者再次放宽了边际贸易的规则。

Who gets burned when China's stock bubble bursts?

China's stock market is now worth over $10 trillion

_CNNMoney (Hong Kong) July 3, 2015:3:51 AM ET_

repository: duoduoeeee/tr-source

branch_name: refs/heads/master

extension: md

license_type: permissive

repo_name: duoduoeeee/tr-source


text:
# Module 1 - Project 1 - HTML & CSS Introduction

## Portfolio page

[Live site](https://av-portfolio-project.netlify.app)

### Description

This is the first project in the Reykjavik Academy of Web Development.
It is a responsive landing page concept for a portfolio website built in HTML5 and CSS, and some CSS animations, hover states on the links.

### Project includes:

- A hero `<section>` including a responsive headline and image.
- A divider `<div>` with a divider and paragraph.
- An about `<section>` with a paragraph.
- A project `<section>` with a list of projects.
- Each project is wrapped in an `<article>` element, which contains the project info with headline, paragraph, list items, links and image elements.
- The footer contains contact links with hover state transitions.
- Links have hover state.
- It uses a color palette.
- It uses a locally (licensed) font. (I know how to use Google fonts and Adobe)
- Uses BEM notation for the CSS.
- Played with CSS animations, transitions, transform properties, media queries.

### Project criteria fulfilled:

1.  [x] A `<header>` element containing a nav, with logo and anchor links
        to sections. Links have hover state with CSS animation.
2.  [x] The `<main>` element containing a few `<section>` elements, including paragraph, list, image and anchor elements.
3.  [x] The `<footer>` element containing contact links.
4.  [x] Use of color palette.
5.  [x] Use of Google fonts (uses local font).
6.  [x] Hover state for links.
7.  [x] Use BEM notation for the CSS.

license: MIT

branch_name: refs/heads/main


text:
# Import code coverage from supported CI servers
> Summary of the proposed change

Fetch code coverage data using the CI artifact API.

# References
> Link to supporting documentation, GitHub tickets, etc.

- [Bitrise](https://devcenter.bitrise.io/).
- [Buildkite](https://buildkite.com/docs/tutorials/getting-started).
- [CircleCI](https://circleci.com/docs/).
- [Jenkins](https://jenkins.io/doc/).

# Motivation
> What problem is this project solving?

Automatically collect code coverage metrics from various CI providers and build jobs.

# Goals
> Identify success metrics and measurable goals.

* CI can export coverage metric as an artifact.
* Exported artifacts are accessible via the CI's API.

# Non-Goals
> Identify what's not in scope.

Implementing code coverage artifact creation is out of scope because it depends on CI, job, code coverage tool and even programming language.

# Design
> Explain and diagram the technical design

`CI` → `Artifacts storage` → `API` → `Metrics app`

> Identify risks and edge cases

* The approach is sensitive to breaks/changes of CI artifacts storage or API server - the importing flow may require changes as well.

# API
> What will the proposed API look like?

Add a build step to export coverage metric as an artifact - so, later on, it is accessible via API from artifacts related to the build.

# Bitrise

## Deploy artifacts
Artifacts are deployed into bitrise.io with the help of the **Deploy to Bitrise.io** Step. Use the following steps to get generated files accessible within build:
1. Generate artifacts during one of the workflow steps.
2. Insert the Deploy to Bitrise.io Step AFTER the Step(s) that generate the artifacts.
3. Change the target directory path in the **Deploy directory or file path** field under the **Config** section of the step if required.
   For example `$BITRISE_SOURCE_DIR/build/` or `$BITRISE_SOURCE_DIR/coverage/`.

More information [here](https://devcenter.bitrise.io/builds/build-artifacts-online/).

## Create API Access Token
The authorization is required to communicate with Bitrise API. For this purpose, the user can generate a Personal access token.
1. On Bitrise navigate to your [Account settings](https://www.bitrise.io/me/profile) and click on the [Security tab](https://app.bitrise.io/me/profile#/security).
2. Scroll to the **Personal access token (BETA)** section and press the **Generate new** button.
3. Provide a token description (must be unique) and select expiration duration in the popup. **Save & Continue** to proceed.
4. Next popup will contain the token generated. **Make sure to copy your new personal access token. You won’t be able to see it again!**
5. Use a new token in requests by setting `Authorization: <access token>` header.

For more detailed instructions please see [discussion](https://discuss.bitrise.io/t/personal-access-tokens-beta/1383) and [documentation](https://devcenter.bitrise.io/api/authentication/).

## Retrieve artifacts via API
Bitrise provides several endpoints to work with builds and artifacts. Here is a list of endpoints you can use to import code coverage artifact:
 - **GET** `/apps/{app-slug}/builds` responses with a list of builds. Each build contains the `slug` field which stands for an ID of this build. Select the one you want to load code coverage artifact for and proceed to the next endpoint.
 - **GET** `/apps/{app-slug}/builds/{build-slug}/artifacts` responses with a list of artifacts generated and deployed during the build specified by `build-slug` path parameter. Select the one you need and use its `slug` field within the next endpoint.
 - **GET** `/apps/{app-slug}/builds/{build-slug}/artifacts/{artifact-slug}` responses with an artifact description specified by `artifact-slug` path parameter. The response body contains JSON with the `expiring_download_url` field containing URL for downloading artifact.

The `app-slug` is your app's unique ID generated by Bitrise that can found on the bitrise.io Web UI.
1. Open the [Dashboard](https://app.bitrise.io/dashboard/builds) on Bitrise - you may be asked to log in first.
2. Click on a project you want to know the ID of from the right-side panel.
3. On the project page, go to the `Code` tab.
4. You can find the `app-slug` right under the `App Slug` section (you can also find it in a current page's URL - for example, `https://app.bitrise.io/app/<app-slug>#/code`).

More information in accessing artifacts you can find in [documentation](https://devcenter.bitrise.io/getting-started/managing-files-on-bitrise/). Bitrise API [specification](https://api-docs.bitrise.io/#/).

# Buildkite

## Deploy artifacts
Artifacts can be uploaded automatically after a pipeline's build step finishes its execution. This requires additional configurations to the build step using either web UI on Builkite or `pipeline.yml` configuration file in your project.
- **Using web UI**:
    1. Under the **Steps** section within pipeline settings, create a new step pressing **Add** button or select an existing step from the list.
    2. On the right side of the step's configuration panel expand the **Automatic Artifact Uploading** option.
    3. Define path pattern to the artifacts you want to upload after the step finishes (multiple paths must be separated by a semicolon). For example, `logs/**/*`, `tmp/**/*.png`, `logs/**/*;tmp/**/*.png` and so on.
- **Using `pipeline.yml`**:
    1. Go to the step you want to configure artifacts uploading for.
    2. Set the `artifact_paths` attribute on your command step with path pattern(s) (see example below).
    ```yaml
    steps:
      - label: ":test: Coverage"
        commands:
          - bash coverage.sh
        artifact_paths:
          - coverage/*
    ```

To get more familiar with Buildkite [pipelines](https://buildkite.com/docs/pipelines), [artifacts](https://buildkite.com/docs/pipelines/artifacts), etc. please consider to read [documentation](https://buildkite.com/docs/tutorials/getting-started).

## Create API Access Token
The authorization is required to communicate with Buildkite API. Buildkite provides an ability to [manage](https://buildkite.com/docs/apis/managing-api-tokens) API Access Tokens and their scopes within the organization and [user settings](https://buildkite.com/user/api-access-tokens). The following steps may be used to create a new Access Token:
1. Navigate to [user personal settings](https://buildkite.com/user/settings) and click on the [API Access Token tab](https://buildkite.com/user/api-access-tokens).
2. Press the **New API Access Token** button to create a new token.
3. On a token creating form set the Organization Access and desired **REST API Scopes** (for example, importing artifacts requires `read_builds` and `read_artifacts` scopes).
4. Finish token creation by pressing the **Create New API Access Token** button at the bottom of the page.
5. Confirm your password and copy token created, as it won't be visible again.
6. Use a new token in requests by setting `Authorization: Bearer <access token>` header.

## Retrieve artifacts via API
The `organization_slug` is required when using the endpoints below. It identifies the organization in the URL and the Buildkite API. The organization's slug can be obtained using one of the following ways:
1. **Using URL**. Open the [Buildkite](https://buildkite.com/) and select the organization from the dropdown menu at the left of the navigation bar. The URL will contain the slug of selected organization - `https://buildkite.com/{organization_slug}`.
2. **Using Buildkite API**. **GET** `/organizations` responses with a list of organizations accessible for the user. Each organization object contains the `slug` field you can use in endpoints below.
   ```text
   {
     "id": "{organization_id}",
     "url": "{organization_api_url}",
     // ...
     "slug": "{organization_slug}",
     // ...
   }
   ```

There are several ways to retrieve artifacts using Buildkite API.
- **GET** `/organizations/{organization_slug}/builds` responses with a list of builds for the organization specified by `organization_slug`. Each build contains a list of jobs (i.e. Step execution) and each job contains a URL you can use to retrieve its artifacts.
    ```text
    {
      "id": "build_id",
      // ...
      "jobs": [
        {
          "id": "job_id",
          // ...
          "artifacts_url": "https://.../organizations/{organization_slug}/pipelines/{pipeline_slug}/builds/{build_number}/jobs/{job_id}/artifacts"
        }
      ]
    }
    ```
- **GET** `/organizations/{organization_slug}/pipelines/{pipeline_slug}/builds` responses with a list of builds for the pipeline specified by `pipeline_slug`. This endpoint acts like the above one but is more specific.
- **GET** `/organizations/{organization_slug}/pipelines/{pipeline_slug}/builds/{build_number}/artifacts` responses with a list of artifacts generated by all jobs of a build specified by `build_number`. Each artifact contains the `download_url` field which you can use to download artifact.
    ```text
    {
      "id": "artifact_id",
      // ...
      "download_url": "https://.../organizations/{organization_slug}/pipelines/{pipeline_slug}/builds/{build_number}/jobs/{job_id}/artifacts/{artifact_id}/download"
    }
    ```
- **GET** `/organizations/{organization_slug}/pipelines/{pipeline_slug}/builds/{build_number}/jobs/{job_id}/artifacts` responses with a list of artifacts generated by job specified by `job_id`. Artifact object structure is the same as in the above endpoint.
- **GET** `/organizations/{organization_slug}/pipelines/{pipeline_slug}/builds/{build_number}/jobs/{job_id}/artifacts/{id}/download` responses with an artifact specified by `id`. This endpoint stands for the download URL of artifact.

More information in accessing artifacts you can find in [Artifacts API documentation](https://buildkite.com/docs/apis/rest-api/artifacts). Bitrise API [documentation](https://buildkite.com/docs/apis).

# CircleCI

## Deploy artifacts
CircleCI build job can be configured to store generated artifacts as follows:
1. In `.circleci/config.yml` go to a job you want to configure artifacts uploading for.
2. Add the `store_artifacts` attribute to the `steps` section of the job. There are no limitations in a number of `store_artifacts` steps within one job.
3. In `store_artifacts` specify the `path` with a path to directory/file you want to deploy (see an example of such file below).

```yaml
version: 2.1
workflows:
  main:
    jobs:
      - build
jobs:
  build:
    machine:
      image: ubuntu-1604:201903-01
    steps:
      - checkout
      - run:
          name: Creating Code Coverage Artifact
          command: bash coverage.sh
      - run:
          name: Check codecove
          command: ls
      - store_artifacts:
          path: coverage/
```

More information in artifacts storing can be found [here](https://circleci.com/docs/2.0/artifacts/). To get more familiar with CircleCI follow this [link](https://circleci.com/docs/2.0/about-circleci/#section=welcome).

## Create API Access Token
Some CircleCI endpoints require authorization to communicate with them. CircleCI provides an ability to create a Personal API Token that allows acting through API with no limitations. The following steps may be used to create a new token:
1. Navigate to [Personal API Tokens tab](https://account.circleci.com/tokens) under [User Settings page](https://account.circleci.com/settings/user).
2. Press the **Create New Token** button and type a token name in the popup.
3. Proceed by pressing **Add API Token** and copy a new token (make sure to take a copy of the generated token before moving to the next step as it won't be visible again).
4. Use the token in requests by using either a Basic Auth with **Authorization** header, **Circle-Token** header or another way provided in CircleCI API ([v1.1](https://circleci.com/docs/api/#get-authenticated), [v2](https://circleci.com/docs/api/v2/#authentication)).

## Retrieve artifacts via API
Here are endpoints that CircleCI provides to work with builds and artifacts:
- **GET** `/api/v1.1/project/{project_slug}` responses with a list of builds for the project specified by a `project_slug`. Each build has a build number (the `build_num` field) and contains a flag that states whether this build has artifacts or not (the `has_artifacts` field).
  ```text
  {
    // ...
    "build_num": <integer>,
    "has_artifacts": <boolean>,
    // ...
  }
  ```
- **GET** `api/v1.1/project/{project_slug}/{build_number}/artifacts` responses with a list of artifacts generated during a build specified by a `build_number`. Each artifact has the `url` field that contains a download URL for the artifact.
  ```text
  {
    // ...
    "path": "coverage/coverage.json",
    "url": "https://.../coverage/coverage.json"
  }
  ```

More information about the `project_slug` parameter can be found [here](https://circleci.com/docs/2.0/api-developers-guide/#getting-started-with-the-api). CircleCI API v1.1 (current stable version) [Summary](https://circleci.com/docs/api/#summary-of-api-endpoints) and [Overview](https://circleci.com/docs/api/#api-overview).

# Jenkins

## Deploy artifacts
Jenkins build job can be configured to store generated artifacts as follows:
1. In `Jenkinsfile` go to a stage you want to configure artifacts uploading for.
2. Add the `post` section to the stage.
3. Add `archiveArtifacts` step to the created `post` section with path to file or path pattern (see example below).

```text
pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                sh 'bash coverage.sh'
            }
            post {
                always {
                    archiveArtifacts 'coverage/*'
                }
            }
        }
    }
}
```

For more information in storing artifacts follow Jenkins [documentation](https://jenkins.io/doc/) and this [tour](https://jenkins.io/doc/pipeline/tour/tests-and-artifacts/).

## Create API Access Token
To access Jenkins's endpoints the authorization is required. You can use your username and password you've registered within an HTTP Basic Auth. For example:
1. Base64 encode username and password string as `username:password`.
2. Pass the result to `Authorization` header as `Authorization: Basic <token>`.

## Retrieve artifacts via API
The endpoints below contain the concept of `job`. Simply put, a job in Jenkins stands for a build workflow or pipeline. However, there can be jobs within other jobs (and even they can be within other jobs) so what does it mean? First, let us notice that URL for each sub-job recursively repeats - for example, `{lenkins_url}/job/{job}/job/{subjob}/job/{subsubjob}`. Consider the following: the very last job is a building pipeline itself; the job at the higher level is a list of build jobs configured; finally, the job at the highest level is a list of jobs with specific configurations for lists of build jobs they contain. Generally speaking, it depends on your Jenkins configurations for a project or projects. Here are some examples:
1. Creating a `Pipeline` in Jenkins (`New Item > Pipeline`) with the name `example-pipeline`. In this case, the created pipeline is a building pipeline and accessible through `{lenkins_url}/job/example-pipeline`.
2. Creating a `Multibranch Pipeline` in Jenkins (`New Item > Multibranch Pipeline`) with the  name `example-pipeline`. In this case, the created pipeline will contain the list of building pipelines for each repository's branch matching configurations. For example, building pipeline for the `master` branch is accessible through `{lenkins_url}/job/example-pipeline/job/master`.
3. Creating a `GitHub Organization` in Jenkins (`New Item > GitHub Organization`) with the name `example-organization`. In this case, the created pipeline will contain the list of multibranch pipelines, and each multibranch pipeline has a list of building pipelines. For example, building pipeline for the `master` branch of the `example-project` repository is accessible through `{lenkins_url}/job/example-organization/job/example-project/job/master`.

Here are Jenkins' endpoints to work with builds and artifacts:
- **GET** `{jenkins_url}/api/json` responses with a master node of Jenkins that contains common information and list of pipelines configured.
  ```text
  {
    // ...
    "jobs": [
      {
        "name": <string>,
        // ...
      },
      // ...
    ]
  }
  ```
  Alternatively, you can request **GET** `{jenkins_url}/api/json?tree=jobs[name]` to fetch only list of pipelines configured.
  ```text
  {
    "jobs": [
      {
        "name": <string>
      },
      // ...
    ]
  }
  ```
  Select desired `job` and proceed to next endpoints using its `name` field.
- **GET** `{jenkins_url}/job/{job_name}/api/json` responses with a pipeline common information that contains a list of sub-pipelines configured.
  ```text
  {
    // ...
    "name": "{job_name}",
    "jobs": [
      {
        "name": <string>,
        // ...
      },
      // ...
    ]
  }
  ```
  Alternatively, you can request **GET** `{jenkins_url}/job/{job_name}/api/json?tree=jobs[name]` to fetch only list of pipelines configured within specified one. Use the `name` of desired `job` and proceed to retrieving builds data (in case if selected pipeline is a building one).
- **GET** `{jenkins_url}/job/{job_name}/job/{subjob_name}/api/json` responses with a pipeline common information that contains useful data about builds (first build, last build, last failed build, etc.) and a list of builds.
  ```text
  {
    // ...
    "fullName": "{job_name}/{subjob_name}",
    "name": "{subjob_name}",
    "builds": [
      {
        "number": <integer>,
        // ...
      },
      // ...
    ]
  }
  ```
  Same to previous endpoints, you can request **GET** `{jenkins_url}/job/{job_name}/job/{subjob_name}/api/json?tree=builds[number]` to fetch only list of builds with numbers.
- **GET** `{jenkins_url}/job/{job_name}/job/{subjob_name}/{build_number}/api/json` responses with a build specified by the `build_number` parameter. It also contains a list of artifacts generated during the build.
  ```text
  {
    // ...
    "number": build_number,
    "artifacts": [
      {
        "displayPath": <string>,
        "fileName": <string>,
        "relativePath": <string>
      },
      // ...
    ]
  }
  ```
  You can request **GET** `{jenkins_url}/job/{job_name}/job/{subjob_name}/{build_number}/api/json?tree=artifacts[displayPath,fileName,relativePath]` to fetch only artifacts list for a build.
- **GET** `{jenkins_url}/job/{job_name}/job/{subjob_name}/{build_number}/artifact/{relativePath}` responses with artifact found by `relativePath`. For example **GET** `{jenkins_url}/job/Test/job/master/5/artifact/coverage/coverage.json`

Using the `tree` query parameter for Jenkins API we can define properties of responses within different depth level. For example, fetch all builds with their artifacts for a pipeline:
```text
GET {jenkins_url}/job/{job_name}/job/{subjob_name}/api/json?tree=name,fullName,builds[number,result,artifacts[displayPath,fileName,relativePath]]
```
The same possible with the `depth` query parameter but responses with fat JSON. For example, **GET** `{jenkins_url}/job/{job_name}/job/{subjob_name}/api/json?depth=1` responses with all information we've requested in the `tree` parameter above but the response size in more than 3 times larger.

More information in Jenkins API can be found [here](https://wiki.jenkins.io/display/JENKINS/Remote+access+API).

# Dependencies
> What is the project blocked on?

No blockers.

> What will be impacted by the project?

Importing/exporting code coverage metric approaches are impacted.

# Testing
> How will the project be tested?

Testing implementations related to importing coverage artifacts is a testing third-party API interactions and thus requires Third-party API testing approaches described [here](03_third_party_api_testing.md).

# Alternatives Considered
> Summarize alternative designs (pros & cons)

* Creating a separate CLI application for importing code coverage artifacts.
    - Pros:
        - No need for additional CI configurations.
        - The coverage importing process is not impacted by the CI API server.
    - Cons:
        - Complicates maintenance process.

# Timeline
> Document milestones and deadlines.

DONE:

  - Document importing code coverage artifact for all supported CI tools.
  - Document API interactions for importing coverage artifacts.

# Results
> What was the outcome of the project?

Work in progress.

repository: solid-vovabeloded/flank-dashboard

repo_name: solid-vovabeloded/flank-dashboard


text:
# Status Update for Week 4

## Last Week's Accomplishments
* Finished a few voiceover features for accessibility, which include:
    * `Accessiblity Labels` for all UI elements. Voice over will read them out when users tap on them.
    * Hints for what will happen once a voiceover user interact with UI elements.
    * Feature to read Bluetooth strength information back to the user.
    * Feature to announce how much time remains before the door closes, in seconds.

## This Week's Plan
* Continue working on accessibility.
* Fix a critical issue where a voiceover user may not be able to unlock a door, due to a UI element being not accessible.

## Anything Blocking
N/A

## Notes
N/A

gha_license_id: MIT


text:
---
layout: page
title: Homeworks
permalink: /homeworks/
---

* [HW0: Math Diagnostic](https://github.com/pooyanjamshidi/csce580/tree/master/homeworks/hw0)
  Due Date: Jan 21, 11:59 pm
  - [HW0 solutions](https://github.com/pooyanjamshidi/csce580/tree/master/homeworks/hw0) Published on Jan 22
* [HW1: Search](https://github.com/pooyanjamshidi/csce580/tree/master/homeworks/hw1)
  Due Date: Feb 5, 11:59 pm
  - [HW1 solutions](https://github.com/pooyanjamshidi/csce580/tree/master/homeworks/hw1) Published on Feb 6
* [HW2: CSPs](https://github.com/pooyanjamshidi/csce580/tree/master/homeworks/hw2)
  Due Date: Feb 15, 11:59 pm
  - [HW2 solutions](https://github.com/pooyanjamshidi/csce580/tree/master/homeworks/hw2) Published on Feb 18
* [HW3: Games](https://github.com/pooyanjamshidi/csce580/tree/master/homeworks/hw3)
  Due Date: Feb 25, 11:59 pm
  - [HW3 solutions](https://github.com/pooyanjamshidi/csce580/tree/master/homeworks/hw3) Published on Feb 26
* [HW4: MDPs](https://github.com/pooyanjamshidi/csce580/tree/master/homeworks/hw4)
  Due Date: Mar 11, 11:59 pm
  - [HW4 solutions](https://github.com/pooyanjamshidi/csce580/tree/master/homeworks/hw4) Published on Mar 17
* [HW5: Ethics of AGI](https://github.com/pooyanjamshidi/csce580/tree/master/homeworks/hw5)
  Due Date: April 29, 11:59 pm


text:
# Contribution Guidelines

## Table of Contents

- [Adding to this list](#adding-to-this-list)
- [Updating your Pull Request](#updating-your-pull-request)

## Adding to this list

Please ensure your pull request adheres to the following guidelines:

- Search previous suggestions before making a new one, as yours may be a duplicate.
- Make sure the resource is useful before submitting.
- Make an individual pull request for each suggestion.
- Use [title-casing](http://titlecapitalization.com) (AP style).
- Use the following format: `[Resource Name](link) - Description text.`
- New categories or improvements to the existing categorization are welcome.
- Check your spelling and grammar.
- Make sure your text editor is set to remove trailing whitespace.
- The pull request and commit should have a useful title.

Thank you for your suggestions!

Check out [this description](https://github.com/sindresorhus/awesome/blob/master/contributing.md#adding-something-to-an-awesome-list)
if you don't know how to use GitHub to contribute to this list.

## Updating a pull request

Check out [this post](https://github.com/RichardLitt/knowledge/blob/master/github/amending-a-commit-guide.md)
on how to change a pull request and the different ways it can be done.


text:
## About

This repository cotains the implementation of a distributed account system which is implemented with Chandy Lamport snapshot algorithm. Here, 3 different accounts are considered, treated as processes. They send random amount of money to each other without leading to any negative account balance.

## Design

* **UI**

This initiates the simualtion of the system. The money transaction is displayed in the GUI in a separate process. Click on any button to enable the sending of a market message to one of the 3 processes manually. This way, you start the `Snapshot` algorithm. You can see the result of the algorithm in the Info panel.

* **Communication Channel**

To simulate the communication delay FIFO queue is employed with random delay (by sleep) for each communication channel in the algorithm. The communication is carried out through UDP sockets.

## Chandy-Lamport Algorithm

[Concept](https://www.cs.princeton.edu/courses/archive/fall16/cos418/docs/P8-chandy-lamport.pdf)

## Execute

- Run the ant script following [this](https://www.mkyong.com/ant/how-to-apache-ant-on-mac-os-x/).
- Navigate to `ant` folder.
- Run command :
  ```
  ant // runs Lamport GUI

## License
Licensed under the MIT license

repository: Banashri/chandy-lamport-snapshot

gha_language: Java

repo_name: Banashri/chandy-lamport-snapshot


text:
# Licensing

Umbraco Workflow is a licensed product that does not require a purchase. New installations default to a trial license while the paid license is available for purchase.

## Purchasing an Umbraco Workflow License

If you want to buy an Umbraco Workflow license, reach out to the sales team at [**suits@umbraco.com**](mailto:suits@umbraco.com). Existing Plumber license holders who wish to upgrade to Umbraco Workflow should contact [**suits@umbraco.com**](mailto:suits@umbraco.com).

To add the license to your site update the `appSettings.json` file:

    ```
    {
      “Umbraco”: {
        “Licenses”: {
          “UmbracoWorkflow”: “YOUR-LICENSE-KEY”
        }
      }
    }
    ```

### Using a Trial License

The trial license introduces some restrictions around advanced features but is otherwise a full-featured workflow platform. The paid license is valid for one top-level domain and all its subdomains.

To impersonate the full license on a local site, set `EnableTestLicense` to `true` in the `appSettings.json` file:

```json
{
 “Umbraco”: {
   “Workflow”: {
     “EnableTestLicense”: true
   }
  }
}
```

{% hint style="info" %}
The test license is restricted to sites running in a development environment with a debugger attached. Hit F5 in Visual Studio, in Debug mode to enable the test license.
{% endhint %}

repository: umbraco/UmbracoDocs

repo_name: umbraco/UmbracoDocs


text:
---
title: "Download Udta Punjab (2016) Hindi Movie Bluray || 720p [1.1GB] || 1080p [2.3GB]"
date: "2020-07-03"
---

Download **Udta Punjab** **2016** Hindi Movie in [1080p](https://1moviesflix.com/1080p-movies/), [**720p**](https://1moviesflix.com/720p-movies/). This is a Bollywood Hindi movie and available in **720p & 1080p** quality. This is a **Action, Crime, Drama** based movie. This movie is released in **2016** in the Hindi language**.** Click on the Download button below to download this movie. This is the Latest **Bluray Print** with **Hindi audio**.

**TheMoviesFlix.in** is one of the Best Websites/Platform For Bollywood and Indian Movies and Series. We also provide south movies like Tamil, Telugu and Malayalam movies, and also Bengali, Punjabi, and other local movies. We Provide Direct Fast Google Drive Download Links For Secure Downloading. Just Click On Download Button And Follow Steps To Download And Watch Movies Online For Free.

[![](https://m.media-amazon.com/images/M/MV5BNGQ4MTk2NjQtYmYzMy00MWZkLWE1YTktYWVmNWU2NjNmMzlkXkEyXkFqcGdeQXVyNTE2MzU4OTA@._V1_SX300.jpg)](https://www.imdb.com/title/tt4434004/ "Udta Punjab")

Udta Punjab (2016)

7.8**Rating:** 7.8 / 10 from 26,363 users**Metascore:** N/A

A story that revolves around drug abuse in the affluent north Indian State of Punjab and how the youth there have succumbed to it en-masse resulting in a socio-economic decline.

### Download Udta Punjab 2016 1080p, 720p – Full Hindi Movie

### Movie Info:

- **Full Name:** Udta Punjab
- **Language:** Hindi
- **Release Year:** 2016
- **Size:**  1.1GB & 2.3GB
- **Quality:** 720p & 1080p
- **Format:** Mkv
- **Director:** Abhishek Chaubey
- **Writers:** Sudip Sharma (screenplay), Abhishek Chaubey (screenplay)
- **Stars:** Shahid Kapoor, Alia Bhatt, Kareena Kapoor

## Storyline

The film opens with three Pakistani youth across the Punjab Pakistan border throwing packets of drugs across to India, for it to be picked up later.

Tejinder “Tommy” Singh (Shahid Kapoor), also known as “Gabru” among his fans, is a young Punjabi musician who lives a luxurious lifestyle assisted by his successful music career. Together with an ostentatious crew that is led by Tayaji (Satish Kaushik) and cousin Jassi (Suhail Nayyar), he indulges in uncontrolled consumption of cocaine. Tommy is popular for his adrenaline-pumping songs, with lyrics that often glorify violence and drug-addiction. However, his addiction soon costs him his music contract and lands him in jail.  Realizing that his songs have adversely and negatively affected teenagers, Tommy decides to change his ways upon release.

## ScreenShots:

![Download Udta Punjab (2016) Hindi Movie Bluray](https://i.imgur.com/ogAVj0A.jpg)

### Download Udta Punjab (2016) Hindi Movie 720p \[1.1GB\]

[Download Links](https://1moviesflix.com?a270777880=ZWY4dzhFSG1SK1Y0Z3JmeW15U1BDQVlmR21hUVdzWE40YzV1cnJDR2MxZTBQR3ZpekRTd1Z3cFp2eHJLSXk3VTU1RkExd3hIYTVYdXYvaS9kYkxSRVRCb0hHblRoQWp3VUZFb3BER2JFOHc9)

### Download Udta Punjab (2016) Hindi Movie 1080p \[2.3GB\]

[Download Links](https://1moviesflix.com?a270777880=ZWY4dzhFSG1SK1Y0Z3JmeW15U1BDQVlmR21hUVdzWE40YzV1cnJDR2MxZTBQR3ZpekRTd1Z3cFp2eHJLSXk3VVVNMTNQK3VmVWxuTlVuajl1MnFxTnU3RjMxMDFuZlN3aThWc3dmbzdJb1k9)

* * *

* * *

.button { color: white; padding: 8px 6px; text-align: center; text-decoration: none; display: inline-block; font-size: 14px; margin: 2px 1px; -webkit-transition-duration: 0.4s; /\* Safari \*/ transition-duration: 0.4s; cursor: pointer; } .button5 { background-color: #555555; color: white; border: 1px solid #e7e7e7; border-radius: 4px; } .button5:hover { background-color: #e7e7e7; border: 2px solid #555555; color: black; } [Join Our Telegram](http://gdrivepro.xyz/join.php) [Hollywood](https://moviesverse.com/) [AnimeFlix](https://animeflix.in/) [Download PC Games](https://gamesflix.net/)

* * *

* * *

Please Do Not Use VPN for Downloading Movies From Our Site.

Click On The Above **Download Button** to Download File.

If You Find Any Broken Link Then **Report** To Us.

**Comment** Your Queries And Requests Below In The Comment Box.

* * *


text:
# tf-helper

Repo hosting helper routines for tungsten fabric

install tungsten fabric cni using following
```
bash <(curl https://raw.githubusercontent.com/Prabhjot-Sethi/tf-helper/main/ubuntu-install-tf-cni.sh)
```

repository: Prabhjot-Sethi/tf-helper

repo_name: Prabhjot-Sethi/tf-helper


text:
# _Mad Libs_

#### _A Game Of Mad Libs, 7.20.20_

#### By _**Micheal Hansen, Peter Grimm & Tyson Lackey**_

## Description

_A demonstration of how to play Mad Libs in a .NET MVC application that can pass data between forms._

## Specifications

| Spec | Input | Output |
| :--- | :---: | ---: |

## Setup/Installation Requirements

Software Requirements
1. .NET framework
2. A code editor (Visual Studio Code, Atom, etc.)

Acquire The Repo:
1. Click the 'Clone or Download Button
2. Alternately, Clone via Bash/GitBash: `git clone https://github.com/Sudolphus/MadLibs.Solution.git`

Editting the Code Base:
1. Open the project in your code editor; with Bash, this is done by navigating to the project directory, then `code .`
2. If you wish to run testing, you'll need the testing packages: navigate into the .Tests folder, and run `dotnet restore`

Running the program:
1. To run the program, you'll need to compile the code: `dotnet build`. This will create a compiled application in the bin/ folder.
2. Alternately, you can run the program directly with `dotnet run`.

## Known Bugs

_None Currently Known_

## Support and contact details

_Please reach out through my GitHub account._

## Technologies Used

* _VSCode_
* _C# and .NET_

### License

Copyright (c) 2020 **_Micheal Hansen, Peter Grimm, & Tyson Lackey_**

*Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:*

*The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.*

*THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.*


text:
# Getting started with the Python examples

If you want to use [Docker](http://www.docker.com/) to build and run the examples, here's a [quickstart](Docker.md).

We provide several examples at different levels of complexity, each of which is documented separately. All examples support mutual authentication. Note that the examples do **not** necessarily support the same functionality; therefore a function call in one example might not work in another.

The following table includes a short description of each example and the functionality it demonstrates.

| __Example__ | __Evaluation__ | __Data types__ | __Description__ |
|-----|------|-----|----|
| __Hello world__ | Script, function | String | Returns the same values as received, aggregating all values to a single string, both in script and function calls. Also demonstrates two functions with cache enabled, by default, and disabled by adding date time stamps to the end of each string value.|
| __Column operations__ | Script, function| Numeric | Adds two columns row-wise (tensor). Sums values in a column (aggregation). Demonstrates functionality both as script calls and function calls. |
| __Full script support__ | Script | Numeric, String, Dual | Full script support including SSE calls in both load-script and in chart expressions. All script functions are supported.|
| __Full script support using Pandas__ | Script | Numeric, String, Dual | Using the Pandas library and exec method to evaluate the script instead of eval. Also includes an example of writing a `TableDescription` in the script to be evaluated, when using the `Load ... Extension ...` statement. Otherwise it is the same example as the original full script support with all script functions supported. |

For details about a particular example, see its documentation:
- [Hello world](helloworld/README.md)
- [Column operations](columnoperations/README.md)
- [Full script support](fullscriptsupport/README.md)
- [Full script support using Pandas](fullscriptsupport_pandas/README.md)

## Running the Python examples
Follow these steps to quickly set up and run an example of your choice on your local machine, with an insecure connection, using either Qlik Sense Desktop, Qlik Sense Enterprise, QlikView Desktop or QlikView Server. To run several examples, or to run the examples with a secure connection or on another node, configure your system according to the instructions referenced in [Configuring SSE plugins in Qlik](../../docs/configuration.md). The `<examplename>`, `<EngineName>` and `<port>` referred to below are mapped to each example as follows:

| __Example__ | __`<examplename>`__ | __`<EngineName>`__ | __`<port>`__ |
| ----- | ----- | ----- | ----- |
| __Hello world__ | helloworld | HelloWorld | 50052 |
| __Column operations__ | columnoperations | Column | 50053 |
| __Full script support__ | fullscriptsupport | Script | 50051 |
| __Full script support using Pandas__ | fullscriptsupport_pandas | ScriptPandas | 50056 |

### Qlik Sense Desktop
1. Install Qlik Sense Desktop (June 2017 release or later).
2. Make sure you have Python 3.4 (or later) installed as well as the `grpcio` package. For more information, see [Prerequisites for running the Python examples](prerequisites.md).
3. Add `SSEPlugin=<EngineName>,localhost:<port>` on a new line in your *Settings.ini* file located at *C:\Users\\[user]\Documents\Qlik\Sense* or *C:\user\\[user]\AppData\Local\Programs\Qlik\Sense\Engine*. Insert the values for `<EngineName>` and `<port>` from the table above for the selected example.
4. Copy the *.qvf* file from the selected example folder to *C:\Users\\[user]\Documents\Qlik\Sense\Apps*.
5. Run the corresponding `<examplename>` python package. The easiest way to do this is to open a command prompt, go to the example\python folder and type:

   `python <examplename>`

   Insert the value for `<examplename>` from the table above for the selected example.
6. Start Qlik Sense Desktop and open the app for the example you chose.

### Qlik Sense Enterprise
1. Install Qlik Sense Enterprise (June 2017 release or later).
2. Make sure you have Python 3.4 (or later) installed as well as the `grpcio` package. For more information, see [Prerequisites for running the Python examples](prerequisites.md).
3. Add the SSE plugin settings in QMC under __Analytic connections__ by inserting the following values:  **name:** `<EngineName>`, **host:** localhost, **port:** `<port>`

    Alternatively, add `SSEPlugin=<EngineName>,localhost:<port>` on a new line in your *settings.ini* file located at *C:\ProgramData\Qlik\Sense*. Insert the values for `<EngineName>` and `<port>` from the table above for the selected example.

    __Note:__ Configuring the plugin via the *settings.ini* file is only valid for this node/machine; the settings will not be visible in the QMC. Also no access rules would apply in this case.
    __Note:__ If you are using _Sense April 2018_, you can configure your plugins in QMC during runtime without having to restart Qlik engine in step 6 below. See [Limitations](../../docs/limitations.md) for more details.
4. Add the *.qvf* file from the selected example folder to QMC.
5. Run the corresponding `<examplename>` python package. The easiest way to do this is to open a command prompt, go to the example\python folder and type:

   `python <examplename>`

   Insert the value for `<examplename>` from the table above for the selected example.
6. Start Qlik Sense Enterprise and open the app for the example you chose.

### QlikView Desktop
1. Install QlikView Desktop (November 2017 release or later).
2. Make sure you have Python 3.4 (or later) installed as well as the `grpcio` package. For more information, see [Prerequisites for running the Python examples](prerequisites.md).
3. Add `SSEPlugin=<EngineName>,localhost:<port>` on a new line in your *Settings.ini* file, below the heading [Settings 7]. *Settings.ini* is located at *C:\Users\\[user]\AppData\Roaming\QlikTech\QlikView*. Insert the values for `<EngineName>` and `<port>` from the table above for the selected example.
4. Run the corresponding `<examplename>` python package. The easiest way to do this is to open a command prompt, go to the example\python folder and type:

   `python <examplename>`

   Insert the value for `<examplename>` from the table above for the selected example.
6. Start QlikView Desktop and open the *.qvw* file in the selected example folder.

### QlikView Server
1. Install QlikView Server (November 2017 release or later).
2. Make sure you have Python 3.4 (or later) installed as well as the `grpcio` package. For more information, see [Prerequisites for running the Python examples](prerequisites.md).
3. Add `SSEPlugin=<EngineName>,localhost:<port>` on a new line in your *Settings.ini* file, below the heading [Settings 7]. *Settings.ini* is located at *C:\ProgramData\QlikTech\QlikViewServer*. Insert the values for `<EngineName>` and `<port>` from the table above for the selected example.
4. Open the QlikView Batch Settings.ini and add the same configuration as in step 3, to be able to reload the document. The default location is _C:\Windows\system32\config\systemprofile\AppData\Roaming\QlikTech\QlikViewBatch_.
5. Add the *.qvw* file from the selected example folder to your document root (e.g. *C:\ProgramData\QlikTech\Documents*) or a mounted folder.
6. Run the corresponding `<examplename>` python package. The easiest way to do this is to open a command prompt, go to the example\python folder and type:

   `python <examplename>`

   Insert the value for `<examplename>` from the table above for the selected example.
6. Start QlikView Server and open the app for the example you chose.

## Configuring all Python examples at once (except Qlik Sense Enterprise)
In order to use all four Python examples in parallel, all you have to do is to map a different name to each port on the same line in *Settings.ini*:
`SSEPlugin=Script,localhost:50051;HelloWorld,localhost:50052;Column,localhost:50053;ScriptPandas,localhost:50056`

repository: ceperezegma/server-side-extension

repo_name: ceperezegma/server-side-extension


text:
# 1.6.2
- Increased minimum iOS and macOS versions to 9.0 and 10.12 respectively to fix [framework build issue](https://github.com/openid/AppAuth-iOS/issues/765)

# 1.6.1
- Increased minimum iOS and macOS versions to fix [build issue](https://github.com/openid/AppAuth-iOS/pull/761)

# 1.6.0
- Added a `prefersEphemeralSession` parameter for external user-agents. ([#645](https://github.com/openid/AppAuth-iOS/pull/645))
- Fixed errors encountered when using secure coding to decode `OIDAuthState`. ([#656](https://github.com/openid/AppAuth-iOS/pull/656), [#721](https://github.com/openid/AppAuth-iOS/pull/721))

# 1.5.0
- Improved tvOS support. ([#111](https://github.com/openid/AppAuth-iOS/issues/111))
- ASWebAuthenticationSession on macOS. ([#675](https://github.com/openid/AppAuth-iOS/pull/675))

# 1.4.0

## Added

1. Support for Swift Package Manager

# 1.3.1

## Fixes

1. Removed `UIWebView` reference in comment

# 1.3.0

## Notable Changes

1. Support for Mac Catalyst

# 1.2.0

## Notable Changes

1. Support for iOS 13

# 1.1.0

## Notable Changes

1. [OpenID Connect RP-Initiated Logout](http://openid.net/specs/openid-connect-session-1_0.html#RPLogout) implemented
2. Added logic for the `azp` claim

## Fixes

1. Scheme comparison for redirects is now case insensitive
2. Improved error handling during discovery when a non-JSON document
   is encountered.

# 1.0.0

1.0.0! 🎉

## Notable Changes

1. **All deprecated APIs removed.** Please ensure your code builds on
   version 0.95.0 with no deprecation warnings before upgrading!
   Notably, if you started with a version of AppAuth prior to 0.93.0
   you will need to follow the instructions in
   [Upgrading to 0.93.0](#upgrading-to-0930)
2. Updated for iOS 12, and Xcode 10. **Xcode 10 is now required.**
   NB. per policy, AppAuth supports many older versions of iOS and
   macOS, but only the current Xcode toolchain.
   If you need to stay on old versions of Xcode for some reason, stay
   on the pre-1.0 releases.
3. macOS 32-bit support removed. If you need this support, stay on the
   pre-1.0 releases.
4. `AppAuth/Core` subspec, and AppAuthCore Framework added to support
    iOS extensions.

# 1.0.0.beta2 (2018-09-27)

## Notable Changes

1. `AppAuth/Core` subspec, and AppAuthCore Framework added to support
    iOS extensions.

# 1.0.0.beta1 (2018-09-27)

First 1.0.0 beta!  HEAD is now tracking changes for the 1.0.0 release.
The `pre-1.0` branch was cut prior to the breaking changes for 1.0.0,
bug fixes for critical issues may be backported for a time.

## Notable Changes

1. **All deprecated APIs removed.** Please ensure your code builds on
   version 0.95.0 with no deprecation warnings before upgrading!
   Notably, if you started with a version of AppAuth prior to 0.93.0
   you will need to follow the instructions in
   [Upgrading to 0.93.0](#upgrading-to-0930)
2. Updated for iOS 12, and Xcode 10. **Xcode 10 is now required.**
   NB. per policy, AppAuth supports many older versions of iOS and
   macOS, but only the current Xcode toolchain.
   If you need to stay on old versions of Xcode for some reason, stay
   on the pre-1.0 releases.
3. macOS 32-bit support removed. If you need this support, stay on the
   pre-1.0 releases.

## Fixes

1. All fixes in the 0.95.0 release are incorporated in this release.

# 0.95.0 (2018-09-27)

## Fixes

1. `x-www-form-urlencoded` encoding and decoding should be 100%
   spec compliant now, previously the `+` character was not decoded as
   0x20 space. https://github.com/openid/AppAuth-iOS/pull/291

2. `scope` no longer sent during token refresh (was redundant)
    https://github.com/openid/AppAuth-iOS/pull/301

# 0.94.0 (2018-07-13)

## Fixes
1. `form-urlencode` client ID and client secret in Authorization header

## Added

1. Samples have icons now!
2. Output trace logs by defining `_APPAUTHTRACE`

# 0.93.0 (2018-06-26)

## Notable Changes

1. Implements OpenID Connect (ID Token handling) and the OpenID Connect
   RP Certification test suite.
   https://github.com/openid/AppAuth-iOS/pull/101

2. The `OIDAuthorizationUICoordinator` pattern was genericized to
   support non-authorization external user-agent flows like logout
   (though none are directly implemented by AppAuth, yet).
   `OIDAuthorizationUICoordinator*` classes renamed to
   `OIDExternalUserAgent*`.
   https://github.com/openid/AppAuth-iOS/pull/196
   https://github.com/openid/AppAuth-iOS/pull/212
   See [Upgrading to 0.93.0](#upgrading-to-0930).

3. Added custom browser support on iOS. Provides several
   convenience implementations of alternative external user-agents on
   iOS such as Chrome and Firefox. These are intended for
   **enterprise use only**, where the app developers have greater
   control over the operating environment and have special requirements
   that require a custom browser like Chrome.
   See the [code example](https://github.com/openid/AppAuth-iOS/issues/200#issuecomment-364610027).
   https://github.com/openid/AppAuth-iOS/issues/200
   https://github.com/openid/AppAuth-iOS/pull/201

## Upgrading to 0.93.0

0.93.0 deprecates several methods. To update your code to avoid the
deprecated methods (which will be required for the 1.0.0 release),
you will need to make changes.

If you implemented your own `OIDAuthorizationUICoordinator`, or called
the methods which accepted a `UICoordinator` instance, you will need to
update to the new method names. See the deprecation error messages
for the new methods to use in those cases.

Most users who are using the convenience methods of AppAuth will only
need to make the following 3 minor changes to their AppDelegate:

### Import:

Change
```objc
@protocol OIDAuthorizationFlowSession;
```
to
```objc
@protocol OIDExternalUserAgentSession;
```

### Property:

Change
```objc
@property(nonatomic, strong, nullable) id<OIDAuthorizationFlowSession> currentAuthorizationFlow;
```
to
```objc
@property(nonatomic, strong, nullable) id<OIDExternalUserAgentSession>currentAuthorizationFlow;
```

###  Implementation of `-(BOOL)application:openURL:options:`
Change
```objc
if ([_currentAuthorizationFlow resumeAuthorizationFlowWithURL:url]) {
```
to
```objc
if ([_currentAuthorizationFlow resumeExternalUserAgentFlowWithURL:url]) {
```

See also the changes made to the sample which you can copy:
https://github.com/openid/AppAuth-iOS/commit/619bb7c7d5f83cc2ed19380d425ca8afa279644c?diff=unified

# 0.92.0 (2018-01-05)

## Improvements

1. Added an official Swift sample, and included Swift testing in the
   continuous integration tests.

# Pre 0.92.0

No changelog entries exist for changes prior to 2018, please review the
[git history](https://github.com/openid/AppAuth-iOS/commits/0.91.0).

repository: openid/AppAuth-iOS

gha_language: Objective-C

repo_name: openid/AppAuth-iOS


text:
+++
title="Generating a run.Dockerfile that extends the runtime base image"
weight=406
+++

<!-- test:suite=dockerfiles;weight=6 -->

Run images can be kept lean if image extensions are used to dynamically install the needed dependencies
for the current application.

### Examine `cowsay` extension

#### detect

<!-- test:exec -->
```bash
cat $PWD/samples/extensions/cowsay/bin/detect
```

The extension always detects (because its exit code is `0`) and provides a dependency called `cowsay`.

#### generate

<!-- test:exec -->
```bash
cat $PWD/samples/extensions/cowsay/bin/generate
```

The extension generates a `run.Dockerfile` that installs `cowsay` on the current run image.

### Configure the `hello-extensions` buildpack to require `cowsay`

Set the `BP_REQUIRES` build-time environment variable to configure the `hello-extensions` buildpack to require both `vim` and `curl` (review the `./bin/detect` script to see why this works).

<!-- test:exec -->
```bash
pack build hello-extensions \
  --builder localhost:5000/extensions-builder \
  --env BP_EXT_DEMO=1 \
  --env BP_REQUIRES=vim,curl,cowsay \
  --path $PWD/samples/apps/java-maven \
  --pull-policy always \
  --network host \
  --verbose
```

Note that `--network host` is necessary when publishing to a local registry.

You should see:

```
...
[detector] ======== Results ========
[detector] pass<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] pass<EMAIL_ADDRESS>[detector] Resolving plan... (try #1)
[detector] samples/vim             0.0.1
[detector] samples/curl             0.0.1
[detector] samples/cowsay           0.0.1
[detector] samples/hello-extensions 0.0.1
[detector] Running generate for extension<EMAIL_ADDRESS>...
[detector] Running generate for extension<EMAIL_ADDRESS>...
[detector] Running generate for extension<EMAIL_ADDRESS>...
[detector] Found a run.Dockerfile from extension 'samples/curl' setting run image to 'localhost:5000/run-image-curl'
...
[extender (build)] Found build Dockerfile for extension 'samples/vim'
[extender (build)] Applying Dockerfile at /layers/generated/build/samples_vim/Dockerfile...
[extender (run)] Found run Dockerfile for extension 'samples/curl'
[extender (run)] Found run Dockerfile for extension 'samples/cowsay'
[extender (run)] Applying Dockerfile at /layers/generated/run/samples_curl/Dockerfile...
...
[extender (run)] Applying Dockerfile at /layers/generated/run/samples_cowsay/Dockerfile
...
[extender (build)] Running build command
[extender (build)] ---> Hello Extensions Buildpack
[extender (build)] VIM - Vi IMproved 9.0 (2022 Jun 28, compiled May 19 2023 16:28:36)
...
Successfully built image hello-extensions
```

Note: build image extension and run image extension are done in parallel,
so the log lines for those phases may print in a different order from that shown above.

### See the image run successfully

<!-- test:exec -->
```bash
docker run --rm --entrypoint cowsay hello-extensions
```

You should see something akin to:

```
 ________
< MOOOO! >
 --------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||
```

repository: buildpacks/docs

gha_language: HTML

repo_name: buildpacks/docs


text:
# filetailor
A simple file tailor

This simple npm package allows you to tail files and perform actions based on matched patterns.

Example:

```
var filetailor = require('filetailor');

var config = {
    "test.log" : [
    {
        match: /ERROR/,
        action: function(data) { console.log("Got error!", data); }
    }
]
};

filetailor(config);
```
To Do:
* ~~Write tests~~ Basic tests done
* Add simple URL actions to post matched data
* Write own file tailing code which does better error handling
* Add action thresholds
* Add CLI version with JSON config

repository: munimkazia/filetailor

repo_name: munimkazia/filetailor


text:
# azure-zone-upload

*azure-zone-upload* is a tool to add zone information to Azure DNS zones. It
reads records from a CSV file and adds them to a DNS zone via the Azure API.
To avoid harm records already existing in the zone are skipped and a warning
message is shown.

## Getting Started

The instructions below will help you to run *azure-zone-upload* on your system.

### Prerequisites

First install the prerequisites:

**TODO**

### Download Source Code

Download **DNS Tools** to your system:

```bash
git clone https://github.com/devsecurity-io/dns-tools.git
```

### Usage

Before *azure-zone-upload* can be used, a service principal with appropriate
permissions is need. The following command creates a service principal with the
role "DNS Zone Contributor" scoped to a given subscription:

```bash
SERVICE_PRINCIPAL_NAME="dns-zone-contributor"
SUBSCRIPTION_ID="<id of the subscription>"
SP_PASSWD=$(az ad sp create-for-rbac --name "http://${SERVICE_PRINCIPAL_NAME}" --role "DNS Zone Contributor" --scopes /subscriptions/${SUBSCRIPTION_ID} --query password --output tsv)
SP_APP_ID=$(az ad sp show --id "http://${SERVICE_PRINCIPAL_NAME}" --query appId --output tsv)
echo "Client ID: ${SP_APP_ID}"
echo "Client Secret: ${SP_PASSWD}"
```

In order to upload zone information to an Azure DNS zone execute
*azure-zone-upload* and supply it with the CSV file to be uploaded and the
respective Azure DNS zone as parameters:

```bash
python azure-zone-upload.py --tenant-id <tenant id> --subscription-id <subscription id> --resource-group <resource group> --client-id <client id> --zone <zone name> --csv-file <filename>
```

## Known Limitations

- *azure-zone-upload* can only handle the following DNS record types:
  - A
  - AAAA
  - CNAME

  Other record types are not supported by *azure-zone-upload*. If such records
  exist in a CSV file provided a warning is displayed.

In case you have modified *azure-zone-upload* to support more record types
please share it with the community and create a pull request.

## Contributing

If you consider *azure-zone-upload* to be useful and would like to contribute
please create a pull request. This especially makes sense if you are facing the following error message:

``Record(s) of type <type> in CSV file which is currently not supported by the tool. Please handle records manually.``

## Authors

- **[Matthias Dettling](mailto:md@devsecurity.io)**

## License

This project is licensed under the MIT License - see the [LICENSE](../LICENSE)
file for details.

repository: devsecurity-io-old/dns-tools

repo_name: devsecurity-io-old/dns-tools


text:
---
title: Logging into Youtube in Firefox Multiaccount Containers
date: 2022-04-01 10:00:00 +01:00
tags:
- howto
author: jamesleighton
layout: post
status: Published
image: "/images/kazam_screenshot_00001.png"
---

[Multi account containers ](https://addons.mozilla.org/en-GB/firefox/addon/multi-account-containers/ "Multi Account Containers Firefox Addon")in Firefox are fantastic. They let you separate your browsing into individual silos which means Google can't get track you as effectively across the web.

However, it was a pain to get Youtube to log in successfully even after adding google.com, youtube.com, accounts.google.com to the Google container site list. Every attempt to sign in bounced off to a 500 server error page.

The trick is to add 'accounts.youtube.com' to the container site list too. This is part of the redirect when you sign into Youtube and will cause your login to fail if it tries to load outside of the google container where all the delicious cookies are!

The next issue is there is no easy way to add ad-hoc URLs to a site list of a container. To get around this:

1. Open accounts.youtube.com -you will see a 404 error but that is fine for our purposes
2. Click Always Open in Container in the address bar
3. Select your Google container
4. Tick 'Remember my Decision for this site'

Now you will be able to successfully log in to YouTube!

![](/images/kazam_screenshot_00001.png "Always Open Site in Container")

![](/images/kazam_screenshot_00002.png)

gha_language: JavaScript


text:
# deletion

Provides basic deletion services. Media services may nominate items for
deletion, and admin users may execute those deletions. Deletions may be:
- Playlist
- Schedule
- Series
- Season
- Episode

## Exposed Interface

- POST /nominate/:type/:name
  :type is one of playlist, schedule, series, or episode. :name is either the
  name of the schedule or playlist, or the catalog-id for series, season, or
  episode.
  * {"status":"ok"} deletion record created
  * {"status":"failed", "message":msg} means that a deletion record could not be
  created for the item. Example failures would be because an *outstanding*
  record already exists, or database issues.
- POST /execute/:type/:name
  Same as above, except a record for :type/:name must already exist, and that
  item should be deleted.
  * {"status":"ok"} record was deleted
  * {"status":"failed","message":msg} means that the deletion could not be
    performed for some reason.
- POST /reject/:type/:name
  Same as above for :type/:name. This means the execution was rejected. This
  does not prevent a new nomination from being created.

## Prerequisites

You will need [Leiningen][] 2.0.0 or above installed.

[leiningen]: https://github.com/technomancy/leiningen

## Running

To start a web server for the application, run:

    lein ring server

## License

Copyright © 2020 Raymond Poling
Released under the MIT License: [http://www.opensource.org/licenses/mit-license.php](http://www.opensource.org/licenses/mit-license.php)

repository: raymondpoling/rerun-tv

gha_language: Clojure

repo_name: raymondpoling/rerun-tv


text:
# Wand

Wand is a simple tool for serving a single file over HTTP.

## Usage

Pass a file of any type to wand to start an HTTP server with one route, `/`. Wand will respond to `GET` requests made to this endpoint with the contents of the file. The following command line arguments may also be provided:

        -p, -port
        Set the port to bind Wand to. Default: 11002

        -s, -script
        Execute the file when it is requested. Default: false

## Script Mode
When `-s` is passed, the file will be run as a shell script and Wand will produce a JSON response containing the output of the script as `value`.

## License
[Apache License 2.0](LICENSE.md)

repository: supernintendo/wand

repo_name: supernintendo/wand


text:
# Packer template for building VMWare ESXi 6.0 with latest fixes

Latest version:

  * ESXi600-201706001 (Profile name: ESXi-6.0.0-20170304001-standard)
    Release Date: 06/06/2017
    Build Number: 5224934
    SHA1: d4178dfddef01e9585c6c11ae20a1e1869c20457

## Prerequisites

* [Packer](http://packer.io) > 0.8
* VMware Fusion or Workstation

## Build artifacts

This packer template requires to variables to be set either via command line or separate JSON file:

1. `iso_file` - is the ESXi ISO for the build (can be local or remote).
1. `iso_sha1sum` - is the SHA1 sum of the ISO you want to build.

To kick off a full build:

```shell
packer build \
       -var 'iso_file=/Volumes/isos/VMWare/ESXi/VMware-VMvisor-Installer-6.0.0.update03-5050593.x86_64.iso' \
       -var 'iso_sha1sum=37c5b91914d605cd1cd36dd12aa927baed15e652' \
       packer-esxi.json
```

The Packer template and the scripts have been tested with ESXi version 6.0.

Default `root` password for the resulting Vagrant box is `vagrant`.

There is a convenience script provided to build a known version of the vagrant box.

```shell
./build-6.0.0.update02.sh
```

To kick off a full debug build:

```shell
PACKER_LOG=1 PACKER_LOG_PATH=build.log packer build \
       -var 'iso_file=/Volumes/isos/VMWare/ESXi/VMware-VMvisor-Installer-6.0.0.update03-5050593.x86_64.iso' \
       -var 'iso_sha1sum=37c5b91914d605cd1cd36dd12aa927baed15e652' \
       packer-esxi.json
```

## Legal

Copyright © 2015 VMware, Inc.  All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the “License”); you may not
use this file except in compliance with the License.  You may obtain a copy of
the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an “AS IS” BASIS, without warranties or
conditions of any kind, EITHER EXPRESS OR IMPLIED.  See the License for the
specific language governing permissions and limitations under the License.

repository: akaer/esxi-packer-templates

repo_name: akaer/esxi-packer-templates


text:
# LibFlott Python

Python bindings for string comparison of normalized t-information and t-complexity distance from libflott by Niko Rebenich

https://github.com/ardeego/libflott

## Build & Install

```
git submodule update --init
python3 setup.py build
python3 setup.py install --record installed_files.txt
```

to uninstall remove the files recorded in installed_files.txt

## Run

```
import flott
nti_dist = flott.nti_dist("string","strings")
ntc_dist = flott.ntc_dist("string,"strings)
```

## License

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

repository: mike-anderson/libflott-python

repo_name: mike-anderson/libflott-python


text:
---
redirect_from:
  - videos/chinese-ginger-scallion-sauce.html
  - recipes/chinese-ginger-scallion-sauce.html
layout: post
categories: [videos, recipes]
tags: [recipes, sauces, ginger, scallion]
excerpt:
title: "Chinese Ginger Scallion Sauce"
image:
  feature: 155-1.jpg
---

Ginger scallion sauce is one of those go-to sauces you see at every Chinese restaurant.  It's especially popular in the Chinese barbecue shops that serve char siu, roasted duck and chicken -- you know, the ones that hang their meat right at the window for everyone to see.  You can always ask for a side of ginger scallion sauce to take home with your bbq-ed meats.

I did a video (coming up) accompanying this recipe as well and in there, I used a rotisserie chicken I bought from the supermarket.  It is much easier and saves a lot of time, but the sauce does work best with a poached chicken that has less seasoning sicne the sauce is already salty.  This sauce is also a good way to use up chicken you used to make homemade chicken stock, if you do that kind of stuff.  I always thought it was such a waste that people threw whole chickens out.  Well, this sauce is the perfect condiment to that chicken...and really any bland meat you're looking to pick up.

__Tips__

- There's nothing too hard about the recipe.  Grating the ginger does take a while, but you can try smashing the ginger pieces and then chopping it up to save time.
- Warming the oil just a bit before pouring it into the ginger and scallions will help all the flavors release, creating a better sauce.

__Directions__

__1. Peel and grate ginger into a small bowl.__

__2. Cut scallions into small pieces omitting the very green tops.  Put into bowl with ginger.__

__3. Add in lemon juice, salt, sugar and soy sauce.__

__4. Heat oil in a small saucepan over medium to medium-high heat until just warmed.  Once heated, carefully pour oil into your ginger scallion mixture.__

__5. Serve over chicken.__

Ingredients

(makes 1/3 cup)

2 inches ginger

4 stalks of scallion

1 teaspoon lemon juice

2 teaspoons sugar

dash of salt

2 tablespoons soy sauce

1/4 cup oil

repository: Ibexian/gatsby-advanced-starter

repo_name: Ibexian/gatsby-advanced-starter


text:
---
title: "Camel K Observability: Micrometer Metrics"
date: 2023-08-03
draft: false
authors: [gansheer]
categories: ["Camel K", "Features", "Devops"]
preview: "Camel K 2.0: What changes to expect about Integration Metrics"
---

We already explained how to take monitor your Integrations in the previous blog post about [monitoring](/blog/2022/07/camel-k-monitoring-ops/) operations on Camel K. The good news is there are only a few changes with the move to [Micrometer Metrics](https://micrometer.io/).

## From Microprofile to Micrometer

Camel K 2.0 was the occasion to move from one technology (Microprofile) to another (Micrometer) for the [Prometheus trait configuration](/camel-k/next/traits/prometheus.html) implementation.

The reason is the deprecation notice from [Quarkus Microprile's implementation](https://quarkus.io/guides/smallrye-metrics) in favor of using [Micrometer Metrics](https://quarkus.io/guides/telemetry-micrometer). This decision follows a [long period of transition](https://quarkus.io/blog/micrometer-metrics/) from Quarkus project.

This change brings some powerful improvments for your monitoring. Micrometer delivers more advanced features such as hierarchical meters and dimensional data models, while MicroProfile Metrics provides a simpler API with basic metric types such as counters and gauges. Additionaly, Micrometer provides a simple facade over the instrumentation clients for the most popular monitoring systems, letting any library provides its own metrics through it.

## Camel framework changes expected in Micrometer

Metrics are generated by two types of sources:
* the libraries powered by Camel components
* the Micrometer Camel component

Since Micrometer provides a facade, the changes in the default metrics from the libraries powered by camel components will depend on what they expose.

Before Camel K 2.0, the [default camel metrics](/components/3.21.x/microprofile-metrics-component.html#_default_camel_metrics) where provided by the camel Microprofile Metrics component. Now they [default camel metrics](/components/next/micrometer-component.html#_default_camel_metrics) are provided by the Micrometer Component. As you can see in the documentations, there are some changes in the naming and the metrics.

> **_NOTE:_**  There has been some recent change in the Micrometer Camel component on naming conventions so depending on your camel version you can expect **'CamelExchangesTotal'** to change to **'camel.exchanges.total'** starting from Camel 4. Please refer to the [compatibility matrix](/camel-k/next/index.html#_compatibility_matrix) to know which version of Camel is used.

One of the most important change concerns the notions of *route* and *context* in the metrics:
```
# Microprofile metrics
# HELP application_camel_context_exchanges_total The total number of exchanges for a route or Camel Context
# TYPE application_camel_context_exchanges_total counter
application_camel_context_exchanges_total{camelContext="camel-1"} 0.0
# HELP application_camel_route_exchanges_total The total number of exchanges for a route or Camel Context
# TYPE application_camel_route_exchanges_total counter
application_camel_route_exchanges_total{camelContext="camel-1",routeId="route1"} 0.0
application_camel_route_exchanges_total{camelContext="camel-1",routeId="route2"} 0.0

# Micrometer metrics
# TYPE CamelExchangesTotal counter
# HELP CamelExchangesTotal Total number of processed exchanges
CamelExchangesTotal_total{camelContext="camel-1",routeId="route2",serviceName="MicrometerRoutePolicyService"} 0.0
CamelExchangesTotal_total{camelContext="camel-1",routeId="route1",serviceName="MicrometerRoutePolicyService"} 0.0
```

The best way to anticipate the changes you should expect is to verify the exposed metrics accessing to _/q/metrics_ endpoint of your integrations as explained in the blog post about [monitoring](/blog/2022/07/camel-k-monitoring-ops/).

# Conclusion

As Metric is one of the pillar of Observability, this blog gave a better understanding on how to embrace the changes introduced in Camel K 2.0.

If you have any feedback, ideas or find a new issue, please [create a new issue report in GitHub](https://github.com/apache/camel-k/issues)!

repository: apache/camel-website

gha_language: CSS

repo_name: apache/camel-website


text:
### [CVE-2021-0332](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-0332)
![](https://img.shields.io/static/v1?label=Product&message=Android&color=blue)
![](https://img.shields.io/static/v1?label=Version&message=n%2Fa&color=blue)
![](https://img.shields.io/static/v1?label=Vulnerability&message=Elevation%20of%20privilege&color=brighgreen)

### Description

In bootFinished of SurfaceFlinger.cpp, there is a possible memory corruption due to a use after free. This could lead to local escalation of privilege with User execution privileges needed. User interaction is not needed for exploitation.Product: AndroidVersions: Android-11 Android-10Android ID: A-169256435

### POC

#### Reference
No PoCs from references.

#### Github
- https://github.com/ARPSyndicate/cvemon
- https://github.com/SYRTI/POC_to_review
- https://github.com/Satheesh575555/frameworks_native_AOSP10_r33_CVE-2021-0332
- https://github.com/TinyNiko/android_bulletin_notes
- https://github.com/WhooAmii/POC_to_review
- https://github.com/manas3c/CVE-POC
- https://github.com/nomi-sec/PoC-in-GitHub
- https://github.com/trhacknon/Pocingit

repository: trickest/cve

repo_name: trickest/cve


text:
## Task and requirements
Write a password generator in Python. Strong passwords have a mix of the following:

 - lowercase letters
 - uppercase letters
 - numbers
 - symbols
 - must start with a letter (uppercase or lowercase)
 - 8 character long

The passwords should be random. It should generate a new password every time the user asks for a new password.
I went a little further and chose a requirement for the password to start with a letter (uppercase or lowercase), as it will be easier to remeber.
Also, it should have 8-character length, again, for the user to remember it easier.

Additional future projects:
 - Create a simple calculator (Ruby or Python)
 - Build a weight conversion tool (Ruby or Python)

repository: HovhannesHovakimyan/easyPassGenPY

repo_name: HovhannesHovakimyan/easyPassGenPY


text:
# microphone-game-controller

Counts above-average spikes in microphone vlume and provides a speed gauge in ticks per second.

Usage: not intended yet :D

DEMO https://naugtur.pl/microphone-game-controller/

repository: naugtur/microphone-game-controller

repo_name: naugtur/microphone-game-controller


text:
# Image Classification using Python and Deep Learning

This repo contains the code to perform a simple image classification task using Python and Deep Learning. We will apply global feature descriptors such as Color Histograms.

## Summary of the project

For now the app can determine only 5 flowers.We will update when we teach more flowers.

## Technologies we used

Project has two stages;
First one is model of the flower recognition.We used Python and Tensorflow there.
Second one is App's texture and the rest.We used TensorflowHub and Android Studio there.

repository: HabibullahMetin/FlowerRecognition

repo_name: HabibullahMetin/FlowerRecognition


text:
# apostrophe-locks
## Inherits from: [apostrophe-module](./apostrophe-module/README.md)
### `apos.locks`

## Methods
### lock(*name*, *options*, *callback*)
Obtain a lock with the given name. The lock remains exclusive until
we unlock it (except for certain situations in unusual synchronous code,
see below).

We MUST release the lock later by calling `unlock` with the same name.

If the lock is in use by another party, this method will wait until it is
no longer in use, unless `options.wait` is present. If `options.wait`
is explicitly `false`, the method will not wait at all, and
the error reported will be the string `'locked'`. If `options.wait`
is a number, the method will wait that many milliseconds before
reporting the `locked` error.

The `options` argument can be omitted completely.

Calling this method when you already have the specified lock will
yield an error unless the `waitForSelf` option is true.

If you call without a callback, a promise is returned instead.

SYNCHRONOUS CODE: if you need to go more than 30 seconds without ever returning to the
event loop, set `options.idleTimeout` to a longer period of time (in milliseconds).
This applies only to synchronous code. (And seriously, why  are you running
without returning for 5 minutes in nodejs? Nobody can see your site while you do that.)
### unlock(*name*, *callback*)
Release the given lock name. You must first obtain a lock successfully
via `lock`. Calling this method when you do not already have the lock will
yield an error.

If you call without a callback, a promise is returned instead.
### withLock(*name*, *fn*, *callback*)
Obtains the named lock, then invokes the provided function,
which must take one argument (a callback), or
take zero arguments and return a promise. Then `callback`
is invoked or, if there is no callback, an error is returned.

You can think of this as an "upgrade" of your function to
run within a lock in every way. If you use promises,
the promise returned by `withLock` will resolve to the
value that `fn` resolves to. If you use callbacks, the
second argument is passed on as you would expect.

You may omit `callback`, in which case `withLock`
returns a promise.

The lock gets released at the end, whether fn results in an
error or not.
### ensureCollection(*callback*)

repository: apostrophecms/apostrophe-documentation

gha_language: Shell

repo_name: apostrophecms/apostrophe-documentation


text:
# refresh-wifi

<img src="logo.png" width="150px">

Small app to remove stale macOS WiFi preferences from `/Library/Preferences/SystemConfiguration/` to "refresh" WiFi.

It basically executes this shell script:

```
sudo rm -f
    /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist
    /Library/Preferences/SystemConfiguration/com.apple.network.identification.plist
    /Library/Preferences/SystemConfiguration/com.apple.wifi.message-tracer.plist
    /Library/Preferences/SystemConfiguration/NetworkInterfaces.plist
    /Library/Preferences/SystemConfiguration/preferences.plist
```

## Motivation

After some time, or after macOS updates WiFi stops working in stable way. Either it loses connection every few minutes, requires restarting, router restarting, etc.

Often it's recommended simply to remove WiFi preferences and restart your computer. It works for me and people around me, thus I created this app so not only me, but less tech savvy people could do this themselves without any help.

## Use

### As app

1. Download app from [realese tab](https://github.com/trimailov/refresh-wifi/releases/latest)
2. Unzip it
3. Run it.

### As script

1. Download project as zip
2. Copy `rm_wifi_preferences.workflow` to `/Library/Scripts/`
3. You can run it from your menu bar *

\* To run workflow as script, you may need to open `Script Editor.app` and in General preferences tab select `Show Script menu in menu bar`.

repository: trimailov/refresh-wifi

repo_name: trimailov/refresh-wifi


text:
# Latinum

Latinum is a library for resource and money calculations. It provides immutable {ruby Latinum::Resource} objects for dealing with quantities of named resources with an arbitrary number of decimal places, and {ruby Latinum::Bank} objects for converting resources and formatting them for output. Latinum doesn't include any global state by design and thus is ideal for integration with other frameworks/libraries.

[![Development Status](https://github.com/ioquatix/latinum/workflows/Development/badge.svg)](https://github.com/ioquatix/latinum/actions?workflow=Development)

## Motivation

I was originally planning on using the [Money gem](https://github.com/RubyMoney/money), but it's [dependency on global state](https://github.com/RubyMoney/money/blob/39b617cca8f02c885cc8246e0aab3e9dc5f90e15/lib/money/currency.rb#L19-L21) makes it hard to use if you want to deal with money as an immutable value type.

Additionally, I wanted to support BitCoin, Japanese Yen, etc. The money gem was heavily biased towards decimal currency. It had (\~2012) [fields like `dollars` and `cents`](https://github.com/RubyMoney/money/issues/197) which don't really make sense and don't really align with the real world. These days they have fixed parts of the API, but it's a bit of a mess now, supporting both decimal and non-decimal values.

Another problem I had at the time was the [concept of zero](https://github.com/RubyMoney/money/issues/195). It should be possible to have an additive (e.g. 0) and multiplicative identity (e.g. 1) do the right thing. In fact, in Latinum, you can multiply `Latinum::Resource` instances by a scalar and get a useful result (e.g. for computing discounts).

Finally, because of the above problem, it was not obvious at the time how to sum up a collection of money instances correctly. In fact, this is still a problem and a separate gem, based on the `Latinum::Collection` concept, [was made](https://github.com/lulalala/money-collection). However, this all fits together in a rather haphazard way.

Latinum addresses all these issues. It has an immutable value type `Latinum::Resource` which has a robust definition: A value (e.g. 5.0025) and a resource name (USD). The semantics of resources are well defined without the need for "Currency" state like the symbol, how many decimal places, etc. So, it suits well for serialization into a database, and for formatting to the user, there is `Latinum::Bank` which gives you the choice of how you decide to format things or exchange them, whether you want to round something off, etc.

## Usage

Please see the [project documentation](https://ioquatix.github.io/latinum).

## Contributing

We welcome contributions to this project.

1.  Fork it.
2.  Create your feature branch (`git checkout -b my-new-feature`).
3.  Commit your changes (`git commit -am 'Add some feature'`).
4.  Push to the branch (`git push origin my-new-feature`).
5.  Create new Pull Request.

## License

Copyright, 2015, by [Samuel G. D. Williams](https://www.codeotaku.com).

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

repository: ioquatix/latinum

gha_language: Ruby

repo_name: ioquatix/latinum


text:
![screenshot](docs/ng-logo2_l.png)

I wanted a little tool that gives me a quick overview on what's going in my network right now, displaying it in the browser  so I can access it easily whenever I want. Tools like tcpdump or [Wireshark](https://www.wireshark.org/) are great but don't give you this 'glimpse'.

net-glimpse has two parts: 1) Visualization of network traffic (Ethernet and/or Internet) in real-time, and 2) Streaming of header data from your network interfaces via WebSockets.

**Have a look at [this video](https://youtu.be/Nvm5NaTZLGY).**

![screenshot](docs/screenshot6.png)

### Used technologies

* Scala, JavaScript
* Pcap4J (https://github.com/kaitoy/pcap4j) to access network interfaces
* Play Framework and sbt
* [Akka](http://akka.io/) to distribute network interface data to multiple WebSockets
* Graphics with [p5js](https://p5js.org/) and physics with [toxiclibs](https://github.com/hapticdata/toxiclibsjs)

### Contents

* [How to run](#how-to-run)
  * [Prerequisites](#prerequisites)
  * [Install and run](#install-and-run)
* [Visualization of network traffic](#visualization-of-network-traffic)
  * [Endpoints](#endpoints)
  * [Visualization Details](#visualization-details)
  * [Visualization Configuration](#visualization-configuration)
* [Streaming of header data from your network interfaces via WebSockets](#streaming-of-header-data-from-your-network-interfaces-via-websockets-backend)
  * [Usage in JavaScript](#usage-in-javascript)
  * [Backend configuration](#backend-configuration)
* [Build yourself and modify the source code](#build-yourself-and-modify-the-source-code)

## How to run

net-glimpse works on **Linux/Unix** (including **Mac OS X**) and **Windows**.

### Prerequisites

* net-glimpse needs **Java 8** (JRE is enough) to run.
* For the visualizations you need a modern browser (one that supports WebSockets and WebGL).
* On **Windows** it is necessary to install _Npcap_ (https://nmap.org/npcap/) **OR** _WinPcap_ (https://www.winpcap.org/). On **Linux/Unix** _libpcap_ is needed.

### Install and run

1. [Download the net-glimpse-x.x.zip](https://github.com/kristian-lange/net-glimpse/releases)

1. Unzip and change into the unzipped folder

1. On **Linux or Unix** to access network interfaces you have to start the net-glimpse either as **root** or give Java special capabilities, e.g. with `sudo setcap cap_net_raw,cap_net_admin=eip /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java` (but exchange the path to your Java installation). On **Windows** you will be ask after starting net-glimpse's batch file if you want to grant access to the network interfaces.

1. On **Unix** it might be necessary to make the run script executable: `chmod u+x ./bin/net-glimpse`

1. Run on **Linux or Unix** in the terminal `./bin/net-glimpse` - on **Windows** double-click the `./bin/net-glimpse.bat`

   You can specify IP and port with the parameters `-Dhttp.address` and `-Dhttp.port`. E.g. `./bin/net-glimpse -Dhttp.address=<IP_ADDRESS> -Dhttp.port=8080` binds net-glimpse to IP `<IP_ADDRESS>` and port `8080`. If you don't specify these parameters the defaults `<IP_ADDRESS>` (listens all addresses) and `9000` are used.

   If net-glimpse does not want to start have a look in its installation folder whether you find a file RUNNING_PID. Delete it and start again.

1. Try in a browser, e.g. with `http://localhost:9000/?nif=myNetworkInterface` (instead of `myNetworkInterface` use the name of the network interface you want to intercept)

   net-glimpse prints out potential network interface names (NIF) in it's log. You can copy-paste one from there. This is especially handy on **Windows** where they have names like, e.g. `\Device\NPF_{998BB72F-3468-413E-813C-7E3A2E7B591B}` which would lead to the URL `http://localhost:9000/?nif=\Device\NPF_{998BB72F-3468-413E-813C-7E3A2E7B591B}`.

   The resulting webpage shows a list of raw packet header data in JSON format.

   ![screenshot](docs/screenshot4.png)

1. If you are done with net-glimpse you can stop it with `Ctrl+C`.

## Visualization of network traffic

### Endpoints

1. `http://localhost:9000/glimpse?nif=myNetworkInterface` - shows both, Ethernet and Internet

1. `http://localhost:9000/ipglimpse?nif=myNetworkInterface` - shows only Internet

1. `http://localhost:9000/etherglimpse?nif=myNetworkInterface` - shows only Ethernet

1. `http://localhost:9000/?nif=myNetworkInterface` - shows raw packet header data in JSON

E.g. [`http://localhost:9000/glimpse?nif=wlp3s0`](http://localhost:9000/glimpse?nif=wlp3s0) shows a visualization of the Ethernet layer and the Internet layer of the network interface `wlp3s0`.

![screenshot](docs/screenshot5.png)

**You can open multiple pages of the same or different network interface(s) at the same time.**

### Visualization Details

* You can press 'p' to pause the drawing at any time
* It's actually a [force-directed graph](https://en.wikipedia.org/wiki/Force-directed_graph_drawing)
* Nodes represent MAC or IP addresses
* Node colors are determined by the MAC or IP address (means the same MAC or IP address leads always to the same color)
* Nodes with broadcast or multicast IP addresses are white.
* Nodes and edges blink when a new packet is sent
* Edges represent sent packets
* The arrow shows the direction of the sent packet
* The edges get thicker the more packets are sent
* The EtherType (in the Ethernet visualization) is annotated at the edge (scroll down - under the graphic is a glossary)
* In the Internet visualization if it is a TCP or UDP packet and the port is one of the well known or registered ones (port 0 to 49151) the port is annotated at the edge. The most common port numbers are exchanged with their names, eg. port 22 is exchanged with SSH (scroll down - under the graphic is a glossary).
* If it's the Internet and not a TCP or UDP packet then the protocol name is annotated at the edge.
* Edges of unknown EtherTypes or Internet packets are black/gray by default (but you can add new types in the config)
* Nodes and edges get removed after a while if no packets are sent (default is 10 s)
* In fullscreen mode the whole screen is used for the graph(s) - otherwise they have a squared canvas

### Visualization Configuration

Many parameters of the visualizations can be changed, e.g.

* Edge colors and annotation
* Node size and node repulsion
* Cleaning interval and max age of nodes
* Blacklist and whitelist for IP and MAC addresses

The configuration file is in [`./config/glimpse.conf`](https://github.com/kristian-lange/net-glimpse/blob/master/conf/glimpse.conf). More details are in the comments of the config file.

![screenshot](docs/screenshot2.png)

## Streaming of header data from your network interfaces via WebSockets (backend)

Usually it's not possible to access network interfaces from within a browser. net-glimpse uses pcap4j to access the interfaces and then streams the header data via WebSockets into the browser. You can use this part of net-glimpse independent of the visualization.

### Usage in JavaScript

If you just want to get the header data without the visualization you have to open a WebSocket with the URL `/netdata` and the network interface you want to intercept has to be specified in the query string with the parameter 'nif'.

E.g. in JavaScript (browser) to get traffic from the network interface `wlp3s0` one could write

```javascript
var socket = new WebSocket("ws://myhost/netdata/?nif=wlp3s0");
```

or more generally with secure WebSockets and assuming net-glimpse runs on the same host as your JavaScript is served from.

```javascript
var socket = new WebSocket(
      ((window.location.protocol === "https:") ? "wss://" : "ws://") +
      window.location.host + "/netdata/?nif=wlp3s0");
```

The streamed packet header data are in JSON format.

* It is possible to **stream different network interfaces in parallel**.
* It is also possible to **stream the same network interface to multiple destinations**.
* Only header data are captured and streamed via WebSockets - the actual payload is not read.

### Backend configuration

#### Via -D run parameters

net-glimpse takes a couple of parameters:

* `-Dnif` - Specifies the default network interface. If you specify it here you can leave it out in the URL query. It has no default.
* `-DskipOwnTraffic` - If true net-glimpse's own network traffic (via WebSockets) is not streamed. Default is `true`.
* `-Dsnaplen` - Sets the snap length (see [wiki.wireshark.org/SnapLen](https://wiki.wireshark.org/SnapLen) for more info). Default is `128` byte.
* `-Dhttp.address` - Specifies the IP address net-glimpse runs on. Default is `<IP_ADDRESS>` (listens on all IPs).
* `-Dhttp.port` - Specifies the port net-glimpse runs on. Default is `9000`.

e.g. `./bin/net-glimpse -Dhttp.address=<IP_ADDRESS> -Dhttp.port=80 -Dnif=wlp3s0 -DskipOwnTraffic=false`

#### Via `conf/application.conf`

All parameters that can be specified via -D run parameters can be set in `./conf/application.conf` too.

## Build yourself and modify the source code

If you don't trust net-glimpse' pre-build releases you can build it yourself. It uses [sbt](http://www.scala-sbt.org/) as build tool. Just download the source code and run `sbt dist`. In `./target/universal/` will be the built `.zip` file. More information can be found in https://www.playframework.com/documentation/2.6.x/Deploying or https://www.playframework.com/documentation/2.6.x/BuildOverview.

If you want to modify the source code (e.g. you need more data from the network packets) the following files are probably where you want to start:

* [/app/services/PacketToJsonTransfer.scala](https://github.com/kristian-lange/net-glimpse/blob/master/app/services/PacketToJsonTransfer.scala) - serialises the packet data into JSON (backend-side)
* [/public/netDataReceiver.js](https://github.com/kristian-lange/net-glimpse/blob/master/public/netDataReceiver.js) - deserialising JSON in the browser
* [/public/p5visu.js](https://github.com/kristian-lange/net-glimpse/blob/master/public/p5visu.js) - visalisation with p5.js
* [/public/graph.js](https://github.com/kristian-lange/net-glimpse/blob/master/public/graph.js) - graph data structure and physics

repository: lisidan/net-glimpse

repo_name: lisidan/net-glimpse


text:
#Tethys

A cloud platform for managing services and its virtual machines, storage containers as well as users with their storage containers. Works together with OpenStack. Formerly known as "i5Cloud".

## Getting started

## Contribution guidelines

> Based on [Thoughbot’s Git protocol][thoughtbot].

### How to keep this repository clean

* DON'T commit files that are specific to your development environment or process
* DO your work in feature branches
* DO oberserve issues in JIRA
* DO delete local and remote feature branches after merging
* DO rebase frequently to assimilate to changes

### How to work with your feature branches

    ./otherResources/mysql/create_db.sql

1. **Assign JIRA ticket to yourself, create one if necessary**

2. **Create local feature branch from develop branch**

    git checkout develop
    git pull
    git checkout -b <your-developer-id>-<issue-name>

3a. **Work on your local branch and commit them**

3b. **Rebase frequently and resolve conflicts**

    git fetch origin
    git rebase origin/develop

4. **Repeat 3a and 3b until feature is complete and passed all tests. Share/Push your branch**

    git push origin <your-developer-id>-<issue-name>

5. **Let someone else review and merge your feature branch with the develope branch. Keep track of your actions in JIRA**

### Initial setup
Before you can deploy our application you need to create a few files to fill in necessary information.
To make it easier for you we created several example files, which you can use as a template.
Here is a list of those files:

    ./gradle.properties.example
    ./src/main/resource/oidc/properties.example
    ./src/main/webapp/WEB-INF/classes/META-INF/persistence.xml.example

As you already saw in persistence.xml we are using MySQL. You need to setup a MySQL-Server. To do you can use following provided MySQL-Script:

    ./otherResources/mysql/create_db.sql

Developed by Gordon Lawrenz

repository: learning-layers/Tethys

repo_name: learning-layers/Tethys