est(DEFAULT_REQUEST_LINE_HTTP_1, headers, emptyList(), 0, ByteString.EMPTY, 0, 0, socket)
    assertThat(request.url.toString()).isEqualTo("http://127.0.0.1/")
  }

  @Test fun testAuthorityForm() {
    val socket =
      MockWebServerSocket(
        FakeSocket(
          localAddress = InetAddress.getByAddress("127.0.0.1", byteArrayOf(127, 0, 0, 1)),
          localPort = 80,
        ),
      )
    val requestLine = decodeRequestLine("CONNECT example.com:8080 HTTP/1.1")
    val request = RecordedRequest(requestLine, headers, emptyList(), 0, ByteString.EMPTY, 0, 0, socket)
    assertThat(request.target).isEqualTo("example.com:8080")
    assertThat(request.url.toString()).isEqualTo("http://example.com:8080/")
  }

  @Test fun testAbsoluteForm() {
    val socket =
      MockWebServerSocket(
        FakeSocket(
          localAddress = InetAddress.getByAddress("127.0.0.1", byteArrayOf(127, 0, 0, 1)),
          localPort = 80,
        ),
      )
    val requestLine = decodeRequestLine("GET http://example.com:8080/index.html HTTP/1.1")
    val request = RecordedRequest(requestLine, headers, emptyList(), 0, ByteString.EMPTY, 0, 0, socket)
    assertThat(request.target).isEqualTo("http://example.com:8080/index.html")
    assertThat(request.url.toString()).isEqualTo("http://example.com:8080/index.html")
  }

  @Test fun testAsteriskForm() {
    val socket =
      MockWebServerSocket(
        FakeSocket(
          localAddress = InetAddress.getByAddress("127.0.0.1", byteArrayOf(127, 0, 0, 1)),
          localPort = 80,
        ),
      )
    val requestLine = decodeRequestLine("OPTIONS * HTTP/1.1")
    val request =
      RecordedRequest(
        requestLine,
        headers,
        emptyList(),
        0,
        ByteString.EMPTY,
        0,
        0,
        socket,
      )
    assertThat(request.target).isEqualTo("*")
    assertThat(request.url.toString()).isEqualTo("http://127.0.0.1/")
  }

  @Test fun testIpv6() {
    val socket =
      MockWebServerSocket(
        FakeSocket(
          localAddress =
            InetAddress.getByAddress(
              "::1",
              byteArrayOf(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1),
            ),
          localPort = 80,
        ),
      )
    val request = RecordedRequest(DEFAULT_REQUEST_LINE_HTTP_1, headers, emptyList(), 0, ByteString.EMPTY, 0, 0, socket)
    assertThat(request.url.toString()).isEqualTo("http://[::1]/")
  }

  @Test fun testUsesLocal() {
    val socket =
      MockWebServerSocket(
        FakeSocket(
          localAddress = InetAddress.getByAddress("127.0.0.1", byteArrayOf(127, 0, 0, 1)),
          localPort = 80,
        ),
      )
    val request = RecordedRequest(DEFAULT_REQUEST_LINE_HTTP_1, headers, emptyList(), 0, ByteString.EMPTY, 0, 0, socket)
    assertThat(request.url.toString()).isEqualTo("http://127.0.0.1/")
  }

  @Test fun testHostname() {
    val headers = headersOf("Host", "host-from-header.com")
    val socket =
      MockWebServerSocket(
        FakeSocket(
          localAddress =
            InetAddress.getByAddress(
              "host-from-address.com",
              byteArrayOf(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1),


K4j5UOB95HFO0CzhY4xJxuCix0lDlEUeMdS6EZBkTsUkZ4K74dugyTXS7aNgL8aqjDfkCE0ZbwkCXpaWCKhl8P7VD5jxykivSyxyZrYERbe168LYu9ZYh86IkscgVLE7tWPKmJv11CgoyJltMEbrohtVAQfO4ImltiHEroYEs7RxAarVpY8AwXMcMReFOTYWe5iiLRQxJ5Q8DtJ8LQhWOhIeFESPGsILhbNDRljNbHzNRlTFbk2S3L0NOS6V1KFJYKUbSTcIIhM0wQ/s2TM0SRMNcQmSap3jCH4yhJZKSkwyRHpYYgsFeQ4U7xoCB7VVOExhXepo9ABBsYbvGWKXPME3lyH95YioZ0gssQRWWbI+FaSMkXijZXwgiTlYdPdkNLaETxlyDVIwqeaEus0aTcYcg0RVOkpR3CSJqIddK+90JCxzsDVloyrFd5ZAr4TBKfaWa6boEA7C7s6EpYaeFPjveooY72mjIccLHJ9HUwVlDhKkmutJDJBwnp1rvulJZggKDRfbXAkvC/4l3ozQOG9a8lxjx0i7nV4jSXc7vhe3OwIxjgSHjdEhhsif9YkPGlus3iLFDnWOFhtCZbJg0UbQcIaR67JjthoCyMEZRwhiXWyxO5QxI6w5NhT4U1WsJvDO60J34fW9hwzwlKij6ZAW9ne4L0s8C6XeBMEkd/LQy1VucBRot6QMlbivaBhoBgjqGiCJNhsqVp/S2SsG6DIONCR0dXhvWbJ+MRRZJkkuEjgDXJjFQW6SSL7GXK8Z2CZg7cVsbWGoKmEpzQ5elpiy8Ryg7dMkLLUEauzeO86CuwlSOlgYLojZWeJ9xM3S1PWfEfKl5ISLQ0MEKR8YOB2QfCxJBjrKPCN4f9MkaSsqoVXJBmP7EpFZ9UQfOoOFwSzBN4MQ8LsGrymlipcJQhmy0GaQjPqCHaXRwuCZwRbqK2Fg9wlClZqYicrIgMdZfxTQ0c7TBIbrChxmuzoKG8XRaSrIhhiyNFJkrC7oIAWMEOQa5aBekPCRknCo4IKPrYkvCDI8aYmY7WFtprgekcJZ3oLIqssCSMtFbQTJKwXYy3BY5oCh2iKPCpJOE+zRdpYgi6O2KmOAgvVCYaU4ySRek1sgyFhJ403QFHiVEmJHwtybO1gs8Hr5+BETQX3War0qZngYGgtVZtoqd6vFSk/UwdZElYqyjrF4HXUeFspIi9IGKf4j92pKGAdCYMVsbcV3kRF0N+R8LUd5PCsIGWoxDtBkCI0nKofdJQxT+LtZflvuc8Q3CjwWkq8KwUpHzkK/NmSsclCL0nseQdj5FRH5CNHSgtLiW80Of5HU9Hhlsga9bnBq3fEVltKfO5IaSTmGjjc4J0otcP7QsJUSQM8pEj5/wCuUuC2DWz8AAAAAElFTkSuQmCC\");\
}\
.ace-ambiance .ace_indent-guide {\
background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNQUFD4z6Crq/sfAAuYAuYl+7lfAAAAAElFTkSuQmCC\") right repeat-y;\
}";

  var dom = require("../lib/dom");
  dom.importCssString(exports.cssText, exports.cssClass);
});
/* global jsPDF */
var doc = new jsPDF();
var {
  ComboBox,
  ListBox,
  CheckBox,
  PushButton,
  TextField,
  PasswordField,
  RadioButton,
  Appearance
} = jsPDF.AcroForm;

doc.setFontSize(12);
doc.text("ComboBox:", 10, 105);

var comboBox = new ComboBox();
comboBox.fieldName = "ChoiceFie


  title={TOOD: Task-aligned One-stage Object Detection},
    author={Feng, Chengjian and Zhong, Yujie and Gao, Yu and Scott, Matthew R and Huang, Weilin},
    booktitle={ICCV},
    year={2021}
}
```
# 用法说明

## 安装

在按照 [get_started](../../docs/zh_cn/get_started.md) 一节的说明安装好 MMDet 之后，需要安装额外的依赖包：

```shell
cd $MMDETROOT

pip install -r requirements/multimodal.txt
pip install emoji ddd-dataset
pip install git+https://github.com/lvis-dataset/lvis-api.git"
```

请注意由于 LVIS 第三方库暂时不支持 numpy 1.24，因此请确保您的 numpy 版本符合要求。建议安装 numpy 1.23 版本。

## 说明

### BERT 权重下载

MM Grounding DINO 采用了 BERT 作为语言模型，需要访问 https://huggingface.co/, 如果您因为网络访问问题遇到连接错误，可以在有网络访问权限的电脑上下载所需文件并保存在本地。最后，修改配置文件中的 `lang_model_name` 字段为本地路径即可。具体请参考以下代码：

```python
from transformers import BertConfig, BertModel
from transformers import AutoTokenizer

config = BertConfig.from_pretrained("bert-base-uncased")
model = BertModel.from_pretrained("bert-base-uncased", add_pooling_layer=False, config=config)
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")

config.save_pretrained("your path/bert-base-uncased")
model.save_pretrained("your path/bert-base-uncased")
tokenizer.save_pretrained("your path/bert-base-uncased")
```

### NLTK 权重下载

MM Grounding DINO 在进行 Phrase Grounding 推理时候可能会进行名词短语提取，虽然会在运行时候下载特定的模型，但是考虑到有些用户运行环境无法联网，因此可以提前下载到 `~/nltk_data` 路径下

```python
import nltk
nltk.download('punkt', download_dir='~/nltk_data')
nltk.download('averaged_perceptron_tagger', download_dir='~/nltk_data')
```

### MM Grounding DINO-T 模型权重下载

为了方便演示，您可以提前下载 MM Grounding DINO-T 模型权重到当前路径下

```shell
wget load_from = 'https://download.openmmlab.com/mmdetection/v3.0/mm_grounding_dino/grounding_dino_swin-t_pretrain_obj365_goldg_grit9m_v3det/grounding_dino_swin-t_pretrain_obj365_goldg_grit9m_v3det_20231204_095047-b448804b.pth' # noqa
```

## 推理

在推理前，为了更好的体验不同图片的推理效果，建议您先下载 [这些图片](https://github.com/microsoft/X-Decoder/tree/main/inference_demo/images) 到当前路径下

MM Grounding DINO 支持了闭集目标检测，开放词汇目标检测，Phrase Grounding 和指代性表达式理解 4 种推理方式，下面详细说明。

**(1) 闭集目标检测**

由于 MM Grounding DINO 是预训练模型，理论上可以应用于任何闭集检测数据集，目前我们支持了常用的 coco/voc/cityscapes/objects365v1/lvis 等，下面以 coco 为


://instagram.com/explore/tags/thing" target="_blank" rel="noopener noreferrer">#thing #thing2');
		});

		it('should replace accounts with links in the text', function() {
			default_user.data.bio = '@ACCOUNT_ID_1 @ACCOUNT_ID_2';
			user_endpoint.reply(200, default_user);
			user_media_recent_endpoint.reply(200, default_user_media_recent);
			user_search_endpoint.reply(200, default_user_search);

			return expect(instagram.account({ id: 'ACCOUNT_ID' })).to.eventually.have.property('text', '@ACCOUNT_ID_1 @ACCOUNT_ID_2');
		});

		it('should remove the default image', function() {
			default_user.data.profile_picture = 'https://instagramimages-a.akamaihd.net/profiles/anonymousUser.jpg';
			user_endpoint.reply(200, default_user);
			user_media_recent_endpoint.reply(200, default_user_media_recent);
			user_search_endpoint.reply(200, default_user_search);

			return expect(instagram.account({ id: 'ACCOUNT_ID' })).to.eventually.not.have.property('image');
		});

		describe('user endpoint', function() {
			beforeEach(function() {
				user_search_endpoint.reply(200, default_user_search);
				user_media_recent_endpoint.reply(200, default_user_media_recent);
			});

			it('should 401 on OAuthAccessTokenException', function() {
				user_endpoint.reply(400, { meta: { code: 400, error_type: 'OAuthAccessTokenException', error_message: 'The access_token provided is invalid.' } });

				return expect(instagram.account({ id: 'ACCOUNT_ID' })).to.be.rejected.and.to.eventually.have.property('code', 401);
			});

			it('should 401 on APINotAllowedError', function() {
				user_endpoint.reply(400, { meta: { code: 400, error_type: 'APINotAllowedError', error_message: 'you cannot view this resource' } });

				return expect(instagram.account({ id: 'ACCOUNT_ID' })).to.be.rejected.and.to.eventually.have.property('code', 401);
			});

			it('should 403 on APINotAllowedError when authorized', function() {
				nock('https://api.instagram.com')
					.get('/v1/users/INSTAGRAM_ACCOUNT_ID')
					.query({ access_token: 'INSTAGRAM_USER' })
					.reply(400, { meta: { code: 400, error_type: 'APINotAllowedError', error_message: 'you cannot view this resource' } });
				nock('https://api.instagram.com')
					.get('/v1/users/search')
					.query({ access_token: 'INSTAGRAM_USER', q: 'ACCOUNT_ID' })
					.reply(200, default_user_search);

				return expect(require('.')({ user: 'INSTAGRAM_USER' }).account({ id: 'ACCOUNT_ID' })).to.be.rejected.and.to.eventually.have.property('code', 403);
			});

			it('should 404 on 404', function() {
				user_endpoint.reply(404, { meta: { code: 404, error_type: 'idk', error_message: 'I said IDK' } });

				return expect(instagram.account({ id: 'ACCOUNT_ID' })).to.be.rejected.and.to.eventually.have.property('code', 404)


/*
 * $Id: globals.h,v 1.1 1998/08/14 00:31:23 vixie Exp $
 */

/*
 * Copyright (c) 1997 by Internet Software Consortium
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
 * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
 * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
 * SOFTWARE.
 */

#ifdef MAIN_PROGRAM
# define XTRN
# define INIT(x) = x
#else
# define XTRN extern
# define INIT(x)
#endif

XTRN const char *copyright[]
#ifdef MAIN_PROGRAM
	= {
		NULL
	}
#endif
	;

XTRN const char *MonthNames[]
#ifdef MAIN_PROGRAM
	= {
		"Jan", "Feb", "Mar", "Apr", "May", "Jun",\
		"Jul", "Aug", "Sep", "Oct", "Nov", "Dec",\
		NULL
	}
#endif
	;

XTRN const char *DowNames[]
#ifdef MAIN_PROGRAM
	= {
		"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun",\
		NULL
	}
#endif
	;

XTRN const char *ProgramName INIT("amnesia");
XTRN const char *defmailto;
XTRN int	LineNumber INIT(0);
XTRN unsigned	Jitter;
XTRN unsigned	RootJitter;
XTRN time_t	TargetTime INIT(0);
XTRN struct pidfh *pfh;

#if DEBUGGING
XTRN int	DebugFlags INIT(0);
XTRN const char *DebugFlagNames[]
#ifdef MAIN_PROGRAM
	= {
		"ext", "sch", "proc", "pars", "load", "misc", "test", "bit",\
		NULL
	}
#endif
	;
#endif /* DEBUGGING */


models.wav2vec2.tokenization_wav2vec2_phoneme.Wav2Vec2PhonemeCTCTokenizerOutput`] when
            `output_char_offsets == True`.
        """
        batch_decoded = [
            self.decode(
                seq,
                skip_special_tokens=skip_special_tokens,
                clean_up_tokenization_spaces=clean_up_tokenization_spaces,
                output_char_offsets=output_char_offsets,
                **kwargs,
            )
            for seq in sequences
        ]
        if output_char_offsets:
            # transform list of dicts to dict of lists
            return Wav2Vec2PhonemeCTCTokenizerOutput({k: [d[k] for d in batch_decoded] for k in batch_decoded[0]})

        return batch_decoded

    def save_vocabulary(self, save_directory: str, filename_prefix: Optional[str] = None) -> Tuple[str]:
        if not os.path.isdir(save_directory):
            logger.error(f"Vocabulary path ({save_directory}) should be a directory")
            return
        vocab_file = os.path.join(
            save_directory, (filename_prefix + "-" if filename_prefix else "") + VOCAB_FILES_NAMES["vocab_file"]
        )

        with open(vocab_file, "w", encoding="utf-8") as f:
            f.write(json.dumps(self.encoder, indent=2, sort_keys=True, ensure_ascii=False) + "\n")

        return (vocab_file,)


icycle <> 'designated'))][@sd < 30k] {
    stroke: #FA8072;
    stroke-dasharray: 1 3;
    stroke-linecap: round;
    stroke-width: 0.4;
    stroke-join: round;
    [access = 'no'][@sd >= 25k] {
      stroke-opacity: 0;
    };
    [@sd < 25k] {
      stroke: #ffffff, #FA8072;
      [access = 'no'] {
        stroke: #ffffff, #bbb;
      };
      stroke-dasharray: 4 0, 1 3;
      stroke-opacity: 0.4, 1;
      stroke-linecap: butt, round;
      stroke-width:
        categorize(@sd,  2.3, 12.5k,  2),
        categorize(@sd,  0.9, 12.5k,  0.6);
      [surface in ('paved', 'asphalt', 'cobblestone', 'cobblestone:flattened', 'sett', 'concrete', 'concrete:lanes',
        'concrete:plates', 'paving_stones', 'metal', 'wood')] {
          stroke-width:
            categorize(@sd,  2.3, 12.5k,  2),
            categorize(@sd,  1.3, 1.5k, 1, 3k, 0.9);
          stroke-dasharray:
            4 0,
            [categorize(@sd, '3 3', 3k, '3 3.5', 12.5k, '2 3.5')];
        };
      [surface in ('unpaved', 'compacted', 'dirt', 'earth', 'fine_gravel', 'grass',
        'grass_paver', 'gravel', 'ground', 'mud', 'pebblestone', 'salt', 'sand', 'woodchips', 'clay')] {
          stroke: #ffffff, #0000FF;
          [access = 'no'] {
            stroke: #ffffff, #9999ff;
          };
          stroke-width:
            categorize(@sd,  2.3, 12.5k,  2),
            categorize(@sd,  1.3, 1.5k, 1, 3k, 0.9);
          stroke-dasharray:
            4 0,
            1 4;
        };
      [surface is null] {
        stroke: #ffffff, #0000FF;
        [access = 'no'] {
          stroke: #ffffff, #9999ff;
        };
        stroke-width:
          categorize(@sd,  2.3, 12.5k,  2),
          categorize(@sd,  1.3, 1.5k, 1, 3k, 0.9);
        stroke-dasharray:
          4 0,
          1 4 2 3;
      };
    }
  };

  [class = 'highway' and (type = 'cycleway' or (type = 'path' and bicycle = 'designated'))][@sd < 30k] {
    stroke: #0000FF;
    stroke-dasharray: 1 3;
    stroke-linecap: round;
    stroke-join: round;
    stroke-width: 0.2;
    [access = 'no'][@sd >= 25k] {
      stroke-opacity: 0;
    };
    [@sd < 25k] {
      stroke: #ffffff, #0000FF;
      [access = 'no'] {
        stroke: #ffffff, #bbb;
      };
      stroke-dasharray: 4 0, 1 3;
      stroke-opacity: 0.4, 1;
      stroke-width:
        categorize(@sd,  2.9, 25k,  2.7),
        categorize(@sd,  0.9, 25k, 0.7);
      stroke-linecap: butt, round;
      [surface in ('paved', 'asphalt', 'cobblestone', 'cobblestone:flattened', 'sett', 'concrete', 'concrete:lanes',
        'concrete:plates', 'paving_stones', 'metal', 'wood')] {


 ArrayList<String>()
            var i = 0
            while (titleToDim[parts[i]] != null) {
                argDims.add(titleToDim[parts[i]]!!)
                i++
            }
            var outDim: String?
            if ("To" == parts[i]) {
                i++
                if (titleToDim[parts[i]] != null) {
                    outDim = titleToDim[parts[i]]
                    i++
                } else {
                    throw MalformedTemplateException.near(template, m.start(),
                            "Function \"out\" type (after `To` infix) is not present" +
                                    "in the source context: " + source.toString())
                }
            } else {
                outDim = null
            }
            var baseName = ""
            for (j in i..parts.size - 1) {
                baseName += parts[j]
            }
            if (argDims.isEmpty()) {
                throw MalformedTemplateException.near(template, m.start(),
                        "Function should have at 1 or 2 \"input\" type params and " + "0 or 1 \"out\" type param (after `To` infix)")
            }
            val allowOperatorCollapse: Boolean
            if ("BinaryOperator" == baseName || "UnaryOperator" == baseName) {
                if (argDims.size != 1)
                    throw MalformedTemplateException.near(template, m.start(),
                            baseName + " can have only one only 1 \"input\" type param, " +
                                    argDims.size + " given: " + argDims)
                val dim = argDims[0]
                if (baseName.startsWith("Binary"))
                    argDims.add(dim)
                outDim = dim
                baseName = "Function"
                allowOperatorCollapse = true
            } else {
                allowOperatorCollapse = false
            }

            val templateStartM = TEMPLATE_START.matcher(template.substring(m.end()))

            val noTemplateAhead = m.group(2) != null || templateStartM.find() && templateStartM.start() == 0

            postProcess(sb, source, target, template.substring(prevEnd, m.start()))
            val generatedName = generateName(
                    argDims, outDim, baseName, allowOperatorCollapse, !noTemplateAhead, target)
            sb.append(generatedName)
            prevEnd = m.end()
        }
        postProcess(sb, source, target, template.substring(prevEnd))
    }

    companion object {
        // after blocks processor, before options processor
        val PRIORITY = (OptionProcessor.PRIORITY + Generator.BLOCKS_PROCESSOR_PRIORITY) / 2

        private val FUNCTION_P = RegexpUtils.compile(
                "/[\\*/]f[\\*/]/([a-z]+)(/[\\*/][\\*/]/)?+|([a-z]+)/[\\*/]ef[\\*/]/")

        /**
         * template start or end of input, because template file is split by // if //s
         * in blocks preprocessor
         */
        private val TEMPLATE_START = Pattern.compile("/[\\*/]|$")
        private val CAMEL_CASE = Pattern.compile("(?<!^)(?=[A-Z])")

        private fun generateName(argDims: List<String>,
                                 outDim: String?,
                                 baseName: String,
                                 allowOperatorCollapse: Boolean,
                                 withParams: Boolean,
                                 target: Context): String {
            val args = argDims.map({ target.getOption(it) }).toList()
            val out = if (outDim != null) target.getOption(outDim) else null
            if (out is PrimitiveType &&
                    (argDims.size == 1 &&
                            args.get(0) === out || allowOperatorCollapse && argDims.size == 2 &&
                    argDims[0] == argDims[1] &&


c08ac95 	lui	t0,0xac95
bfc11738:	35086b06 	ori	t0,t0,0x6b06
bfc1173c:	24090005 	li	t1,5
bfc11740:	3c03fd64 	lui	v1,0xfd64
bfc11744:	3463ab58 	ori	v1,v1,0xab58
bfc11748:	01281007 	srav	v0,t0,t1
bfc1174c:	14430337 	bne	v0,v1,bfc1242c <inst_error>
bfc11750:	00000000 	nop
/home/ghj/Desktop/func/inst/n34_srav.S:195
bfc11754:	3c0897c8 	lui	t0,0x97c8
bfc11758:	350874a0 	ori	t0,t0,0x74a0
bfc1175c:	24090003 	li	t1,3
bfc11760:	3c03f2f9 	lui	v1,0xf2f9
bfc11764:	34630e94 	ori	v1,v1,0xe94
bfc11768:	01281007 	srav	v0,t0,t1
bfc1176c:	1443032f 	bne	v0,v1,bfc1242c <inst_error>
bfc11770:	00000000 	nop
/home/ghj/Desktop/func/inst/n34_srav.S:196
bfc11774:	3c089731 	lui	t0,0x9731
bfc11778:	35082710 	ori	t0,t0,0x2710
bfc1177c:	24090000 	li	t1,0
bfc11780:	3c039731 	lui	v1,0x9731
bfc11784:	34632710 	ori	v1,v1,0x2710
bfc11788:	01281007 	srav	v0,t0,t1
bfc1178c:	14430327 	bne	v0,v1,bfc1242c <inst_error>
bfc11790:	00000000 	nop
/home/ghj/Desktop/func/inst/n34_srav.S:197
bfc11794:	3c0810ce 	lui	t0,0x10ce
bfc11798:	3508f5ec 	ori	t0,t0,0xf5ec
bfc1179c:	24090009 	li	t1,9
bfc117a0:	3c030008 	lui	v1,0x8
bfc117a4:	3463677a 	ori	v1,v1,0x677a
bfc117a8:	01281007 	srav	v0,t0,t1
bfc117ac:	1443031f 	bne	v0,v1,bfc1242c <inst_error>
bfc117b0:	00000000 	nop
/home/ghj/Desktop/func/inst/n34_srav.S:198
bfc117b4:	3c080dea 	lui	t0,0xdea
bfc117b8:	3508d34e 	ori	t0,t0,0xd34e
bfc117bc:	24090017 	li	t1,23
bfc117c0:	2403001b 	li	v1,27
bfc117c4:	01281007 	srav	v0,t0,t1
bfc117c8:	14430318 	bne	v0,v1,bfc1242c <inst_error>
bfc117cc:	00000000 	nop
/home/ghj/Desktop/func/inst/n34_srav.S:199


 Information to be passed between a user mode emulation DLL and the kernel mode driver.
tech.root: display
ms.date: 04/04/2019
keywords: ["DXGK_VIRTUALGPUDRIVERESCAPE structure"]
ms.keywords: _DXGK_VIRTUALGPUDRIVERESCAPE, DXGK_VIRTUALGPUDRIVERESCAPE, *PDXGK_VIRTUALGPUDRIVERESCAPE,
req.header: dispmprt.h
req.include-header:
req.target-type:
req.target-min-winverclnt:
req.target-min-winversvr:
req.kmdf-ver:
req.umdf-ver:
req.lib:
req.dll:
req.ddi-compliance:
req.unicode-ansi:
req.max-support:
req.typenames: DXGK_VIRTUALGPUDRIVERESCAPE, *PDXGK_VIRTUALGPUDRIVERESCAPE
targetos: Windows
ms.custom: 19H1
f1_keywords:
 - _DXGK_VIRTUALGPUDRIVERESCAPE
 - dispmprt/_DXGK_VIRTUALGPUDRIVERESCAPE
 - PDXGK_VIRTUALGPUDRIVERESCAPE
 - dispmprt/PDXGK_VIRTUALGPUDRIVERESCAPE
 - DXGK_VIRTUALGPUDRIVERESCAPE
 - dispmprt/DXGK_VIRTUALGPUDRIVERESCAPE
topic_type:
 - apiref
api_type:
 - HeaderDef
api_location:
 - dispmprt.h
api_name:
 - _DXGK_VIRTUALGPUDRIVERESCAPE
 - PDXGK_VIRTUALGPUDRIVERESCAPE
 - DXGK_VIRTUALGPUDRIVERESCAPE
dev_langs:
 - c++
---

# _DXGK_VIRTUALGPUDRIVERESCAPE structure

## -description

Information to be passed between a user mode emulation DLL and the kernel mode driver.

## -struct-fields

### -field PartitionId

Identifies the vGPU partition if needed.

### -field InputBufferSize

The size in bytes of the buffer, *pInputBuffer* points to.

### -field OutputBufferSize

The size in bytes of the buffer, *pOutputBuffe*r points to.

### -field pInputBuffer

Pointer to the input buffer. This is the pointer to the GPUP_DRIVER_ESCAPE_INPUT, which is followed by the driver data.

### -field pOutputBuffer

Pointer to the output buffer.

## -remarks

The pointers to the input and output buffers cannot be the same.

## -see-also

---
UID: NF:wdstptmgmt.IWdsTransportTftpClient.get_CurrentFileOffset
title: IWdsTransportTftpClient::get_CurrentFileOffset (wdstptmgmt.h)
description: Receives the offset from the start of the file in bytes of the current block being transferred in the TFTP session.
helpviewer_keywords: ["CurrentFileOffset property [Windows Deployment Services]","CurrentFileOffset property [Windows Deployment Services]","IWdsTransportTftpClient interface","IWdsTransportTftpClient interface [Windows Deployment Services]","CurrentFileOffset property","IWdsTransportTftpClient.CurrentFileOffset","IWdsTransportTftpClient.get_CurrentFileOffset","IWdsTransportTftpClient::CurrentFileOffset","IWdsTransportTftpClient::get_CurrentFileOffset","get_CurrentFileOffset","wds.iwdstransporttftpclient_currentfileoffset","wdstptmgmt/IWdsTransportTftpClient::CurrentFileOffset","wdstptmgmt/IWdsTransportTftpClient::get_CurrentFileOffset"]
old-location: wds\iwdstransporttftpclient_currentfileoffset.htm
tech.root: wds
ms.assetid: 24B35E1D-7CEA-458E-8E6A-80BF97FFF46E
ms.date: 12/05/2018
ms.keywords: CurrentFileOffset property [Windows Deployment Services], CurrentFileOffset property [Windows Deployment Services],IWdsTransportTftpClient


              h$stack[(h$sp + 1)] = h$r2;
            default:
          };
          h$sp = ((h$sp + h$RTS_316) + 1);
          h$stack[h$sp] = h$apply[((h$RTS_316 << 8) | (1 - (h$RTS_312 & 255)))];
          return h$RTS_306;
        }
        else
        {
          var h$RTS_313 = h$c3(h$pap_1, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 256) - 1), h$r2);
          h$r1 = h$RTS_313;
          return h$rs();
        };
      };
    case (0):
      h$p2(h$r2, h$ap_1_1);
      return h$RTS_306;
    case (5):
      h$p2(h$r2, h$ap_1_1);
      h$p2(h$r1, h$return);
      return h$blockOnBlackhole(h$r1);
    default:
      throw(("h$ap_1_1_fast: unexpected closure type: " + h$RTS_306.t));
  };
};
function h$ap_1_2_fast()
{
  var h$RTS_317 = h$r1.f;
  switch (h$RTS_317.t)
  {
    case (1):
      var h$RTS_318 = h$RTS_317.a;
      var h$RTS_320 = (h$RTS_318 & 255);
      if((1 === h$RTS_320))
      {
        return h$RTS_317;
      }
      else
      {
        if((1 > h$RTS_320))
        {
          var h$RTS_321 = (h$RTS_318 >> 8);
          var h$RTS_322 = (2 - h$RTS_321);
          switch (h$RTS_321)
          {
            case (0):
              h$stack[(h$sp + 2)] = h$r2;
            case (1):
              h$stack[(h$sp + 1)] = h$r3;
            default:
          };
          h$sp = ((h$sp + h$RTS_322) + 1);
          h$stack[h$sp] = h$apply[((h$RTS_322 << 8) | (1 - (h$RTS_318 & 255)))];
          return h$RTS_317;
        }
        else
        {
          var h$RTS_319 = h$c4(h$pap_2, h$r1, ((((h$r1.f.t === 1) ? h$r1.f.a : h$r1.d2.d1) - 512) - 1), h$r2, h$r3);
          h$r1 = h$RTS_319;
          return h$rs();
        };
      };
    case (3):
      var h$RTS_323 = h$r1.d2.d1;
      var h$RTS_325 = (h$RTS_323 & 255);
      if((1 === h$RTS_325))
      {
        return h$RTS_317;
      }
      else
      {
        if((1 > h$RTS_325))
        {
          var h$RTS_326 = (h$RTS_323 >> 8);
          var h$RTS_327 = (2 - h$RTS_326);
          switch (h$RTS_326)
          {
            case (0):
              h$stack[(h$sp + 2)] = h$r2;
            case (1):
              h$stack[(h$sp + 1)] = h$r3;
            default:
          };
          h$sp = ((h$sp + h$RTS_327) + 1);


:        []byte("testTimed"),
		TimeNanos: 12345,
		Value:     -13.5,
	}
	testForwarded = aggregated.ForwardedMetric{
		Type:      metric.CounterType,
		ID:        []byte("testForwarded"),
		TimeNanos: 12345,
		Values:    []float64{908, -13.5},
	}
	testPassthrough = aggregated.Metric{
		Type:      metric.CounterType,
		ID:        []byte("testPassthrough"),
		TimeNanos: 12345,
		Value:     -12.3,
	}
	testInvalid = unaggregated.MetricUnion{
		Type: metric.UnknownType,
		ID:   id.RawID("invalid"),
	}
	testDefaultMetadatas = metadata.DefaultStagedMetadatas
	testTimedMetadata    = metadata.TimedMetadata{
		AggregationID: aggregation.DefaultID,
		StoragePolicy: policy.NewStoragePolicy(time.Minute, xtime.Minute, 12*time.Hour),
	}
	testForwardMetadata = metadata.ForwardMetadata{
		AggregationID: aggregation.DefaultID,
		StoragePolicy: policy.NewStoragePolicy(time.Minute, xtime.Minute, 12*time.Hour),
		Pipeline: applied.NewPipeline([]applied.OpUnion{
			{
				Type: pipeline.RollupOpType,
				Rollup: applied.RollupOp{
					ID:            []byte("foo"),
					AggregationID: aggregation.MustCompressTypes(aggregation.Count),
				},
			},
		}),
		SourceID:          1234,
		NumForwardedTimes: 3,
	}
	testPassthroughStoragePolicy = policy.NewStoragePolicy(time.Minute, xtime.Minute, 12*time.Hour)
)

func TestAggregator(t *testing.T) {
	agg := NewAggregator()

	// Adding an invalid metric should result in an error.
	metadatas := testDefaultMetadatas
	require.Error(t, agg.AddUntimed(testInvalid, metadatas))

	// Add valid untimed metrics with policies.
	var expected SnapshotResult
	for _, mu := range []unaggregated.MetricUnion{testCounter, testBatchTimer, testGauge} {
		switch mu.Type {
		case metric.CounterType:
			expected.CountersWithMetadatas = append(
				expected.CountersWithMetadatas,
				unaggregated.CounterWithMetadatas{
					Counter:         mu.Counter(),
					StagedMetadatas: metadatas,
				})
		case metric.TimerType:
			expected.BatchTimersWithMetadatas = append(
				expected.BatchTimersWithMetadatas,
				unaggregated.BatchTimerWithMetadatas{
					BatchTimer:      mu.BatchTimer(),
					StagedMetadatas: metadatas,
				})
		case metric.GaugeType:
			expected.GaugesWithMetadatas = append(
				expected.GaugesWithMetadatas,
				unaggregated.GaugeWithMetadatas{
					Gauge:           mu.Gauge(),
					StagedMetadatas: metadatas,
				})
		default:
			require.Fail(t, fmt.Sprintf("unknown metric type %v", mu.Type))
		}
		require.NoError(t, agg.AddUntimed(mu, metadatas))
	}

	// Add valid timed metrics with metadata.
	expected.TimedMetricWithMetadata = append(
		expected.TimedMetricWithMetadata,
		aggregated.TimedMetricWithMetadata{
			Metric:        testTimed,
			TimedMetadata: testTimedMetadata,
		},
	)
	require.NoError(t, agg.AddTimed(testTimed, testTimedMetadata))

	require.Equal(t, 4, agg.NumMetricsAdded())

	// Add valid forwarded metrics with metadata.
	expected.ForwardedMetricsWithMetadata = append(
		expected.ForwardedMetricsWithMetadata,
		aggregated.ForwardedMetricWithMetadata{
			ForwardedMetric: testForwarded,
			ForwardMetadata: testForwardMetadata,
		},
	)
	require.NoError(t, agg.AddForwarded(testForwarded, testForwardMetadata))

	require.Equal(t, 5, agg.NumMetricsAdded())

	// Add valid passthrough metrics with storage policy.
	ex


契：圣光术 VI",
[4166] = "圣契：保护圣印",
[4167] = "圣契：审判",
[4168] = "石板：诱捕图腾",
[4169] = "石板：不屈意志 II",
[4170] = "石板：星界传送",
[4171] = "石板：煽动图腾 III",
[4172] = "石板：雷霆一击 II",
[4173] = "石板：震击术 IV",
[4174] = "石板：震击术 V",
[4175] = "石板：闪电之盾 IV",
[4176] = "石板：永生力量 II",
[4177] = "石板：自然抗性",
[4178] = "石板：闪电箭 V",
[4179] = "石板：复原术 V",
[4180] = "石板：灵体形态 II",
[4181] = "石板：煽动图腾 IV",
[4182] = "石板：不屈意志 III",
[4183] = "石板：治疗图腾 V",
[4184] = "石板：熔岩爆裂 V",
[4185] = "石板：群体星界传送",
[4186] = "石板：抗火术",
[4187] = "石板：毒蛇图腾 V",
[4188] = "石板：隐形图腾",
[4189] = "石板：闪电链",
[4197] = "绿宝石护肩",
[4198] = "魔典：灵魂通道",
[4199] = "魔典：灵魂通道 II",
[4200] = "魔典：献祭 III",
[4201] = "魔典：基尔罗格之眼",
[4202] = "魔典：恐惧术 II",
[4203] = "魔典：瘟疫术 II",
[4204] = "魔典：灵魂通道 III",
[4205] = "魔典：献祭 IV",
[4206] = "魔典：萨格拉斯的诅咒 II",
[4207] = "魔典：阿克蒙德的诅咒",
[4208] = "魔典：心灵炸弹",
[4209] = "魔典：防护暗影结界",
[4210] = "魔典：制作次级血石",
[4211] = "魔典：瘟疫术",
[4212] = "魔典：玛诺洛斯的诅咒 III",
[4213] = "魔典：死亡凋零",
[4214] = "魔典：生命吸取 III",
[4215] = "魔典：火焰之雨",
[4216] = "魔典：防护神圣结界",
[4217] = "魔典：灵魂通道 IV",
[4218] = "魔典：制作血石",
[4219] = "魔典


를 각각 수와 문자열로 생각했을 때 <mjx-container class="MathJax" jax="CHTML" style="font-size: 99.8%; position: relative;"><mjx-math class="MJX-TEX" aria-hidden="true"><mjx-mi class="mjx-i"><mjx-c class="mjx-c1D434 TEX-I"></mjx-c></mjx-mi><mjx-mo class="mjx-n" space="3"><mjx-c class="mjx-c2B"></mjx-c></mjx-mo><mjx-mi class="mjx-i" space="3"><mjx-c class="mjx-c1D435 TEX-I"></mjx-c></mjx-mi><mjx-mo class="mjx-n" space="3"><mjx-c class="mjx-c2212"></mjx-c></mjx-mo><mjx-mi class="mjx-i" space="3"><mjx-c class="mjx-c1D436 TEX-I"></mjx-c></mjx-mi></mjx-math><mjx-assistive-mml unselectable="on" display="inline"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>A</mi><mo>+</mo><mi>B</mi><mo>−</mo><mi>C</mi></math></mjx-assistive-mml>$A+B-C$</mjx-container>를 출력하세요.

### 입력

첫 줄에는 정수 <mjx-container class="MathJax" jax="CHTML" style="font-size: 99.8%; position: relative;"><mjx-math class="MJX-TEX" aria-hidden="true"><mjx-mi class="mjx-i"><mjx-c class="mjx-c1D434 TEX-I"></mjx-c></mjx-mi></mjx-math><mjx-assistive-mml unselectable="on" display="inline"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>A</mi></math></mjx-assistive-mml>$A$</mjx-container>가 주어집니다. <mjx-container class="MathJax" jax="CHTML" style="font-size: 99.8%; position: relative;"><mjx-math class="MJX-TEX" aria-hidden="true"><mjx-mo class="mjx-n"><mjx-c class="mjx-c28"></mjx-c></mjx-mo><mjx-mn class="mjx-n"><mjx-c class="mjx-c31"></mjx-c></mjx-mn><mjx-mo class="mjx-n" space="4"><mjx-c class="mjx-c2264"></mjx-c></mjx-mo><mjx-mi class="mjx-i" space="4"><mjx-c class="mjx-c1D434 TEX-I"></mjx-c></mjx-mi><mjx-mo class="mjx-n" space="4"><mjx-c class="mjx-c2264"></mjx-c></mjx-mo><mjx-mn class="mjx-n" space="4"><mjx-c class="mjx-c31"></mjx-c></mjx-mn><mjx-mstyle><mjx-mspace style="width: 0.167em;"></mjx-mspace></mjx-mstyle><mjx-mn class="mjx-n"><mjx-c class="mjx-c30"></mjx-c><mjx-c class="mjx-c30"></mjx-c><mjx-c class="mjx-c30"></mjx-c></mjx-mn><mjx-mo class="mjx-n"><mjx-c class="mjx-c29"></mjx-c></mjx-mo></mjx-math><mjx-ass


RequestId': creatorRequestId ?? _s.generateIdempotencyToken(),
        if (tags != null) 'Tags': tags,
      },
    );

    return CreateFirewallRuleGroupResponse.fromJson(jsonResponse.body);
  }

  /// Creates a Route 53 Resolver on an Outpost.
  ///
  /// May throw [AccessDeniedException].
  /// May throw [InternalServiceErrorException].
  /// May throw [ResourceNotFoundException].
  /// May throw [ServiceQuotaExceededException].
  /// May throw [ThrottlingException].
  /// May throw [ValidationException].
  ///
  /// Parameter [creatorRequestId] :
  /// A unique string that identifies the request and that allows failed
  /// requests to be retried without the risk of running the operation twice.
  ///
  /// CreatorRequestId can be any unique string, for example, a
  /// date/time stamp.
  ///
  /// Parameter [name] :
  /// A friendly name that lets you easily find a configuration in the Resolver
  /// dashboard in the Route 53 console.
  ///
  /// Parameter [outpostArn] :
  /// The Amazon Resource Name (ARN) of the Outpost. If you specify this, you
  /// must also specify a value for the PreferredInstanceType.
  ///
  /// Parameter [preferredInstanceType] :
  /// The Amazon EC2 instance type. If you specify this, you must also specify a
  /// value for the OutpostArn.
  ///
  /// Parameter [instanceCount] :
  /// Number of Amazon EC2 instances for the Resolver on Outpost. The default
  /// and minimal value is 4.
  ///
  /// Parameter [tags] :
  /// A string that helps identify the Route 53 Resolvers on Outpost.
  Future<CreateOutpostResolverResponse> createOutpostResolver({
    required String creatorRequestId,
    required String name,
    required String outpostArn,
    required String preferredInstanceType,
    int? instanceCount,
    List<Tag>? tags,
  }) async {
    final headers = <String, String>{
      'Content-Type': 'application/x-amz-json-1.1',
      'X-Amz-Target': 'Route53Resolver.CreateOutpostResolver'
    };
    final jsonResponse = await _protocol.send(
      method: 'POST',
      requestUri: '/',
      exceptionFnMap: _exceptionFns,
      // TODO queryParams
      headers: headers,
      payload: {
        'CreatorRequestId': creatorRequestId,
        'Name': name,
        'OutpostArn': outpostArn,
        'PreferredInstanceType': preferredInstanceType,
        if (instanceCount != null) 'InstanceCount': instanceCount,
        if (tags != null) 'Tags': tags,
      },
    );

    return CreateOutpostResolverResponse.fromJson(jsonResponse.body);
  }

  /// Creates a Resolver endpoint. There are two types of Resolver endpoints,
  /// inbound and outbound:
  ///
  ///

  ///

  /// An inbound Resolver endpoint forwards DNS queries to the DNS
  /// service for a VPC from your network.
  ///

  ///

  /// An outbound Resolver endpoint forwards DNS queries from the DNS
  /// service for a VPC to your network.
  ///

  ///

  ///
  /// May throw [InvalidParameterException].
  /// May throw [ResourceNotFoundException].
  /// May throw [InvalidRequestException].
  /// May throw [ResourceExistsException].
  /// May throw [AccessDeniedException].
  /// May throw [LimitExceededException].
  /// May throw [InternalServiceErrorException].
  /// May throw [ThrottlingException].
  ///
  /// Parameter [creatorRequestId] :
  /// A unique string that identifies the request and that allows failed
  /// requests to be retried without the risk of running the operation twice.
  /// CreatorRequestId can be any unique string, for example, a


et-6:before, html.tablet .grid-tablet-6.gridle-debug:before { content: "grid-tablet-6"; }
.gridle-debug html.tablet .grid-tablet-6.parent:before, html.tablet .grid-tablet-6.gridle-debug.parent:before { content: "grid-parent-tablet-6"; }
html.tablet .push-tablet-6 { left: 50.0%; }
.gridle-debug html.tablet .push-tablet-6:after, html.tablet .push-tablet-6.gridle-debug:after { content: "push-tablet-6" !important; }
html.tablet .pull-tablet-6 { right: 50.0%; }
.gridle-debug html.tablet .pull-tablet-6:after, html.tablet .pull-tablet-6.gridle-debug:after { content: "pull-tablet-6" !important; }
html.tablet .prefix-tablet-6 { margin-left: 50.0%; }
.gridle-debug html.tablet .prefix-tablet-6:after, html.tablet .prefix-tablet-6.gridle-debug:after { content: "prefix-tablet-6" !important; }
html.tablet .suffix-tablet-6 { margin-right: 50.0%; }
.gridle-debug html.tablet .suffix-tablet-6:after, html.tablet .suffix-tablet-6.gridle-debug:after { content: "suffix-tablet-6" !important; }
html.tablet .grid-tablet-7 { width: 58.33333%; *width: expression((this.parentNode.clientWidth/12*7 - parseInt(this.currentStyle['paddingLeft']) - parseInt(this.currentStyle['paddingRight'])) + 'px'); }
.gridle-debug html.tablet .grid-tablet-7:before, html.tablet .grid-tablet-7.gridle-debug:before { content: "grid-tablet-7"; }
.gridle-debug html.tablet .grid-tablet-7.parent:before, html.tablet .grid-tablet-7.gridle-debug.parent:before { content: "grid-parent-tablet-7"; }
html.tablet .push-tablet-7 { left: 58.33333%; }
.gridle-debug html.tablet .push-tablet-7:after, html.tablet .push-tablet-7.gridle-debug:after { content: "push-tablet-7" !important; }
html.tablet .pull-tablet-7 { right: 58.33333%; }
.gridle-debug html.tablet .pull-tablet-7:after, html.tablet .pull-tablet-7.gridle-debug:after { content: "pull-tablet-7" !important; }
html.tablet .prefix-tablet-7 { margin-left: 58.33333%; }
.gridle-debug html.tablet .prefix-tablet-7:after, html.tablet .prefix-tablet-7.gridle-debug:after { content: "prefix-tablet-7" !important; }
html.tablet .suffix-tablet-7 { margin-right: 58.33333%; }
.gridle-debug html.tablet .suffix-tablet-7:after, html.tablet .suffix-tablet-7.gridle-debug:after { content: "suffix-tablet-7" !important; }
html.tablet .grid-tablet-8 { width: 66.66667%; *width: expression((this.parentNode.clientWidth/12*8 - parseInt(this.currentStyle['paddingLeft']) - parseInt(this.currentStyle['paddingRight'])) + 'px'); }
.gridle-debug html.tablet .grid-tablet-8:before, html.tablet .grid-tablet-8.gridle-debug:before { content: "grid-tablet-8"; }
.gridle-debug html.tablet .grid-tablet-8.parent:before, html.tablet .grid-tablet-8.grid


 [நிரலாக்க மொழிகள் மற்றும் வர்த்தக கருவிகள் அறிமுகம்](/1-getting-started-lessons/1-intro-to-programming-languages/README.md) |         ஜாஸ்மின்         |
| 02  |                     தொடங்குதல்                      |             கிட்ஹப் அடிப்படைகள், ஒரு குழுவுடன் வேலை செய்வதை உள்ளடக்கியது             | உங்கள் திட்டத்தில் கிட்ஹப் பயன்படுத்துவது எப்படி, குறியீட்டு த் தளத்தில் மற்றவர்களுடன் எவ்வாறு ஒத்துழைப்பது                                                    |                            [கிட்ஹப் அறிமுகம்](/1-getting-started-lessons/2-github-basics/README.md)                             |          ஃப்ளோர்          |
| 03  |                     தொடங்குதல்                      |                             எளிவரல்                              | இணைய அணுகல் தன்மையின் அடிப்படைகளை அறிக                                                                                |                       [அணுகல் அடிப்படைகள்](/1-getting-started-lessons/3-accessibility/README.md)                       |       கிறிஸ்டோபர்       |
| 04  |                        ஜேஎஸ் அடிப்படைகள்                         |                         ஜாவாஸ்கிரிப்ட் தரவு வகைகள்                          | ஜாவாஸ்கிரிப்ட் தரவு வகைகளின் அடிப்படைகள்                                                                                |                                       [தரவு வகைகள்](/2-js-basics/1-data-types/README.md)                                        |         ஜாஸ்மின்         |
| 05  |                        ஜேஎஸ் அடிப்படைகள்                         |                         தொழிற்பாடுகளும் முறைகளும்                          | பயன்பாட்டின் தர்க்க ஓட


12l4.486 4.486A3 3 0 0 1 5 8V6.121zm8.646 7.234l-12-12 .708-.708 12 12-.708.707z"/>'),$M=ll("Minecart",'<path d="M4 15a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0 1a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm8-1a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0 1a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM.115 3.18A.5.5 0 0 1 .5 3h15a.5.5 0 0 1 .491.592l-1.5 8A.5.5 0 0 1 14 12H2a.5.5 0 0 1-.491-.408l-1.5-8a.5.5 0 0 1 .106-.411zm.987.82l1.313 7h11.17l1.313-7H1.102z"/>'),RM=ll("MinecartLoaded",'<path d="M4 15a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0 1a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm8-1a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0 1a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM.115 3.18A.5.5 0 0 1 .5 3h15a.5.5 0 0 1 .491.592l-1.5 8A.5.5 0 0 1 14 12H2a.5.5 0 0 1-.491-.408l-1.5-8a.5.5 0 0 1 .106-.411zm.987.82l1.313 7h11.17l1.313-7H1.102z"/><path fill-rule="evenodd" d="M6 1a2.498 2.498 0 0 1 4 0c.818 0 1.545.394 2 1 .67 0 1.552.57 2 1h-2c-.314 0-.611-.15-.8-.4-.274-.365-.71-.6-1.2-.6-.314 0-.611-.15-.8-.4a1.497 1.497 0 0 0-2.4 0c-.189.25-.486.4-.8.4-.507 0-.955.251-1.228.638-.09.13-.194.25-.308.362H3c.13-.147.401-.432.562-.545a1.63 1.63 0 0 0 .393-.393A2.498 2.498 0 0 1 6 1z"/>'),NM=ll("Moon",'<path fill-rule="evenodd" d="M14.53 10.53a7 7 0 0 1-9.058-9.058A7.003 7.003 0 0 0 8 15a7.002 7.002 0 0 0 6.53-4.47z"/>'),UM=ll("Mouse",'<path d="M8 3a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 3zm4 8a4 4 0 0 1-8 0V5a4 4 0 1 1 8 0v6zM8 0a5 5 0 0 0-5 5v6a5 5 0 0 0 10 0V5a5 5 0 0 0-5-5z"/>'),qM=ll("Mouse2",'<path d="M3 5.188C3 2.341 5.22 0 8 0s5 2.342 5 5.188v5.625C13 13.658 10.78 16 8 16s-5-2.342-5-5.188V5.189zm4.5-4.155C5.541 1.289 4 3.035 4 5.188V5.5h3.5V1.033zm1 0V5.5H12v-.313c0-2.152-1.541-3.898-3.5-4.154zM12 6.5H4v4.313C4 13.145 5.81 15 8 15s4-1.855 4-4.188V6.5z"


---------------------------------------------------------------------------- */

package org.opentransactions.otapi;

public class OTNameLookup {
  private long swigCPtr;
  protected boolean swigCMemOwn;

  protected OTNameLookup(long cPtr, boolean cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = cPtr;
  }

  protected static long getCPtr(OTNameLookup obj) {
    return (obj == null) ? 0 : obj.swigCPtr;
  }

  protected void finalize() {
    delete();
  }

  public synchronized void delete() {
    if (swigCPtr != 0) {
      if (swigCMemOwn) {
        swigCMemOwn = false;
        otapiJNI.delete_OTNameLookup(swigCPtr);
      }
      swigCPtr = 0;
    }
  }

  protected void swigDirectorDisconnect() {
    swigCMemOwn = false;
    delete();
  }

  public void swigReleaseOwnership() {
    swigCMemOwn = false;
    otapiJNI.OTNameLookup_change_ownership(this, swigCPtr, false);
  }

  public void swigTakeOwnership() {
    swigCMemOwn = true;
    otapiJNI.OTNameLookup_change_ownership(this, swigCPtr, true);
  }

  public OTNameLookup() {
    this(otapiJNI.new_OTNameLookup(), true);
    otapiJNI.OTNameLookup_director_connect(this, swigCPtr, swigCMemOwn, true);
  }

  public String GetNymName(String str_id, SWIGTYPE_p_std__string p_server_id) {
    return (getClass() == OTNameLookup.class) ? otapiJNI.OTNameLookup_GetNymName__SWIG_0(swigCPtr, this, str_id, SWIGTYPE_p_std__string.getCPtr(p_server_id)) : otapiJNI.OTNameLookup_GetNymNameSwigExplicitOTNameLookup__SWIG_0(swigCPtr, this, str_id, SWIGTYPE_p_std__string.getCPtr(p_server_id));
  }

  public String GetNymName(String str_id) {
    return (getClass() == OTNameLookup.class) ? otapiJNI.OTNameLookup_GetNymName__SWIG_1(swigCPtr, this, str_id) : otapiJNI.OTNameLookup_GetNymNameSwigExplicitOTNameLookup__SWIG_1(swigCPtr, this, str_id);
  }

  public String GetAcctName(String str_id, SWIGTYPE_p_std__string p_nym_id, SWIGTYPE_p_std__string p_server_id, SWIGTYPE_p_std__string p_asset_id) {
    return (getClass() == OTNameLookup.class) ? otapiJNI.OTNameLookup_GetAcctName__SWIG_0(swigCPtr, this, str_id, SWIGTYPE_p_std__string.getCPtr(p_nym_id), SWIGTYPE_p_std__string.getCPtr(p_server_id), SWIGTYPE_p_std__string.getCPtr(p_asset_id)) : otapiJNI.OTNameLookup_GetAcctNameSwigExplicitOTNameLookup__SWIG_0(swigCPtr, this, str_id, SWIGTYPE_p_std__string.getCPtr(p_nym_id), SWIGTYPE_p_std__string.getCPtr(p_server_id), SWIGTYPE_p_std__string.getCPtr(p_asset_id));
  }

  public String GetAcctName(String str_id, SWIGTYPE_p_std__string p_nym_id, SWIGTYPE_p_std__string p_server_id) {
    return (getClass() == OTNameLookup.class) ? otapiJNI.OTNameLookup_GetAcctName__SWIG_1(swigCPtr, this, str_id, SWIGTYPE_p_std__string.getCPtr(p_nym_id), SWIGTYPE_p_std__string.getCPtr(p_server_id)) : otapiJ


	if not word or word == "" then
		vim.notify((icons.emoji and icons.emoji.warn or "⚠") .. " No word under cursor", vim.log.levels.WARN)
		return
	end

	local base_new = find_toggle_pair(word)
	if not base_new then
		vim.notify((icons.emoji and icons.emoji.warn or "⚠") .. " Can't toggle: " .. word, vim.log.levels.WARN)
		return
	end

	local new = match_case_pattern(word, base_new)

	local pos = vim.api.nvim_win_get_cursor(0)
	local row, col = pos[1], pos[2]
	local line = vim.api.nvim_get_current_line()

	local s, e = line:find(word, col + 1, true)
	if not s then
		for start_idx, matched, end_idx in line:gmatch("()(%w+)()") do
			if start_idx - 1 <= col and end_idx - 2 >= col then
				s, e = start_idx, end_idx - 1
				break
			end
		end
	end

	if not s or not e then
		return
	end

	local new_line = line:sub(1, s - 1) .. new .. line:sub(e + 1)
	vim.api.nvim_set_current_line(new_line)
	vim.api.nvim_win_set_cursor(0, { row, s - 1 })
end

return M


ing">String
        subjectName

        X509KeyStorageFlags
        storageFlags

Returns

        Type
        Description

        X509Certificate2

    |
    <a href="https://github.com/justcoding121/titanium-web-proxy/new/develop/apiSpec/new?filename=Titanium_Web_Proxy_Network_DefaultCertificateDiskCache_LoadRootCertificate_System_String_System_String_System_Security_Cryptography_X509Certificates_X509KeyStorageFlags_.md&value=---%0Auid%3A%20Titanium.Web.Proxy.Network.DefaultCertificateDiskCache.LoadRootCertificate(System.String%2CSystem.String%2CSystem.Security.Cryptography.X509Certificates.X509KeyStorageFlags)%0Asummary%3A%20'*You%20can%20override%20summary%20for%20the%20API%20here%20using%20*MARKDOWN*%20syntax'%0A---%0A%0A*Please%20type%20below%20more%20information%20about%20this%20API%3A*%0A%0A">Improve this Doc

    View Source

LoadRootCertificate(String, String, X509KeyStorageFlags)

Declaration

public X509Certificate2 LoadRootCertificate(string pathOrName, string password, X509KeyStorageFlags storageFlags)

Parameters

        Type
        Name
        Description


T:  2      10    0.50    *                   vsubpd	(%rax), %xmm17, %xmm19 {%k1}
# CHECK-NEXT:  1      4     0.50                        vsubpd	%xmm16, %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT:  2      10    0.50    *                   vsubpd	(%rax), %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT:  1      4     0.50                        vsubpd	%ymm16, %ymm17, %ymm19
# CHECK-NEXT:  2      11    0.50    *                   vsubpd	(%rax), %ymm17, %ymm19
# CHECK-NEXT:  1      4     0.50                        vsubpd	%ymm16, %ymm17, %ymm19 {%k1}
# CHECK-NEXT:  2      11    0.50    *                   vsubpd	(%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT:  1      4     0.50                        vsubpd	%ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT:  2      11    0.50    *                   vsubpd	(%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT:  1      4     0.50                        vsubps	%xmm16, %xmm17, %xmm19
# CHECK-NEXT:  2      10    0.50    *                   vsubps	(%rax), %xmm17, %xmm19
# CHECK-NEXT:  1      4     0.50                        vsubps	%xmm16, %xmm17, %xmm19 {%k1}
# CHECK-NEXT:  2      10    0.50    *                   vsubps	(%rax), %xmm17, %xmm19 {%k1}
# CHECK-NEXT:  1      4     0.50                        vsubps	%xmm16, %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT:  2      10    0.50    *                   vsubps	(%rax), %xmm17, %xmm19 {%k1} {z}
# CHECK-NEXT:  1      4     0.50                        vsubps	%ymm16, %ymm17, %ymm19
# CHECK-NEXT:  2      11    0.50    *                   vsubps	(%rax), %ymm17, %ymm19
# CHECK-NEXT:  1      4     0.50                        vsubps	%ymm16, %ymm17, %ymm19 {%k1}
# CHECK-NEXT:  2      11    0.50    *                   vsubps	(%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT:  1      4     0.50                        vsubps	%ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT:  2      11    0.50    *                   vsubps	(%rax), %ymm17, %ymm19 {%k1} {z}

# CHECK:      Resources:
# CHECK-NEXT: [0]   - SKXDivider
# CHECK-NEXT: [1]   - SKXFPDivider
# CHECK-NEXT: [2]   - SKXPort0
# CHECK-NEXT: [3]   - SKXPort1
# CHECK-NEXT: [4]   - SKXPort2
# CHECK-NEXT: [5]   - SKXPort3
# CHECK-NEXT: [6]   - SKXPort4
# CHECK-NEXT: [7]   - SKXPort5
# CHECK-NEXT: [8]   - SKXPort6
# CHECK-NEXT: [9]   - SKXPort7

# CHECK:      Resource pressure per iteration:
# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]
# CHECK-NEXT:  -     114.00 60.00  36.00  24.00  24.00   -      -      -      -

# CHECK:      Resource pressure by instruction:
# CHECK-NEXT: [0]


xercise within the template
   */
  order: number
}
/**
 * Initialize the class with inits, ONLY FIRST LEVEL applies
 * @param classTobeInitialized
 * @param inits
 */
export function initializer(classTobeInitialized:any, inits:any): any {
  const keys = Object.keys(inits);
  for (var i = 0, l = keys.length; i < l; i++) {
    const key = keys[i];
    if (inits.hasOwnProperty(key)) {
      classTobeInitialized[key] = inits[key];
    }
  }

  return classTobeInitialized;
}

/**
 * Reset the object to have the same structure and values has the reference
 * @param reference
 * @param objToReset
 */
export function reset(reference:any, objToReset:any, isResetUnknownProperties = true): any {
  objToReset = internalDeepCopy(objToReset, reference, true);
  if (isResetUnknownProperties) {
    objToReset = resetUnknownProperties(reference, objToReset);
  }
  return objToReset;
}

/**
 * Apply a mixin from multiple sources to the destination object
 * @param destination
 * @param sources
 */
export function applyMixins(destination:any, sources:any|any[]): any {
  const sourcesToMixinFrom: any[] = sources.constructor === Array ? sources : [sources];
  sourcesToMixinFrom.forEach(source => {
    destination = objectExtend(destination, source);
  });

  return destination;
}

/**
 * Deep Copy all the properties from the sources to the target
 * @param target
 * @param source
 * @param resetArray
 */
export function deepCopy(destination:any, sources:any|any[], resetArray = false): any {
  const sourcesToCopyFrom: any[] = sources.constructor === Array ? sources : [sources];
  sourcesToCopyFrom.forEach(source => {
    destination = internalDeepCopy(destination, source, resetArray);
  });

  return destination;
}

//////////////////////////////
// PRIVATES
//////////////////////////////

function resetUnknownProperties(reference: any, objToReset: any): any {
  const keys = Object.keys(objToReset);
  for (var i = 0, l = keys.length; i < l; i++) {
    const key = keys[i];
    if (reference[key] === undefined) {
      objToReset[key] = undefined;
    } else if (typeof reference[key] === 'object') {
      objToReset[key] = resetUnknownProperties(reference[key], objToReset[key]);
    }
  }
  return objToReset;
}

function internalDeepCopy(target: any, source: any, resetArray: boolean): any {

  if (typeof source === 'object') {
    if (source.constructor === Array) {
      target = copyFromArray(target, source, resetArray);
    } else {
      target = copyFromObject(target, source, resetArray);
    }
  } else {
    target = source;
  }

  return target;
}

function copyFromObject(target: any|undefined, source: any, resetArray: boolean): any {
  if (target === undefined) {
    target = {};
  }
  const keys = Object.keys(source);
  for (var i = 0, l = keys.length; i < l; i++) {
    const key = keys[i];
    const sourceValue = source[key];
    if (sourceValue !== undefined) {
      target[key] = internalDeepCopy(target[key], sourceValue, resetArray);
    }
  }

  return target;
}

function copyFromArray(target: any, source: any[], resetArray: boolean): any[] {

  let l = source.length;
  if (target && target.constructor === Array) {
    if (resetArray) {
      target = [];
    }
    for (let i = 0; i < l; i++) {
      target.push(internalDeepCopy(undefined, source[i], resetArray));
    }
  } else {


        self._reload_check(pname, globals, locals, level)

    def _reload_check(self, name, globals, locals, level):
        """
        Update the date associated to the module and reload the module if
        the file changed.
        """
        module = sys.modules.get(name)
        file = self._get_module_file(module)
        if file:
            date = self._import_dates.get(file)
            new_date = None
            reload_mod = False
            mod_to_pack = False  # Module turning into a package? (special case)
            try:
                new_date = os.path.getmtime(file)
            except:
                self._import_dates.pop(file, None)  # Clean up
                # Handle module changing in package and
                # package changing in module:
                if file.endswith(".py"):
                    # Get path without file ext:
                    file = os.path.splitext(file)[0]
                    reload_mod = os.path.isdir(file) and os.path.isfile(
                        file + self.PACKAGE_PATH_SUFFIX
                    )
                    mod_to_pack = reload_mod
                else:  # Package turning into module?
                    file += ".py"
                    reload_mod = os.path.isfile(file)
                if reload_mod:
                    new_date = os.path.getmtime(file)  # Refresh file date
            if reload_mod or not date or new_date > date:
                self._import_dates[file] = new_date
            if reload_mod or (date and new_date > date):
                if mod_to_pack:
                    # Module turning into a package:
                    mod_name = module.__name__
                    del sys.modules[mod_name]  # Delete the module
                    # Reload the module:
                    NATIVE_IMPORTER(mod_name, globals, locals, [], level)
                else:
                    reload(module)

    def _get_module_file(self, module):
        """
        Get the absolute path file associated to the module or None.
        """
        file = getattr(module, "__file__", None)
        if file:
            # Make path absolute if not:
            file = os.path.splitext(file)[0] + ".py"  # Change .pyc for .py
            if file.endswith(self.PACKAGE_PATH_SUFFIX):
                file = os.path.dirname(file)  # Track dir for packages
        return file

TRACK_IMPORTER = TrackImporter()


eViewType {
        match *self {
            ImageType::D1 { layers: 1, .. } => ImageViewType::D1,
            ImageType::D1 { .. } => ImageViewType::D1Array,
            ImageType::D2 { layers: 1, .. } => ImageViewType::D2,
            ImageType::D2 { .. } => ImageViewType::D2Array,
            ImageType::D3 { .. } => ImageViewType::D3,
        }
    }
}

/// Image view handle.
///
/// Image Views denote subranges of an image storage. Pipelines will
/// only access image data via views. Views alias the memory of the associated
/// image.
#[repr(transparent)]
#[derive(Copy, Clone)]
pub struct ImageView(pub(crate) GLuint);

impl Object for ImageView {
    const TYPE: ObjectType = ObjectType::Image; // internally it's an image
    fn handle(&self) -> GLuint {
        self.0
    }
}

/// Image View type.
///
/// An `ImageViewType` maps roughly to OpenGL texture targets.
#[derive(Debug, Clone, Copy)]
pub enum ImageViewType {
    D1,
    D2,
    D3,
    Cube,
    D1Array,
    D2Array,
    CubeArray,
}

/// Subresource of an image.
#[derive(Debug, Clone)]
pub struct SubresourceRange {
    /// Range of mip levels.
    pub levels: Range<u32>,
    /// Range of array layers.
    pub layers: Range<u32>,
}

#[derive(Debug, Clone)]
pub struct SubresourceLayers {
    /// Mipmap level.
    pub level: u32,
    /// Range of array layers.
    pub layers: Range<u32>,
}

impl Device {
    ///
    pub unsafe fn create_image(&self, ty: ImageType, format: Format, levels: u32) -> Result<Image> {
        let target = match ty {
            ImageType::D1 { layers: 1, .. } => __gl::TEXTURE_1D,
            ImageType::D1 { .. } => __gl::TEXTURE_1D_ARRAY,
            ImageType::D2 {
                layers: 1,
                samples: 1,
                ..
            } => __gl::TEXTURE_2D,
            ImageType::D2 { samples: 1, .. } => __gl::TEXTURE_2D_ARRAY,
            ImageType::D2 { layers: 1, .. } => __gl::TEXTURE_2D_MULTISAMPLE,
            ImageType::D2 { .. } => __gl::TEXTURE_2D_MULTISAMPLE_ARRAY,
            ImageType::D3 { .. } => __gl::TEXTURE_3D,
        };

        let mut image = 0;
        self.0.CreateTextures(target, 1, &mut image);
        self.get_error()?;

        match ty {
            ImageType::D1 { width, layers: 1 } => {
                self.0
                    .TextureStorage1D(image, levels as _, format as _, width as _);
            }
            ImageType::D1 {
                width,
                layers: height,
            }
            | ImageType::D2 {
                width,
                height,
                layers: 1,
                samples: 1,
            } => {
                self.0
                    .TextureStorage2D(image, levels as _, format as _, width as _, height as _);
            }
            ImageType::D2 {
                width,
                height,
                layers: depth,
                samples: 1,
            }
            | ImageType::D3 {
                width,
                height,
                depth,
            } => {
                self.0.TextureStorage3D(
                    image,
                    levels as _,
                    format as _,
                    width as _,
                    height as _,
                    depth as _,
                );
            }
            _ => unimplemented!(),
        }
        self.get_error()?;

        Ok(Image { raw: image, target })


glabel func_80B0813C
/* 00BFC 80B0813C 27BDFFC8 */  addiu   $sp, $sp, 0xFFC8           ## $sp = FFFFFFC8
/* 00C00 80B08140 2401000F */  addiu   $at, $zero, 0x000F         ## $at = 0000000F
/* 00C04 80B08144 AFBF0014 */  sw      $ra, 0x0014($sp)
/* 00C08 80B08148 AFA40038 */  sw      $a0, 0x0038($sp)
/* 00C0C 80B0814C AFA60040 */  sw      $a2, 0x0040($sp)
/* 00C10 80B08150 14A10022 */  bne     $a1, $at, .L80B081DC
/* 00C14 80B08154 AFA70044 */  sw      $a3, 0x0044($sp)
/* 00C18 80B08158 8FA50048 */  lw      $a1, 0x0048($sp)
/* 00C1C 80B0815C 3C0480B1 */  lui     $a0, %hi(D_80B0B49C)       ## $a0 = 80B10000
/* 00C20 80B08160 2484B49C */  addiu   $a0, $a0, %lo(D_80B0B49C)  ## $a0 = 80B0B49C
/* 00C24 80B08164 0C0346BD */  jal     func_800D1AF4
/* 00C28 80B08168 24A50038 */  addiu   $a1, $a1, 0x0038           ## $a1 = 00000038
/* 00C2C 80B0816C 8FAE0048 */  lw      $t6, 0x0048($sp)
/* 00C30 80B08170 3C0680B1 */  lui     $a2, %hi(D_80B0B550)       ## $a2 = 80B10000
/* 00C34 80B08174 24C6B550 */  addiu   $a2, $a2, %lo(D_80B0B550)  ## $a2 = 80B0B550
/* 00C38 80B08178 85CF001C */  lh      $t7, 0x001C($t6)           ## 0000001C
/* 00C3C 80B0817C 8FB80038 */  lw      $t8, 0x0038($sp)
/* 00C40 80B08180 27A40020 */  addiu   $a0, $sp, 0x0020           ## $a0 = FFFFFFE8
/* 00C44 80B08184 51E00016 */  beql    $t7, $zero, .L80B081E0
/* 00C48 80B08188 8FBF0014 */  lw      $ra, 0x0014($sp)
/* 00C4C 80B0818C 8F050000 */  lw      $a1, 0x0000($t8)           ## 00000000
/* 00C50 80B08190 2407081F */  addiu   $a3, $zero, 0x081F         ## $a3 = 0000081F
/


.3V |
| 8 (blk)  | SPI6_DRDY1      | +3.3V |
| 9 (blk)  | SPI6_DRDY2      | +3.3V |
| 10 (blk) | SPI6_nRESET     | +3.3V |
| 11 (blk) | `GND`           | GND   |

## Debug Port

The [PX4 System Console](../debug/system_console.md) and [SWD interface](../debug/swd_debug.md) run on the **FMU Debug** port.

The pinouts and connector comply with the [Pixhawk Debug Full](../debug/swd_debug.md#pixhawk-debug-full) interface defined in the [Pixhawk Connector Standard](https://github.com/pixhawk/Pixhawk-Standards/blob/master/DS-009%20Pixhawk%20Connector%20Standard.pdf) interface (JST SM10B connector).

| Pin      | Signal           | Volt  |
| -------- | ---------------- | ----- |
| 1 (red)  | `Vtref`          | +3.3V |
| 2 (blk)  | Console TX (OUT) | +3.3V |
| 3 (blk)  | Console RX (IN)  | +3.3V |
| 4 (blk)  | `SWDIO`          | +3.3V |
| 5 (blk)  | `SWCLK`          | +3.3V |
| 6 (blk)  | `SWO`            | +3.3V |
| 7 (blk)  | NFC GPIO         | +3.3V |
| 8 (blk)  | PH11             | +3.3V |
| 9 (blk)  | nRST             | +3.3V |
| 10 (blk) | `GND`            | GND   |

For information about using this port see:

- [SWD Debug Port](../debug/swd_debug.md)
- [PX4 System Console](../debug/system_console.md) (Note, the FMU console maps to USART3).

![ARKPAB Top Down Photo](../../assets/flight_controller/arkpab/ark_pab_top.jpg)

![ARKPAB Bottom Photo](../../assets/flight_controller/arkpab/ark_pab_back.jpg)

## See Also

- [ARK Pixhawk Autopilot Bus Carrier](https://arkelectron.gitbook.io/ark-documentation/flight-controllers/ark-pixhawk-autopilot-bus-carrier) (ARK Docs)
# SPRacingH7EXTREME (PX4 Edition)

:::warning
PX4 does not manufacture this (or any) autopilot.
Contact the [manufacturer](https://shop.seriouslypro.com) for hardware support or compliance issues.
:::

The [SPRacingH7EXTREME](https://shop.seriouslypro.com/sp-racing-h7-extreme) is a feature packed FC/PDB with DUAL ICM20602 gyros, H7 400/480Mhz(+) CPU, high-precision BMP388 barometer, SD Card socket, current sensor, 8 easily accessible motor outputs, OSD, Microphone, Audio output, and more.

It can be used easily for small to large quads, planes, octocoptors and more advanced frames.
It's best used with separate ESCs as it features a built-in power distribution board (PDB).
Wiring up a 4in1 ESC is easy too.

There is also a 12 pin stacking connector which provides 4 more motor outputs, SPI and a UART connectivity.

![SPRacingH7EXTREME PCB Top](../../assets/flight_controller/spracingh7extreme/spracingh7extreme-top.jpg)

![SPRacingH7EXTREME PCB Bottom](../../assets/flight_controller/spracingh7extreme/spracingh7extreme-bottom.jpg)

::: info
This flight controller is [manufacturer supported](../flight_controller/autopilot_manufacturer_supported.md).
:::

## Key Features

- Main System-on-Chip: [STM32H750VBT6 rev.y/v](https://www.st.com/en/microcontrollers-microprocessors/stm32h750vb.html)
  - CPU: 400/480Mhz(+) ARM Cortex M7 with single-precision FPU.


ode_aper(const asn_TYPE_descriptor_t *td,
                      const asn_per_constraints_t *constraints,
                      const void *sptr, asn_per_outp_t *po) {
    const void *memb_ptr;   /* Pointer to the member */
    asn_TYPE_member_t *elm; /* CHOICE's element */
    asn_enc_rval_t er;
    unsigned present;

    (void)constraints;

    present = CHOICE_variant_get_presence(td, sptr);
    if(present == 0 || present > td->elements_count) {
        ASN__ENCODE_FAILED;
    } else {
        present--;
    }

    ASN_DEBUG("Encoding %s OPEN TYPE element %d", td->name, present);

    elm = &td->elements[present];
    if(elm->flags & ATF_POINTER) {
        /* Member is a pointer to another structure */
        memb_ptr =
            *(const void *const *)((const char *)sptr + elm->memb_offset);
        if(!memb_ptr) ASN__ENCODE_FAILED;
    } else {
        memb_ptr = (const char *)sptr + elm->memb_offset;
    }

    if(aper_open_type_put(elm->type, NULL, memb_ptr, po) < 0) {
        ASN__ENCODE_FAILED;
    }

    er.encoded = 0;
    ASN__ENCODED_OK(er);
}

#endif  /* ASN_DISABLE_PER_SUPPORT */


lect:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px rgba(0,0,0,.4)}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before,.leaflet-tooltip-top:before{position:absolute;pointer-events:none;border:6px solid transparent;background:0 0;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
/**
 *   GRANITE DATA SERVICES
 *   Copyright (C) 2006-2015 GRANITE DATA SERVICES S.A.S.
 *
 *   This file is part of the Granite Data Services Platform.
 *
 *   Granite Data Services is free software; you can redistribute it and/or
 *   modify it under the terms of the GNU Lesser General Public
 *   License as published by the Free Software Foundation; either
 *   version 2.1 of the License, or (at your option) any later version.
 *
 *   Granite Data Services is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
 *   General Public License for more details.
 *
 *   You should have received a copy of the GNU Lesser General Public
 *   License along with this library; if not, write to the Free Software
 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
 *   USA, or see <http://www.gnu.org/licenses/>.
 */
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";

.custom {
    skinClass: ClassReference("skins.TestModuleSkin");
}
@import url(fonts/clear-sans.css);html,body{margin:0;padding:0;background:#faf8ef;color:#776e65;font-family:"Clear Sans","Helvetica Neue",Arial,sans-serif;font-size:18px}body{margin:20px 0}ul,ol{list-style-type:none;padding:0}p{margin:0;line-height:1.65}a{color:#776e65;font-weight:bold;text-decoration:underline;cursor:pointer}strong.important{text-transform:uppercase}hr{border:none;border-bottom:1px solid #d8d4d0;margin:10px 0}.heading:after{content:"";display:block;clear:both}h1.title{font-size:40px;font-weight:bold;margin:0;display:block;float:left}@-webkit-keyframes move-up{0%{top:25px;opacity:1}100%{top:-50px;opacity:0}}@-moz-keyframes move-up{0%{top


s: Customer) = Shop(name, customers.toList())

val shop = shop("jb test shop",
        customer(lucas, Canberra,
                order(reSharper),
                order(reSharper, dotMemory, dotTrace)
        ),
        customer(cooper, Canberra),
        customer(nathan, Vancouver,
                order(rubyMine, webStorm)
        ),
        customer(reka, Budapest,
                order(idea, isDelivered = false),
                order(idea, isDelivered = false),
                order(idea)
        ),
        customer(bajram, Ankara,
                order(reSharper)
        ),
        customer(asuka, Tokyo,
                order(idea)
        ),
        customer(riku, Tokyo,
                order(phpStorm, phpStorm),
                order(phpStorm)
        )

)

val customers: Map<String, Customer> = shop.customers.fold(hashMapOf<String, Customer>(), {
        map, customer ->
        map[customer.name] = customer
        map
})

val orderedProducts = setOf(idea, reSharper, dotTrace, dotMemory, rubyMine, webStorm, phpStorm)

val sortedCustomers = listOf(cooper, nathan, bajram, asuka, lucas, riku, reka).map { customers[it] }

val groupedByCities = mapOf(
        Canberra to listOf(lucas, cooper),
        Vancouver to listOf(nathan),
        Budapest to listOf(reka),
        Ankara to listOf(bajram),
        Tokyo to listOf(asuka, riku)
).mapValues { it.value.map { name -> customers[name] } }
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.

package org.jetbrains.kotlinx.jupyter.intellij.utils

import java.nio.file.FileSystems
import java.nio.file.Files
import java.nio.file.Path
import java.util.zip.ZipFile
import kotlin.io.path.ExperimentalPathApi
import kotlin.io.path.createDirectories
import kotlin.io.path.deleteRecursively
import kotlin.io.path.outputStream
import kotlin.streams.asSequence

@OptIn(ExperimentalPathApi::class)
internal fun Path.extract(targetDirectory: Path) {
    targetDirectory.apply {
        deleteRecursively()
        createDirectories()
    }

    ZipFile(toFile()).use { zip ->
        zip.entries().asSequence().forEach { entry ->
            val outFile = targetDirectory.resolve(entry.name)
            when {
                entry.isDirectory -> outFile.createDirectories()
                else -> {
                    outFile.parent.createDirectories()
                    zip.getInputStream(entry).use {
                        it.copyTo(outFile.outputStream())
                    }
                }
            }
        }
    }
}

private val matchers by lazy {
    FileSystems.getDefault().let {
        listOf(
            it.getPathMatcher("glob:**/lib/*.jar"),
            it.getPathMatcher("glob:**/lib/modules/*.jar"),
        )
    }
}

internal fun Path.collectJars() =
    Files.walk(this)
        .asSequence()
        .filter { path -> Files.isRegularFile(path) }
        .filter { path -> matchers.any { it.matches(path) } }
        .toList()
// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
package com.jetbrains.ls.api.core.util

import com.intellij.mock


 CreateEvent ( NULL, TRUE, FALSE, m_szEventName );
		if ( m_hDataEvent == NULL )
		{
			CloseHandle       ( m_hDataMutex );
			UnmapViewOfFile   ( m_lpMappedViewOfFile );
			CloseHandle       ( m_hFileMap );
			return;
		}
	}

	// success
	LastError = ERROR_SUCCESS;
}

void cIPC::ReceiveBuffer ( LPVOID Buffer, DWORD dwOffset, DWORD Size )
{
	// Now can read the filemap
	bool bTryAgain = true;
	int iManyAttempts = 1000;
	while ( iManyAttempts>0 && bTryAgain==true )
	{
		WaitForSingleObject ( m_hDataMutex, INFINITE );
		try
		{
			bTryAgain=false;
			BYTE* lpData = ( BYTE* ) m_lpMem;
			memcpy ( Buffer, &lpData [ dwOffset ], Size );
		}
		catch (...)
		{
			iManyAttempts--;
			bTryAgain=true;
		}
		ReleaseMutex ( m_hDataMutex );
	}
}

void cIPC::SendBuffer ( LPVOID Buffer, DWORD dwOffset, DWORD Size )
{
	// When have it, write to filemap
	bool bTryAgain = true;
	int iManyAttempts = 1000;
	while ( iManyAttempts>0 && bTryAgain==true )
	{
		// Wait for ownership of filemap mutex, then write
		try
		{
			WaitForSingleObject ( m_hDataMutex, INFINITE );
			bTryAgain=false;
			BYTE* lpData = ( BYTE* ) m_lpMem;
			memcpy ( &lpData [ dwOffset ], Buffer, Size );
		}
		catch (...)
		{
			iManyAttempts--;
			bTryAgain=true;
		}

		// Release ownership of filemap mutex
		ReleaseMutex ( m_hDataMutex );
	}
}

////////////////////////////////////////////////////////////////////
// INFORMATION /////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////

/*
	SPEECH COMMANDS
*/

////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
// DEFINES AND INCLUDES ////////////////////////////////////////////
////////////////////////////////////////////////////////////////////

#define DARKSDK	__declspec ( dllexport )
//#define WIN32_LEAN_AND_MEAN
#include "stdafx.h"
//#include <windows.h>
#include <sapi.h>
#include <atlbase.h>
#include <sphelper.h>
#include "core.h"

////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
// FUNCTIONS ///////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////

DARKSDK int  GetVoiceAPI		( void );
DARKSDK void GetVoiceList		( void );
DARKSDK void SetVoice			( int iID );
DARKSDK void SetVoiceSpeed		( int iSpeed );
DARKSDK void SetVoiceVolume		( int iVolume );
DARKSDK void SendVoiceMessage	( DWORD dwMessage );
DARKSDK void SendVoiceMessageXML( DWORD dwMessage );
DARKSDK int  GetVoiceSpeed		( void );
DARKSDK int  GetVoiceVolume		( void );

		void VoiceSetup			( void );
		void VoiceDestroy		( void );
		void SetupVoices        ( int iMode, int iID );
		void SendVoiceMessage   ( DWORD dwMessage, int iOption );

/


_like:
        return True, "Carboxamidine group detected via substructure match."
    else:
        # Even though our simple SMARTS flagged an amidine, the environment suggests a peptide context.
        return False, "WRONGLY CLASSIFIED Carboxamidine group detected via substructure match (peptide-like environment)."

# Example usage (for testing):
if __name__ == "__main__":
    # Test a few examples:
    test_cases = {
        "4-[5-(3,5-dichlorophenyl)-5-(trifluoromethyl)-4,5-dihydro-1,2-oxazol-3-yl]-N-[(methoxyamino)methylidene]-2-methylbenzamide":
            "CON=CNC(=O)c1ccc(cc1C)C1=NOC(C1)(c1cc(Cl)cc(Cl)c1)C(F)(F)F",
        "benzamidine":
            "NC(=N)c1ccccc1",
        "formamidine":
            "[H]C(N)=N",
        "nizatidine (expected false negative in previous attempt)":
            "CNC(NCCSCc1csc(CN(C)C)n1)=C[N+]([O-])=O",
        "Arg-Ser-Tyr (false positive peptide)":
            "O=C(N[C@H](C(=O)N[C@@H](CC1=CC=C(O)C=C1)C(O)=O)CO)[C@@H](N)CCCN=C(N)N"
    }

    for name, smi in test_cases.items():
        res, reason = is_carboxamidine(smi)
        print(f"Test: {name}\nSMILES: {smi}\nResult: {res}\nReason: {reason}\n{'-'*60}")


           this.Property(_ => _.InterviewId, pm =>
            {
                pm.Column("interviewid");
                pm.Column(cm => cm.Index("CumulativeReportStatusChanges_InterviewId"));
            });
            this.Property(_ => _.EventSequence, pm =>
            {
                pm.Column("eventsequence");
                pm.Column(cm => cm.Index("CumulativeReportStatusChanges_EventSequence"));
            });
            this.Property(_ => _.Date, pm =>
            {
                pm.Column("date");
                pm.Column(cm => cm.Index("CumulativeReportStatusChanges_Date"));
            });
            this.Property(_ => _.Status, pm => pm.Column("status"));
            this.Property(_ => _.ChangeValue, pm => pm.Column("changevalue"));
        }
    }
}


nguageName( languageIndex ), 128 );
}

static qboolean CL_SE_GetStringTextString( const char *text, char *buffer, int bufferLength ) {
	assert( text && buffer );
	Q_strncpyz( buffer, SE_GetString( text ), bufferLength );
	return qtrue;
}

static void CL_R_ShaderNameFromIndex( char *name, int index ) {
	const char *retMem = re->ShaderNameFromIndex( index );
	if ( retMem )
		strcpy( name, retMem );
	else
		name[0] = '\0';
}

static void CL_G2API_ListModelSurfaces( void *ghlInfo ) {
	re->G2API_ListSurfaces( (CGhoul2Info *)ghlInfo );
}

static void CL_G2API_ListModelBones( void *ghlInfo, int frame ) {
	re->G2API_ListBones( (CGhoul2Info *)ghlInfo, frame );
}

static void CL_G2API_SetGhoul2ModelIndexes( void *ghoul2, qhandle_t *modelList, qhandle_t *skinList ) {
	re->G2API_SetGhoul2ModelIndexes( *((CGhoul2Info_v *)ghoul2), modelList, skinList );
}

static qboolean CL_G2API_HaveWeGhoul2Models( void *ghoul2) {
	return re->G2API_HaveWeGhoul2Models( *((CGhoul2Info_v *)ghoul2) );
}

static qboolean CL_G2API_GetBoltMatrix( void *ghoul2, const int modelIndex, const int boltIndex, mdxaBone_t *matrix, const vec3_t angles, const vec3_t position, const int frameNum, qhandle_t *modelList, vec3_t scale ) {
	return re->G2API_GetBoltMatrix( *((CGhoul2Info_v *)ghoul2), modelIndex, boltIndex, matrix, angles, position, frameNum, modelList, scale );
}

static qboolean CL_G2API_GetBoltMatrix_NoReconstruct( void *ghoul2, const int modelIndex, const int boltIndex, mdxaBone_t *matrix, const vec3_t angles, const vec3_t position, const int frameNum, qhandle_t *modelList, vec3_t scale ) {
	re->G2API_BoltMatrixReconstruction( qfalse );
	return re->G2API_GetBoltMatrix( *((CGhoul2Info_v *)ghoul2), modelIndex, boltIndex, matrix, angles, position, frameNum, modelList, scale );
}

static qboolean CL_G2API_GetBoltMatrix_NoRecNoRot( void *ghoul2, const int modelIndex, const int boltIndex, mdxaBone_t *matrix, const vec3_t angles, const vec3_t position, const int frameNum, qhandle_t *modelList, vec3_t scale ) {
	re->G2API_BoltMatrixSPMethod( qtrue );
	return re->G2API_GetBoltMatrix( *((CGhoul2Info_v *)ghoul2), modelIndex, boltIndex, matrix, angles, position, frameNum, modelList, scale );
}

static int CL_G2API_InitGhoul2Model( void **ghoul2Ptr, const char *fileName, int modelIndex, qhandle_t customSkin, qhandle_t customShader, int modelFlags, int lodBias ) {
#ifdef _FULL_G2_LEAK_CHECKING
		g_G2AllocServer = 0;
#endif
	return re->G2API_InitGhoul2Model( (CGhoul2Info_v **)ghoul2Ptr, fileName, modelIndex, customSkin, customShader, modelFlags, lodBias );
}

static qboolean CL_G2API_SetSkin( void *ghoul2, int modelIndex, qhandle_t


romeTransactionDurability} from "./dexie-constructor";

export const enum DBCoreRangeType {
  Equal = 1,
  Range = 2,
  Any = 3,
  Never = 4
}

export interface DBCoreKeyRange {
  readonly type: DBCoreRangeType;
  readonly lower: any;
  readonly lowerOpen?: boolean;
  readonly upper: any;
  readonly upperOpen?: boolean;
  //includes (key: Key) : boolean; Despite IDBKeyRange api - it's no good to have this as a method. Benefit from using a more functional approach.
}

export interface DBCoreTransaction {
  abort(): void;
}

interface DbCoreTransactionOptions {
  durability: ChromeTransactionDurability
}

export type DBCoreMutateRequest = DBCoreAddRequest | DBCorePutRequest | DBCoreDeleteRequest | DBCoreDeleteRangeRequest;

export interface DBCoreMutateResponse {
  numFailures: number,
  failures: {[operationNumber: number]: Error};
  lastResult: any;
  results?: any[]; // Present on AddRequest and PutRequest.
}

export interface DBCoreAddRequest {
  type: 'add';
  trans: DBCoreTransaction;
  values: readonly any[];
  keys?: any[];
  /** @deprecated Will always get results since 3.1.0-alpha.5 */
  wantResults?: boolean;
}

export interface DBCorePutRequest {
  type: 'put';
  trans: DBCoreTransaction;
  values: readonly any[];
  keys?: any[];
  criteria?: {
    index: string | null;
    range: DBCoreKeyRange;
  };
  changeSpec?: {[keyPath: string]: any}; // Common changeSpec for each key
  changeSpecs?: {[keyPath: string]: any}[]; // changeSpec per key.
  /** @deprecated Will always get results since 3.1.0-alpha.5 */
  wantResults?: boolean;
}

export interface DBCoreDeleteRequest {
  type: 'delete';
  trans: DBCoreTransaction;
  keys: any[];
  criteria?: {
    index: string | null;
    range: DBCoreKeyRange;
  };
}

export interface DBCoreDeleteRangeRequest {
  type: 'deleteRange';
  trans: DBCoreTransaction;
  range: DBCoreKeyRange;
}

export interface DBCoreGetManyRequest {
  trans: DBCoreTransaction;
  keys: any[];
  cache?: "immutable" | "clone"
  method?: string;
}

export interface DBCoreGetRequest {
  trans: DBCoreTransaction;
  key: any;
  method?: string;
}

export interface DBCoreQuery {
  index: DBCoreIndex;//keyPath: null | string | string[]; // null represents primary key. string a property, string[] several properties.
  range: DBCoreKeyRange;
}

export interface DBCoreQueryRequest {
  trans: DBCoreTransaction;
  values?: boolean;
  limit?: number;
  query: DBCoreQuery;
}

export interface DBCoreQueryResponse {
  result: any[];
}

export interface DBCoreOpenCursorRequest {
  trans: DBCoreTransaction;
  values?: boolean;
  unique?: boolean;
  reverse?: boolean;
  query: DBCoreQuery;
}

export interface DBCoreCountRequest {
  trans: DBCoreTransaction;
  query: DBCoreQuery;
}

export interface DBCoreCursor {
  readonly trans: DBCoreTransaction;
  readonly key: any;
  readonly primaryKey: any;
  readonly value?: any;
  readonly done?: boolean;
  continue(key?: any): void;
  continuePrimaryKey(key: any, primaryKey: any): void;
  advance(count: number): void;
  start(onNext: ()=>void): Promise<any>
  stop(value?: any | Promise<any>): void;
  next(): Promise<DBCoreCursor>;
  fail(error: Error): void;
}

export interface DBCoreSchema {
  name: string;
  tables: DBCoreTableSchema[];
}
export interface DBCoreTableSchema {
  readonly name: string;
  readonly primaryKey: DBCoreIndex;
  readonly indexes: DBCoreIndex[];
  readonly getIndexByKeyPath: (keyPath:


OS);
	announce_and_cleanup(fake);

	if (IMAGE_ENABLE_OF_LIBFDT && images->ft_len)
		r2 = (unsigned long)images->ft_addr;
	else
		r2 = gd->bd->bi_boot_params;

	if (!fake) {
#ifdef CONFIG_ARMV7_NONSEC
		if (armv7_boot_nonsec()) {
			armv7_init_nonsec();
			secure_ram_addr(_do_nonsec_entry)(kernel_entry,
							  0, machid, r2);
		} else
#endif
			kernel_entry(0, machid, r2);
	}
#endif
}

/* Main Entry point for arm bootm implementation
 *
 * Modeled after the powerpc implementation
 * DIFFERENCE: Instead of calling prep and go at the end
 * they are called if subcommand is equal 0.
 */
int do_bootm_linux(int flag, int argc, char * const argv[],
		   bootm_headers_t *images)
{
	/* No need for those on ARM */
	if (flag & BOOTM_STATE_OS_BD_T || flag & BOOTM_STATE_OS_CMDLINE)
		return -1;

	if (flag & BOOTM_STATE_OS_PREP) {
		boot_prep_linux(images);
		return 0;
	}

	if (flag & (BOOTM_STATE_OS_GO | BOOTM_STATE_OS_FAKE_GO)) {
		boot_jump_linux(images, flag);
		return 0;
	}

	boot_prep_linux(images);
	boot_jump_linux(images, flag);
	return 0;
}

#if defined(CONFIG_BOOTM_VXWORKS)
void boot_prep_vxworks(bootm_headers_t *images)
{
#if defined(CONFIG_OF_LIBFDT)
	int off;

	if (images->ft_addr) {
		off = fdt_path_offset(images->ft_addr, "/memory");
		if (off > 0) {
			if (arch_fixup_fdt(images->ft_addr))
				puts("## WARNING: fixup memory failed!\n");
		}
	}
#endif
	cleanup_before_linux();
}
void boot_jump_vxworks(bootm_headers_t *images)
{
#if defined(CONFIG_ARM64) && defined(CONFIG_ARMV8_PSCI)
	armv8_setup_psci();
	smp_kick_all_cpus();
#endif

	/* ARM VxWorks requires device tree physical address to be passed */
	((void (*)(void *))images->ep)(images->ft_addr);
}
#endif


#!/usr/bin/env lua

-- Copyright (c) Meta Platforms, Inc. and affiliates.
--
-- This source code is licensed under the MIT license found in the
-- LICENSE file in the root directory of this source tree.

--- Reads CPE interfaces and prefixes from node config.
-- @script config_get_cpe

local tg_utils = require "tg.utils"
local logger = require "tg.logger"
local argparse = require "argparse"
local tablex = require "pl.tablex"
require("pl.stringx").import()

local C = {}

local CONFIG_DIR = "/data/cfg"
local CONFIG_FILE = CONFIG_DIR .. "/node_config.json"

function C.getSingleCpePrefix(nodeConfig)
  -- Read deprecated cpe config
  return tg_utils.get(
    nodeConfig, "envParams", "CPE_IFACE_IP_PREFIX"
  ) or ""
end

function C.getSingleCpeInterface(nodeConfig)
  -- Read deprecated cpe config
  return tg_utils.get(
    nodeConfig, "envParams", "CPE_INTERFACE"
  ) or ""
end

function C.getCpePrefix(nodeConfig, cpeIntf)
  -- Read new (or deprecated) CPE config.
  local cpeConfig = nodeConfig.cpeConfig
  if cpeConfig == nil then
    return C.getSingleCpePrefix(nodeConfig)
  end
  -- Currently, only per CPE interface prefix is supported.
  if cpeConfig[cpeIntf] ~= nil then
    return cpeConfig[cpeIntf].prefix
  end
  return ""
end

function C.getCpeInterfaces(nodeConfig, cpeIndex)
  local cpeConfig = nodeConfig.cpeConfig
  local cpeIntf = ""
  -- Read deprecated or new CPE config.
  if cpeConfig == nil then
    cpeIntf = C.getSingleCpeInterface(nodeConfi


_cocos2dx_cocosnet_CInetAddress_finalize(lua_State* tolua_S)
{
    printf("luabindings: finalizing LUA object (CInetAddress)");
    return 0;
}

int lua_register_cocos2dx_cocosnet_CInetAddress(lua_State* tolua_S)
{
    tolua_usertype(tolua_S,"cc.CInetAddress");
    tolua_cclass(tolua_S,"CInetAddress","cc.CInetAddress","sockaddr_in",nullptr);

    tolua_beginmodule(tolua_S,"CInetAddress");
        tolua_function(tolua_S,"new",lua_cocos2dx_cocosnet_CInetAddress_constructor);
        tolua_function(tolua_S,"getLength",lua_cocos2dx_cocosnet_CInetAddress_getLength);
        tolua_function(tolua_S,"setIp",lua_cocos2dx_cocosnet_CInetAddress_setIp);
        tolua_function(tolua_S,"setHost",lua_cocos2dx_cocosnet_CInetAddress_setHost);
        tolua_function(tolua_S,"getIp",lua_cocos2dx_cocosnet_CInetAddress_getIp);
        tolua_function(tolua_S,"getHostAddress",lua_cocos2dx_cocosnet_CInetAddress_getHostAddress);
        tolua_function(tolua_S,"getPort",lua_cocos2dx_cocosnet_CInetAddress_getPort);
        tolua_function(tolua_S,"setPort",lua_cocos2dx_cocosnet_CInetAddress_setPort);
    tolua_endmodule(tolua_S);
    std::string typeName = typeid(cocos2d::CInetAddress).name();
    g_luaType[typeName] = "cc.CInetAddress";
    g_typeCast["CInetAddress"] = "cc.CInetAddress";
    return 1;
}

int lua_cocos2dx_cocosnet_CNetDelegate_constructor(lua_State* tolua_S)
{
	int argc = 0;
	cocos2d::CNetDelegate* cobj = nullptr;
	bool ok = true;

#if COCOS2D_DEBUG >= 1
	tolua_Error tolua_err;
#endif
	argc = lua_gettop(tolua_S) - 1;
	if (argc == 0)
	{
		if (!ok)
			return 0;
		cobj = new cocos2d::CNetDelegate();
		cobj->autorelease();
		int ID = (int)cobj->_ID;
		int* luaID = &cobj->_luaID;
		toluafix_pushusertype_ccobject(tolua_S, ID, luaID, (void*)cobj, "cc.CNetDelegate");
		return 1;
	}
	CCLOG("%s has wrong number of arguments: %d, was expecting %d \n", "CNetDelegate", argc, 0);
	return 0;

#if COCOS2D_DEBUG >= 1
	tolua_error(tolua_S, "#ferror in function 'lua_cocos2dx_cocosnet_CNetDelegate_constructor'.", &tolua_err);
#endif

	return 0;
}

int lua_cocos2dx_cocosnet_CNetDelegate_getInstance(lua_State* tolua_S)
{
	int argc = 0;
	bool ok = true;

#if COCOS2D_DEBUG >= 1
	tolua_Error tolua_err;
#endif

#if COCOS2D_DEBUG >= 1
	if (!tolua_isusertable(tolua_S, 1, "cc.CNetDelegate", 0, &tolua_err)) goto tolua_lerror;
#endif

	argc = lua_gettop(tolua_S) - 1;

	if (argc == 0)
	{
		if (!ok)
			return 0;
		cocos2d::CNetDelegate* ret = cocos2d::CNetDelegate::getInstance();
		object_to_luaval<cocos2d


 mut game_state = State::Play;
    if let Some(event) = event {
        match event {
            // NOTE: DownKeyUp needs to be first in the match call otherwise
            // the DownKeyUp event will be missed if the user is holding down
            // another key.
            Input::SKeyUp | Input::SpaceKeyUp | Input::DownKeyUp => {
                game.fall_rate_millis = DEFAULT_FALL_RATE;
            }
            Input::LeftKeyDown => {
                game.block.positions = move_block(&game.block, &game.board, Delta { y: 0, x: -1 });
            }
            Input::RightKeyDown => {
                game.block.positions = move_block(&game.block, &game.board, Delta { y: 0, x: 1 });
            }
            Input::UpKeyDown => {
                let (positions, orientation) =
                    rotate_block(&game.block, &game.board, game.block_orientation);
                game.block.positions = positions;
                game.block_orientation = orientation;
            }
            Input::DownKeyDown | Input::SpaceKeyDown | Input::SKeyDown => {
                game.fall_rate_millis = FAST_FALL_RATE;
            }
            Input::EscKeyDown | Input::PKeyDown => game_state = State::Paused,
            _ => {}
        }
    }

    if game.block_drop_clock.elapsed().as_millis() > game.fall_rate_millis {
        game.block_drop_clock = time::Instant::now();

        // Having the game over state allows the player to
        // soak briefly in thier defeat. Rather then a sudden loss.
        if *state == State::GameOver {
            return State::Menu;
        }

        // NOTE: We want to handle the case when the block has finished falling in
        // the elapsed time. As this gives the player a chance
        // to quickly move the block at the last split second and "wedge" it into
        // gaps.
        if has_block_finished_falling(&game.board, &game.block) {
            game.board = paint_positions(&game.board, &game.block.positions, game.block.color);

            let spawned_block = block::spawn(&game.modes[game.mode_selected]);
            if !positions_empty_on_board(&spawned_block.positions, &game.board) {
                game_state = State::GameOver;
                game.fall_rate_millis = GAME_OVER_PAUSE;
            } else {
                game.block = spawned_block;
                game.block_orientation = 0;
                game.fall_rate_millis = DEFAULT_FALL_RATE;
            }
            let (board, score) = delete_full_lines(&game.board);
            game.board = board;
            game.score += score;
            return game_state;
        }
        // Move block one square down.
        game.block.positions = move_block(&game.block, &game.board, Delta { y: 1, x: 0 });
    }
    return game_state;
}

fn paint_positions(board: &Board, positions: &Vec<Position>, color: block::Color) -> Board {
    let mut board = board.clone();
    positions
        .iter()
        .for_each(|p| board[p.y as usize][p.x as usize] = Some(color));
    board
}

fn move_block(block: &Block, board: &Board, delta: Delta) -> Vec<Position> {
    let new_positions: Vec<Position> = block.positions.iter().map(|&p| p + delta).collect();
    if positions_empty_on_board(&new_positions, &board) {
        return new_positions;
    }
    block.positions.clone()
}

fn has_block_finished_falling(board: &Board, block: &Block) -> bool {
    block.positions.iter().any(|&p| {
        // Check at bottom of board.


        updatedText = DELIMITERS[3].matcher(updatedText).replaceAll(" . ")
        updatedText = DELIMITERS[4].matcher(updatedText).replaceAll(" $1 ")
        val words = whitespacePattern.split(updatedText)

        val result = ArrayList<String>()
        for (token in words) {
            if (token.isNotEmpty()) {
                result.add(token)
            }
        }
        return result
    }

    companion object {
        private val WONT_CONTRACTION: Pattern = Pattern.compile("(?i)\\b(w)(on't)\\b")
        private val SHANT_CONTRACTION: Pattern = Pattern.compile("(?i)\\b(sha)(n't)\\b")
        private val AINT_CONTRACTION: Pattern = Pattern.compile("(?i)\\b(a)(in't)\\b")
        private val NOT_CONTRACTIONS: Array<Pattern> = arrayOf(
            Pattern.compile("(?i)\\b(can)('t|not)\\b"),
            Pattern.compile("(?i)(.)(n't)\\b")
        )

        /**
         * List of contractions adapted from Robert MacIntyre's tokenizer.
         */
        private val CONTRACTIONS2: Array<Pattern> = arrayOf(
            Pattern.compile("(?i)(.)('ll|'re|'ve|'s|'m|'d)\\b"),
            Pattern.compile("(?i)\\b(D)('ye)\\b"),
            Pattern.compile("(?i)\\b(Gim)(me)\\b"),
            Pattern.compile("(?i)\\b(Gon)(na)\\b"),
            Pattern.compile("(?i)\\b(Got)(ta)\\b"),
            Pattern.compile("(?i)\\b(Lem)(me)\\b"),
            Pattern.compile("(?i)\\b(Mor)('n)\\b"),
            Pattern.compile("(?i)\\b(T)(is)\\b"),
            Pattern.compile("(?i)\\b(T)(was)\\b"),
            Pattern.compile("(?i)\\b(Wan)(na)\\b")
        )
        private val CONTRACTIONS3: Array<Pattern> = arrayOf(
            Pattern.compile("(?i)\\b(Whad)(dd)(ya)\\b"),
            Pattern.compile("(?i)\\b(Wha)(t)(cha)\\b")
        )
        private val DELIMITERS: Array<Pattern> =
            arrayOf(
                Pattern.compile("((?U)[^\\w.'\\-/,&<>:])"),  // Separate most punctuation
                Pattern.compile("(?U)(,\\s)"),  // Separate commas if they're followed by space (e.g., don't separate 2,500)
                Pattern.compile("(?U)('\\s)"),  // Separate single quotes if they're followed by a space.
                Pattern.compile("(?U)\\. *(\\n|$)"),  // Separate periods that come before newline or end of string.
                Pattern.compile("(?U)(\\.{3,})")  // Separate continuous periods such as ... in ToC.
            )
        private const val WHITESPACE: String = "[^\\S\\r\\n]+"
    }
}
package com.londogard.nlp.meachinelearning.vectorizer.count

import com.londogard.nlp.meachinelearning.D2SparseArray
import com.londogard.nlp.meachinelearning.NotFitException
import com.londogard.nlp.meachinelearning.datatypes.Coordinate
import com.londogard.nlp.meachinelearning.datatypes.Percent
import com.londogard.nlp.meachinelearning.datatypes.PercentOrCount
import com.londogard.nlp.meachinelearning.vectorizer.Vectorizer
import com.londogard.nlp.utils.IterableExtensions.getNgramCountsPerDoc
import com.londogard.nlp.utils.IterableExtensions.identityCount
import com.londogard.nlp.utils.IterableExtensions.ngrams

// TODO add actual T support
class CountVectorizer<T : Number>(
    val minDf: PercentOrCount = Percent(0.0),
    val maxDf: PercentOrCount = Percent(1.0),
    val ngramRange: IntRange = 1..1
) : Vectorizer<T, Float> {
    lateinit var vectoriza


, life, vector(-1, 0), scl, nil, spd)
    fires:spawnFire(x, y, life, vector(-1, 1), scl, nil, spd)
    fires:spawnFire(x, y, life, vector(0, -1), scl, nil, spd)
	end

  -- finds all enemies in the blast radius
  local ens = world:queryCircleArea(x, y, radius, {'Enemy'})
  for i,e in ipairs(ens) do
    if e.parent.type ~= "fish" then
      e.parent:damage(25)
    end
  end

  -- finds all breakable walls in the blast radius
  local br = world:queryCircleArea(x, y, radius, {'Wall'})
  for i,b in ipairs(br) do
    if b.parent ~= nil and b.parent.breakable then
      b.parent.dead = true
    end
  end

  shake:start(0.01, 12, 0.005, 0.25)

  expX = x
  expY = y

end


peg
	}
	r2, err := fynetools.MakeAvatar(r)
	if err != nil {
		slog.Error("Failed to make avatar", "characterID", id, "err", err)
		r2 = icons.Characterplaceholder64Jpeg
	}
	setIcon(r2)
}

//////////////////
// Current corporation

func (u *baseUI) initCorporation() {
	var c *app.Corporation
	var err error
	ctx := context.Background()
	if cID := u.settings.LastCorporationID(); cID != 0 {
		c, err = u.rs.GetCorporation(ctx, int32(cID))
		if err != nil {
			if !errors.Is(err, app.ErrNotFound) {
				slog.Error("Failed to load corporation", "error", err)
			}
		}
	}
	if c == nil {
		c, err = u.rs.GetAnyCorporation(ctx)
		if err != nil {
			if !errors.Is(err, app.ErrNotFound) {
				slog.Error("Failed to load corporation", "error", err)
			}
		}
	}
	if c == nil {
		u.resetCorporation()
		return
	}
	u.setCorporation(c)
}

// currentCorporationID returns the ID of the current corporation or 0 if non is set.
func (u *baseUI) currentCorporationID() int32 {
	c := u.currentCorporation()
	if c == nil {
		return 0
	}
	return c.ID
}

func (u *baseUI) currentCorporation() *app.Corporation {
	return u.corporation.Load()
}

func (u *baseUI) hasCorporation() bool {
	return u.currentCorporation() != nil
}

func (u *baseUI) loadCorporation(id int32) error {
	c, err := u.rs.GetCorporation(context.Background(), id)
	if err != nil {
		return fmt.Errorf("load corporation ID %d: %w", id, err)
	}
	u.setCorporation(c)
	return nil
}

func (u *baseUI) resetCorporation() {
	u.corporation.Store(nil)
	u.settings.ResetLastCorporationID()
	u.currentCorporationExchanged.Emit(context.Background(), nil)
	u.updateCorporation()
	u.updateStatus()
}

func (u *baseUI) setCorporation(c *app.Corporation) {
	u.corporation.Store(c)
	u.settings.SetLastCorporationID(c.ID)
	u.currentCorporationExchanged.Emit(context.Background(), c)
	u.updateCorporation()
	u.updateStatus()
	if u.onSetCorporation != nil {
		u.onSetCorporation(c)
	}
}

func (u *baseUI) setAnyCorporation() error {
	c, err := u.rs.GetAnyCorporation(context.Background())
	if errors.Is(err, app.ErrNotFound) {
		u.resetCorporation()
		return nil
	}
	if err != nil {
		return err
	}
	u.setCorporation(c)
	return nil
}

// updateCorporation updates all pages for the current corporation.
func (u *baseUI) updateCorporation() {
	c := u.currentCorporation()
	if c != nil {
		slog.Debug("Updating corporation", "ID", c.EveCorporation.ID, "name", c.EveCorporation.Name)
	} else {
		slog.Debug("Updating without corporation")
	}
	ff := make(map[string]func())
	ff["corporationSheet"] = u.corporationSheet.update
	ff["corporationIndyJobs"] = u.corporationIndyJobs.update
	ff["corporationMember"] = u.corporationMember.update
	ff["corporationStructures"] = u.corporationStructures.update
	ff["corporationWalletTotal"] = u.updateCorporationWalletTotal
	for id, w