0%, $600 due May 2032\u003C/span\u003E\u003C/div\u003E\u003C/td\u003E\u003Ctd colspan=\"2\" style=\"background-color:#b3b3b3;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"\u003E\u003Cspan style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\"\u003E592\u00a0\u003C/span\u003E\u003C/td\u003E\u003Ctd style=\"background-color:#b3b3b3;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"\u003E\u003C/td\u003E\u003Ctd colspan=\"3\" style=\"background-color:#b3b3b3;padding:0 1pt\"\u003E\u003C/td\u003E\u003Ctd colspan=\"2\" style=\"background-color:#b3b3b3;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"\u003E\u003Cspan style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\"\u003E\u2014\u00a0\u003C/span\u003E\u003C/td\u003E\u003Ctd style=\"background-color:#b3b3b3;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"\u003E\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"3\" style=\"padding:2px 1pt;text-align:left;vertical-align:bottom\"\u003E\u003Cspan style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\"\u003ETotal\u003C/span\u003E\u003C/td\u003E\u003Ctd colspan=\"2\" style=\"border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"\u003E\u003Cspan style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\"\u003E2,474\u00a0\u003C/span\u003E\u003C/td\u003E\u003Ctd style=\"border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"\u003E\u003C/td\u003E\u003Ctd colspan=\"3\" style=\"padding:0 1pt\"\u003E\u003C/td\u003E\u003Ctd colspan=\"2\" style=\"border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom\"\u003E\u003Cspan style=\"color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%\"\u003E2,784\u00a0\u003C/span\u003E\u003C/td\u003E\u003Ctd style=\"border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom\"\u003E\u003C/td\u003E\u003C/tr\u003E\u003Ctr\u003E\u003Ctd colspan=\"3\" style=\"background-color:#b3b3b3;padding:2px 1pt;text-align:left;vertical-align:bottom\"\u003E\


 desired output image appearing in the bottom-left corner of the WebGL canvas.
 *
 * @param {WebGLRenderingContext} sourceContext The WebGL context to copy from.
 * @param {HTMLCanvasElement} targetCanvas The 2D target canvas to copy on to.
 * @param {Object} pipelineState The 2D target canvas to copy on to.
 */
function copyGLTo2DDrawImage(gl, pipelineState) {
  var glCanvas = gl.canvas, targetCanvas = pipelineState.targetCanvas,
      ctx = targetCanvas.getContext('2d');
  ctx.translate(0, targetCanvas.height); // move it down again
  ctx.scale(1, -1); // vertical flip
  // where is my image on the big glcanvas?
  var sourceY = glCanvas.height - targetCanvas.height;
  ctx.drawImage(glCanvas, 0, sourceY, targetCanvas.width, targetCanvas.height, 0, 0,
    targetCanvas.width, targetCanvas.height);
}

/**
 * Copy an input WebGL canvas on to an output 2D canvas using 2d canvas' putImageData
 * API. Measurably faster than using ctx.drawImage in Firefox (version 54 on OSX Sierra).
 *
 * @param {WebGLRenderingContext} sourceContext The WebGL context to copy from.
 * @param {HTMLCanvasElement} targetCanvas The 2D target canvas to copy on to.
 * @param {Object} pipelineState The 2D target canvas to copy on to.
 */
function copyGLTo2DPutImageData(gl, pipelineState) {
  var targetCanvas = pipelineState.targetCanvas, ctx = targetCanvas.getContext('2d'),
      dWidth = pipelineState.destinationWidth,
      dHeight = pipelineState.destinationHeight,
      numBytes = dWidth * dHeight * 4;

  // eslint-disable-next-line no-undef
  var u8 = new Uint8Array(this.imageBuffer, 0, numBytes);
  // eslint-disable-next-line no-undef
  var u8Clamped = new Uint8ClampedArray(this.imageBuffer, 0, numBytes);

  gl.readPixels(0, 0, dWidth, dHeight, gl.RGBA, gl.UNSIGNED_BYTE, u8);
  var imgData = new ImageData(u8Clamped, dWidth, dHeight);
  ctx.putImageData(imgData, 0, 0);
}

(function() {

  'use strict';

  var noop = function() {};

  fabric.Canvas2dFilterBackend = Canvas2dFilterBackend;

  /**
   * Canvas 2D filter backend.
   */
  function Canvas2dFilterBackend() {};

  Canvas2dFilterBackend.prototype = /** @lends fabric.Canvas2dFilterBackend.prototype */ {
    evictCachesForKey: noop,
    dispose: noop,
    clearWebGLCaches: noop,

    /**
     * Experimental. This object is a sort of repository of help layers used to avoid
     * of recreating them during frequent filtering. If you are previewing a filter with
     * a slider you probably do not want to create help layers every filter step.
     * in this object there will be appended some canvases, created once, resized sometimes
     * cleared never. Clearing is left to the developer.
     **/
    resources: {

    },

    /**
     * Apply a set of filters against a source image and draw the filtered output
     * to the provided destination canvas.
     *
     * @param {EnhancedFilter} filters The filter to apply.
     * @param {HTMLImageElement|HTMLCanvasElement} sourceElement The source to be filtered.
     * @param {Number} sourceWidth The width of the source input.
     * @param {Number} sourceHeight The height of the source input.
     * @param {HTMLCanvasElement} targetCanvas The destination for filtered output to be drawn.
     */
    applyFilters: function(filters, sourceElement, sourceWidth, sourceHeight, targetCanvas) {
      var ctx = targetCanvas.getContext('2d');
      ctx.drawImage(sourceElement, 0, 0, sourc


z0.b, z0.b, #9
sri z0.h, z0.h, #0
sri z0.h, z0.h, #17
sri z0.s, z0.s, #0
sri z0.s, z0.s, #33
sri z0.d, z0.d, #0
sri z0.d, z0.d, #64

srshl z32.b, p0/m, z0.b, z0.b
srshl z0.b, p0/m, z32.b, z0.b
srshl z0.b, p0/m, z0.b, z32.b
srshl z0.b, p0/m, z1.b, z0.b
srshl z0.b, p8/m, z0.b, z0.b
srshl z0.h, p0/m, z0.b, z0.b
srshl z0.b, p0/z, z0.b, z0.b

srshlr z32.b, p0/m, z0.b, z0.b
srshlr z0.b, p0/m, z32.b, z0.b
srshlr z0.b, p0/m, z0.b, z32.b
srshlr z0.b, p0/m, z1.b, z0.b
srshlr z0.b, p8/m, z0.b, z0.b
srshlr z0.h, p0/m, z0.b, z0.b
srshlr z0.b, p0/z, z0.b, z0.b

srshr z0.h, p0/m, z0.b, #1
srshr z32.b, p0/m, z32.b, #1
srshr z0.b, p0/m, z1.b, #1
srshr z0.b, p8/m, z0.b, #1
srshr z0.b, p0/m, z0.b, #0
srshr z0.b, p0/m, z0.b, #9
srshr z0.h, p0/m, z0.h, #0
srshr z0.h, p0/m, z0.h, #17
srshr z0.s, p0/m, z0.s, #0
srshr z0.s, p0/m, z0.s, #33
srshr z0.d, p0/m, z0.d, #0
srshr z0.d, p0/m, z0.d, #65

srsra z0.h, z0.b, #1
srsra z32.b, z0.b, #1
srsra z0.b, z32.b, #1
srsra z0.b, z0.b, #0
srsra z0.b, z0.b, #9
srsra z0.h, z0.h, #0
srsra z0.h, z0.h, #17
srsra z0.s, z0.s, #0
srsra z0.s, z0.s, #33
srsra z0.d, z0.d, #0
srsra z0.d, z0.d, #64

sshllb z0.b, z0.b, #0
sshllb z32.h, z0.b, #0
sshllb z0.h, z32.b, #0
sshllb z0.h, z0.b, #8
sshllb z0.s, z0.h, #16
sshllb z0.d, z0.s, #32

sshllt z0.b, z0.b, #0
sshllt z32.h, z0.b, #0
sshllt z0.h, z32.b, #0
sshllt z0.h, z0.b, #8
sshllt z0.s, z


px;
  height: 24px;
}

#wpforms-challenge-popup-lite-connect hr {
  margin: 20px 0;
}

#wpforms-challenge-popup-lite-connect .wpforms-toggle-control .wpforms-toggle-control-label {
  font-weight: normal;
  font-size: 14px;
  line-height: 17px;
  color: #444444;
}

#wpforms-challenge-popup-lite-connect .wpforms-education-lite-connect-enabled-info img {
  margin: 0 6px 0 0;
  width: 17px;
  height: 17px;
  vertical-align: bottom;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzL2xpdGUvY3NzL2J1aWxkZXItZWR1Y2F0aW9uLmNzcyIsInNvdXJjZXMiOlsiYXNzZXRzL2xpdGUvc2Nzcy9idWlsZGVyLWVkdWNhdGlvbi5zY3NzIiwiYXNzZXRzL3Njc3MvYWRtaW4vX3ZhcmlhYmxlcy5zY3NzIiwiYXNzZXRzL3Njc3MvX3ZhcmlhYmxlcy5zY3NzIiwiYXNzZXRzL3Njc3MvYWRtaW4vX2NvbG9ycy5zY3NzIiwiYXNzZXRzL2xpdGUvc2Nzcy9hZG1pbi9fZWR1Y2F0aW9uLWxpdGUtY29ubmVjdC5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFdQRm9ybXMgTGl0ZSBhZG1pbiBzdHlsZXMuXG4vL1xuLy8gQnVpbGRlciBFZHVjYXRpb24gc3R5bGVzLlxuLy9cbi8vIEBzaW5jZSAxLjcuNFxuXG5AaW1wb3J0ICcuLi8uLi8uLi9hc3NldHMvc2Nzcy9hZG1pbi92YXJpYWJsZXMnO1xuXG5AaW1wb3J0ICdhZG1pbi9lZHVjYXRpb24tbGl0ZS1jb25uZWN0JztcbiIsIi8vIFdQRm9ybXMgYWRtaW4gc3R5bGVzLlxuLy9cbi8vIFZhcmlhYmxlcy5cbi8vXG4vLyBAc2luY2UgMS43LjRcblxuQGltcG9ydCAnLi4vdmFyaWFibGVzJztcbkBpbXBvcnQgJ2NvbG9ycyc7XG5cbi8vIEZvbnRzLlxuJGZvbnRfZmE6IEZvbnRBd2Vzb21lO1xuXG4vLyBGb250IHNpemVzLlxuJGZvbnRfc2l6ZV8yeHM6IDExcHg7XG4kZm9udF9zaXplX3hzOiAgMTJweDtcbiRmb250X3NpemVfc3M6ICAxM3B4O1xuJGZvbnRfc2l6ZV9zOiAgIDE0cHg7XG4kZm9udF9zaXplX206ICAgMT


                            |
| 烹饪 | 如何制作一份完美的意大利面？ |
| 人工智能 | 机器学习和深度学习有什么不同？ |
| 艺术 | 你认为莫奈的《睡莲》是如何表达其情感的？ |
| 社会学 | 现代社会中，女性是否容易受到职场性别歧视？ |
| 心理学 | 你认为“哈佛三十五岁症候群”是真实存在的吗？ |
| 历史学 | 在美国独立战争期间，那些事件导致了英国失败？ |
| 天文学 | 什么是黑洞？它们是如何形成的？ |
| 医学 | 高血压患者饮食应该注意哪些方面？ |
| 工程学 | 如何设计一座高速公路桥梁以确保其安全性？ |
| 生物学 | 植物的细胞壁由什么构成？ |
|自然语言处理|请解释一下什么是自然语言处理？|
|电影推荐|基于用户评分，请为我推荐一部心理压迫感强烈的电影。|
|新闻分类|请将这篇文章归类到以下哪个分类：体育、科技、娱乐、政治。（文章链接）|
|诗歌创作|请写一个描述秋天的五绝。|
|翻译校对|请帮我修正一下这段英文翻译：“The quick brown fox jumps over the lazy dog”。|
|股票价格预测|请根据过去两年的股票数据，预测接下来三个月该股票的走势。|
|音乐生成|请用AI创作一首抒情的钢琴曲。|
|情感分析|请分析这段对话中人物A的情感：（对话内容）|
|新闻摘要|请为这篇长篇新闻写一个200字的摘要：（新闻链接）|
|科学计算|请计算出在空气密度为1.225kg/m³时，质量为50kg的物体下落10秒钟后的速度。|
|电影推荐|可以根据本人的观影历史推荐一部好看的电影吗？|
|旅游建议|我正在计划去某个国家旅游，你有什么好的建议和建议吗？|
|产品对比|请比较两种智能手机的优缺点，分别是哪些方面？|
|餐厅预订|哪家餐厅提供最好的美食体验？我需要预订桌位。|
|求职建议|若我想成为一名数据科学家，需要具备怎样的技能和背景？|
|新闻分类|请将下面的新闻归类：『马斯克在Twitter上发布了一条消息，称他在做一项“重大声明”』|
|书籍推荐|我喜欢奇幻小说，请推荐一本带有浓厚魔幻元素的书籍。|
|语音转换|我需要将一段英文语音转换成中文文字，请问有什么工具或软件可以使用？|
|影视剧情概括|请简要描述电影《泰坦尼克号》的剧情。|
|情感分析|根据下面这段文字，判断其中所表达的情感：「自从和男友分手后，我感到非常孤独和心痛。」|
|疾病诊�


super(key: key);

  @override
  _ConsumerState<T> createState() => _ConsumerState<T>();
}

class _ConsumerState<T extends BlocBase> extends State<Consumer<T>> {
  late T value;

  String tag = "global";

  void listener() {
    T newValue = BlocProvider.tag(widget.tag).getBloc<T>();
    if (widget.distinct == null || widget.distinct?.call(value, newValue) != true) {
      setState(() {
        value = newValue;
      });
    }
  }

  @override
  void initState() {
    value = BlocProvider.tag(widget.tag).getBloc<T>();
    value.addListener(listener);
    super.initState();
  }

  @override
  void dispose() {
    value.removeListener(listener);
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return widget.builder(context, value);
  }
}
import 'dart:ui';

import 'package:fl_animated_linechart/chart/chart_line.dart';
import 'package:fl_animated_linechart/chart/chart_point.dart';
import 'package:fl_animated_linechart/chart/highlight_point.dart';
import 'package:fl_animated_linechart/common/dates.dart';
import 'package:fl_animated_linechart/fl_animated_linechart.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';

import '../testHelpers/chart_data_helper.dart';

void main() {
  test('init with empty dataset', () async {
    LineChart lineChart = LineChart([], Dates(DateTime.now(), DateTime.now()));
    lineChart.initialize(
      200,
      100,
      TextStyle(
          color: Colors.grey[800], fontSize: 11.0, fontWeight: FontWeight.w200),
    );

    expect(lineChart.seriesMap!.isEmpty, true);

    lineChart = LineChart([ChartLine([], Colors.black, 'C')],
        Dates(DateTime.now(), DateTime.now()));
    lineChart.initialize(
      200,
      100,
      TextStyle(
          color: Colors.grey[800], fontSize: 11.0, fontWeight: FontWeight.w200),
    );

    expect(lineChart.seriesMap!.isEmpty, true);
  });

  test('init with 1 line', () async {
    LineChart lineChart = LineChart(
        [ChartLineHelper.createLine(10, 2, Colors.cyan, 'W')],
        Dates(DateTime.now(), DateTime.now()));
    lineChart.initialize(
      200,
      100,
      TextStyle(
          color: Colors.grey[800], fontSize: 11.0, fontWeight: FontWeight.w200),
    );

    expect(lineChart.seriesMap!.length, 1);
    expect(lineChart.seriesMap![0]!.length, 10);

    expect(lineChart.minX, 0.0);
    expect(lineChart.maxX, 9.0);

    expect(lineChart.minY('W'), 0.0);
    expect(lineChart.maxY('W'), 18.0);
  });

  test('init with multiple lines', () async {
    LineChart lineChart = LineChart([
      ChartLineHelper.createLine(10, 2, Colors.cyan, 'W'),
      ChartLineHelper.createLine(15, 1, Colors.cyan, 'W')
    ], Dates(DateTime.now(), DateTime.now()));
    lineChart.initialize(
      200,
      100,
      TextStyle(
          color: Colors.grey[800], fontSize: 11.0, fontWeight: FontWeight.w200),
    );

    expect(lineChart.seriesMap!.length, 2);
    expect(lineChart.seriesMap![0]!.length, 10);
    expect(lineChart.seriesMap![1]!.length, 15);

    expect(lineChart.minX, 0.0);
    expect(lineChart.maxX, 14.0);

    expect(lineChart.minY


is the process of dividing a disk into multiple distinct sections, known as partitions.\",\"d3f:ref-count\":{\"@type\":\"http://www.w3.org/2001/XMLSchema#integer\",\"@value\":\"1\"},\"rdfs:label\":\"Disk Partitioning\"}],\"d3f:d3fend-id\":\"D3-DKF\",\"d3f:definition\":\"Disk Formatting is the process of preparing a data storage device, such as a hard drive, solid-state drive, or USB flash drive, for initial use.\",\"d3f:ref-count\":{\"@type\":\"http://www.w3.org/2001/XMLSchema#integer\",\"@value\":\"1\"},\"rdfs:label\":\"Disk Formatting\"},{\"@id\":\"d3f:DNSCacheEviction\",\"d3f:d3fend-id\":\"D3-DNSCE\",\"d3f:definition\":\"Flushing DNS to clear any IP addresses or other DNS records from the cache.\",\"d3f:ref-count\":{\"@type\":\"http://www.w3.org/2001/XMLSchema#integer\",\"@value\":\"1\"},\"rdfs:label\":\"DNS Cache Eviction\"},{\"@id\":\"d3f:RegistryKeyDeletion\",\"d3f:d3fend-id\":\"D3-RKD\",\"d3f:definition\":\"Delete a registry key.\",\"d3f:ref-count\":{\"@type\":\"http://www.w3.org/2001/XMLSchema#integer\",\"@value\":\"1\"},\"rdfs:label\":\"Registry Key Deletion\"}],\"d3f:d3fend-id\":\"D3-OE\",\"d3f:definition\":\"Terminate or remove an object from a host machine. This is the broadest class for object eviction.\",\"rdfs:label\":\"Object Eviction\"},{\"@id\":\"d3f:ProcessEviction\",\"children\":[{\"@id\":\"d3f:ProcessTermination\",\"d3f:d3fend-id\":\"D3-PT\",\"d3f:definition\":\"Terminating a running application process on a computer system.\",\"d3f:ref-count\":{\"@type\":\"http://www.w3.org/2001/XMLSchema#integer\",\"@value\":\"2\"},\"rdfs:label\":\"Process Termination\"},{\"@id\":\"d3f:ProcessSuspension\",\"d3f:d3fend-id\":\"D3-PS\",\"d3f:definition\":\"Suspending a running process on a computer system.\",\"d3f:ref-count\":{\"@type\":\"http://www.w3.org/2001/XMLSchema#integer\",\"@value\":\"1\"},\"rdfs:label\":\"Process Suspension\"},{\"@id\":\"d3f:HostShutdown\",\"children\":[{\"@id\":\"d3f:HostReboot\",\"d3f:d3fend-id\":\"D3-HR\",\"d3f:definition\":\"Initiating a host's reboot sequence to terminate all running processes.\",\"d3f:ref-count\":{\"@type\":\"http://www.w3.org/2001/XMLSchema#integer\",\"@value\":\"1\"},\"rdfs:label\":\"Host Reboot\"}],\"d3f:d3fend-id\":\"D3-HS\",\"d3f:definition\":\"Initiating a host's shutdown sequence to terminate all running processes.\",\"d3f:ref-count\":{\"@type\":\"http://www.w3.org/2001/XMLSchema#integer\",\"@value\":\"1\"},\"rdfs:label\":\"Host Shutdown\"},{\"@id\":\"d3f:SessionTermination\",\"d3f:d3fend-id\":\"D3-ST\",\"d3f:definition\":\"Forcefully end all active sessions associated with compromised accounts or devices.\",\"d3f:ref-count\":{\"@type\":\"


der-right:0;padding-right:1px'> 	18	  ORDER Granting Motion for Relief from Stay (Related Doc #  13 )  signed on  12/16/2009  . (Medina, Diane) (Entered: 12/16/2009)

12/16/2009	 	20	  BNC Certificate of Notice (related document(s) 18  Order on Motion for Relief from Stay)      (Admin.) (Entered: 12/18/2009)

12/16/2009	 	21	  BNC Certificate of Notice - PDF Document (related document(s) 18  Order on Motion for Relief from Stay)      (Admin.) (Entered: 12/18/2009)

12/17/2009	 	<TD width=30 valign=bottom align=left style


02254AD4
ov48_02254AD4: ; 0x02254AD4
	push {r3, lr}
	cmp r0, #0
	beq _02254ADE
	bl FreeToHeap
_02254ADE:
	pop {r3, pc}
	thumb_func_end ov48_02254AD4

	thumb_func_start ov48_02254AE0
ov48_02254AE0: ; 0x02254AE0
	push {lr}
	sub sp, #0xc
	add r2, r0, #0
	add r0, #8
	str r0, [sp]
	mov r0, #2
	str r0, [sp, #4]
	mov r0, #8
	str r0, [sp, #8]
	ldr r0, _02254B00 ; =ov48_02254F94
	ldr r3, [r2]
	bl ov20_022537E0
	add sp, #0xc
	pop {pc}
	nop
_02254B00: .word ov48_02254F94
	thumb_func_end ov48_02254AE0

	thumb_func_start ov48_02254B04
ov48_02254B04: ; 0x02254B04
	ldr r3, _02254B0C ; =ov20_02253794
	add r0, #8
	bx r3
	nop
_02254B0C: .word ov20_02253794
	thumb_func_end ov48_02254B04

	thumb_func_start ov48_02254B10
ov48_02254B10: ; 0x02254B10
	ldr r3, _02254B18 ; =ov20_022537B8
	add r0, #8
	bx r3
	nop
_02254B18: .word ov20_022537B8
	thumb_func_end ov48_02254B10

	thumb_func_start ov48_02254B1C
ov48_02254B1C: ; 0x02254B1C
	push {r4, lr}
	add r4, r0, #0
	bl ov20_022538A0
	add r0, #8
	add r1, r4, #0
	bl ov20_02253888
	pop {r4, pc}
	.align 2, 0
	thumb_func_end ov48_02254B1C

	thumb_func_start ov48_02254B30
ov48_02254B30: ; 0x02254B30
	push {r3, r4, r5, r6, lr}
	sub sp, #0x14
	add r5, r1, #0
	add r0, r5, #0
	bl ov20_022538A0
	add r4, r0, #0
	add r0, r5, #0
	bl ov20_022538A4
	add r6, r0, #0
	ldr r0, [r4, #4]
	ldr r2, _02254BBC ; =ov48_02254F78
	mov r1, #6
	mov r3, #0
	bl InitBgFromTemplate
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	mov r0, #1
	str r0, [sp, #8]
	mov r0, #8
	str r0, [sp, #0xc]
	ldr r2, [r4, #4]
	mov r0, #0xc
	mov r1, #0x7a
	mov r3, #6
	bl GfGfxLoader_LoadCharData
	mov r0, #0
	str r0, [sp]
	str r0, [sp, #4]
	mov r0,


(aTitle) )
            {
                        strcat(lDialogString, ",title='") ;
                        strcat(lDialogString, aTitle) ;
                        strcat(lDialogString, "'") ;
            }
                strcat( lDialogString , ");\
\nif res[1] is not None:\n\tprint res[1]\"" ) ;
        }
        else if ( tkinter3Present( ) )
        {
                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){strcpy(tinyfd_response,"python3-tkinter");return (char const *)1;}
                strcpy( lDialogString , gPython3Name ) ;
                strcat( lDialogString ,
                        " -S -c \"import tkinter;from tkinter import colorchooser;root=tkinter.Tk();root.withdraw();");
                strcat( lDialogString , "res=colorchooser.askcolor(color='" ) ;
                strcat(lDialogString, lpDefaultHexRGB ) ;
                strcat(lDialogString, "'") ;

                if ( aTitle && strlen(aTitle) )
                {
                        strcat(lDialogString, ",title='") ;
                        strcat(lDialogString, aTitle) ;
                        strcat(lDialogString, "'") ;
                }
                strcat( lDialogString , ");\
\nif res[1] is not None:\n\tprint(res[1])\"" ) ;
        }
        else
        {
                if (aTitle&&!strcmp(aTitle,"tinyfd_query")){return tinyfd_inputBox(aTitle,NULL,NULL);}
                p = tinyfd_inputBox(aTitle,
                                "Enter hex rgb color (i.e. #f5ca20)",lpDefaultHexRGB);
                if ( !p || (strlen(p) != 7) || (p[0] != '#') )
                {
                        return NULL ;
                }
                for ( i = 1 ; i < 7 ; i ++ )
                {
                        if ( ! isxdigit( p[i] ) )
                        {
                                return NULL ;
                        }
                }
                Hex2RGB(p,aoResultRGB);
                return p ;
        }

        if (tinyfd_verbose) printf( "lDialogString: %s\n" , lDialogString ) ;
        if ( ! ( lIn = popen( lDialogString , "r" ) ) )
        {
                return NULL ;
    }
        while ( fgets( lBuff , sizeof( lBuff ) , lIn ) != NULL )
        {
        }
        pclose( lIn ) ;
    if ( ! strlen( lBuff ) )
    {
        return NULL ;
    }
        /* printf( "len Buff: %lu\n" , strlen(lBuff) ) ; */
        /* printf( "lBuff0: %s\n" , lBuff ) ; */
    if ( lBuff[strlen( lBuff ) -1] == '\n' )
    {
        lBuff[strlen( lBuff ) -1] = '\0' ;
    }

        if ( lWasZenity3 )
    {
                if ( lBuff[0] == '#' )
                {
                        if ( strlen(lBuff)>7 )
                        {
                                lBuff[3]=lBuff[5];
                                lBuff[4]=lBuff[6];
                                lBuff[5]=lBuff[9];
                                lBuff[6]=lBuff[10];
                                lBuff[7]='\0';
                        }
                Hex2RGB(lBuff,aoResultRGB);
                }
                else if ( lBuff[3] == '(' ) {
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
    sscanf(lBuff,"rgb(%hhu,%hhu,%hhu", &


 defined above.
maxCharLen & usdCharLen are in UniChar length, not byte length.
If maxCharLen is 0, characters is ignored.
*/
CF_EXPORT uint32_t CFStringEncodingBytesToUnicode(uint32_t encoding, uint32_t flags, const uint8_t *bytes, CFIndex numBytes, CFIndex *usedByteLen, UniChar *characters, CFIndex maxCharLen, CFIndex *usedCharLen);

/* Fallback functions used when allowLossy
*/
typedef CFIndex (*CFStringEncodingToBytesFallbackProc)(const UniChar *characters, CFIndex numChars, uint8_t *bytes, CFIndex maxByteLen, CFIndex *usedByteLen);
typedef CFIndex (*CFStringEncodingToUnicodeFallbackProc)(const uint8_t *bytes, CFIndex numBytes, UniChar *characters, CFIndex maxCharLen, CFIndex *usedCharLen);

CF_EXPORT bool CFStringEncodingIsValidEncoding(uint32_t encoding);

/* Returns kCFStringEncodingInvalidId terminated encoding list
*/
CF_EXPORT const CFStringEncoding *CFStringEncodingListOfAvailableEncodings(void);

/* Returns required length of destination buffer for conversion.  These functions are faster than specifying 0 to maxByteLen (maxCharLen), but unnecessarily optimal length
*/
CF_EXPORT CFIndex CFStringEncodingCharLengthForBytes(uint32_t encoding, uint32_t flags, const uint8_t *bytes, CFIndex numBytes);
CF_EXPORT CFIndex CFStringEncodingByteLengthForCharacters(uint32_t encoding, uint32_t flags, const UniChar *characters, CFIndex numChars);

/* Can register functions used for lossy conversion.  Reregisters default procs if NULL
*/
CF_EXPORT void CFStringEncodingRegisterFallbackProcedures(uint32_t encoding, CFStringEncodingToBytesFallbackProc toBytes, CFStringEncodingToUnicodeFallbackProc toUnicode);

CF_EXTERN_C_END

#endif /* ! __COREFOUNDATION_CFSTRINGENCODINGCONVERTER__ */


DataBNF.
const CoordSeparator = new RegExp(/,\s*/);

export class SvgPathProperties extends SvgObjectProperties {

    private _d: SvgPathCommand[];

    get d(): SvgPathCommand[] {
        return this._d;
    }

    constructor(parent: SvgObject, contents?: string) {
        super(parent, contents);
    }

    hasProperties(): boolean {
        return super.hasProperties() || !!(this._d && this._d.length);
    }

    parse(contents: string): void {
        super.parse(contents);
        if ('d' in this._propertyMap) {
            this._d = this.parseLineCommands(this._propertyMap['d'].value);
            delete this._propertyMap['d'];
        }
    }

    private parseLineCommands(d: string): SvgPathCommand[] {
        const lineCommands: SvgPathCommand[] = [];
        let startIndex = 0;
        let cursor = 0;
        let currentCommand: SvgPathCommand;
        while (true) {
            const currentChar = d.charAt(cursor);
            if (!currentChar) {
                if (!this.isEndCommand(currentCommand)) {
                    this.parseAndPush(d, startIndex, cursor, currentCommand);
                }
                break;
            }

            if (ValidCommands.indexOf(currentChar) != -1) {
                if (currentCommand && !this.isEndCommand(currentCommand)) {
                    this.parseAndPush(d, startIndex, cursor, currentCommand);
                }
                currentCommand = {
                    command: currentChar,
                    coords: []
                };
                lineCommands.push(currentCommand);
                startIndex = cursor + 1;
            }

            else if (currentChar === '-' && cursor != startIndex) {
                this.parseAndPush(d, startIndex, cursor, currentCommand);
                startIndex = cursor;
            }

            else if (CoordSeparator.test(currentChar)) {
                this.parseAndPush(d, startIndex, cursor, currentCommand);
                startIndex = cursor + 1;
            }

            cursor++;
        }

        return lineCommands;
    }

    /** Helper function */
    private parseAndPush(d, startIndex, cursor, currentCommand): void {
        const value = parseFloat(d.substring(startIndex, cursor));
        if (isNaN(value)) {
            console.log(`Error: "${d.substring(startIndex, cursor)}" is NaN.}`);
        }
        else {
            currentCommand.coords.push(value);
        }
    }

    /** Helper function */
    private isEndCommand(command: SvgPathCommand): boolean {
        return command.command === 'z' || command.command === 'Z';
    }

    toString(): string {
        let result = `${super.toString()} d="`;
        this._d.forEach(command => {
            result += command.command;
            for (let i = 0; i < command.coords.length; i++) {
                const coord = command.coords[i];
                if (i > 0 && coord >= 0) {
                    result += ',';
                }
                result += coord;
            }
        })
        return result + `"`;
    }

}const repeat = {
  until<T>(
    fn: () => T | Promise<T>,
    until: () => boolean | Promise<boolean>
  ): Promise<void> {
    return Promise.resolve()
      .then(fn)
      .then(until)
      .then(predicate =>
        predicate ? Promise.resolve() : repeat.until(fn, until)
      );
  },
  while<T>(
    fn: () => T | Promise<T>,
    wwhil


eg_t			bld_bkcolor;		//0x88
	__bld_output_size_reg_t		bld_output_size;	//0x8c
	__bld_ctl_reg_t				bld_mode[4];		//0x90~0x9c
	unsigned int				r1[4];				//0xa0~0xac
	__bld_colorkey_ctl_reg_t	bld_ck_ctl;			//0xb0
	__bld_colorkey_cfg_reg_t	bld_ck_cfg;			//0xb4
	unsigned int				r2[2];				//0xb8~0xbc
	__bld_colorkey_max_reg_t	bld_ck_max[4];		//0xc0~0xcc
	unsigned int				r3[4];				//0xd0~0xdc
	__bld_colorkey_min_reg_t	bld_ck_min[4];		//0xe0~0xec
	unsigned int				r4[3];				//0xf0~0xf8
	__bld_out_color_ctl_reg_t	bld_out_ctl;		//0xfc
}__bld_reg_t;

typedef struct
{
	__glb_reg_t					*glb_ctl;		//0x00000
	__bld_reg_t					*bld_ctl;		//0x01000
	__vi_ovl_reg_t			*vi_ovl[VI_CHN_NUM];		//0x02000
	__ui_ovl_reg_t			*ui_ovl[UI_CHN_NUM];		//0x03000~0x05000
}__rtmx_reg_t;

#endif


 - 2023 jothepro

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

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

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

*/

@media screen and (min-width: 768px) {

    #MSearchBox {
        width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - var(--searchbar-height) - 1px);
    }

    #MSearchField {
        width: calc(var(--side-nav-fixed-width) - calc(2 * var(--spacing-medium)) - 66px - var(--searchbar-height));
    }
}
/*
This file is part of OmniDB.
OmniDB is open-source software, distributed "AS IS" under the MIT license in the hope that it will be useful.

The MIT License (MIT)

Portions Copyright (c) 2015-2020, The OmniDB Team
Portions Copyright (c) 2017-2020, 2ndQuadrant Limited

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

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

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

.node-all {
  color: #22477


r.Sym.WriteInt(p.ctxt, nameAddr.Offset, int(sz), valueAddr.Offset)
		default:
			p.errorf("bad int size for DATA argument: %d", sz)
		}
	case obj.TYPE_FCONST:
		switch sz {
		case 4:
			nameAddr.Sym.WriteFloat32(p.ctxt, nameAddr.Offset, float32(valueAddr.Val.(float64)))
		case 8:
			nameAddr.Sym.WriteFloat64(p.ctxt, nameAddr.Offset, valueAddr.Val.(float64))
		default:
			p.errorf("bad float size for DATA argument: %d", sz)
		}
	case obj.TYPE_SCONST:
		nameAddr.Sym.WriteString(p.ctxt, nameAddr.Offset, int(sz), valueAddr.Val.(string))
	case obj.TYPE_ADDR:
		if sz == p.arch.PtrSize {
			nameAddr.Sym.WriteAddr(p.ctxt, nameAddr.Offset, int(sz), valueAddr.Sym, valueAddr.Offset)
		} else {
			p.errorf("bad addr size for DATA argument: %d", sz)
		}
	}
}

// asmGlobl assembles a GLOBL pseudo-op.
// GLOBL shifts<>(SB),8,$256
// GLOBL shifts<>(SB),$256
func (p *Parser) asmGlobl(operands [][]lex.Token) {
	if len(operands) != 2 && len(operands) != 3 {
		p.errorf("expect two or three operands for GLOBL")
		return
	}

	// Operand 0 has the general form foo<>+0x04(SB).
	nameAddr := p.address(operands[0])
	if !p.validSymbol("GLOBL", &nameAddr, false) {
		return
	}
	next := 1

	// Next operand is the optional flag, a literal integer.
	var flag = int64(0)
	if len(operands) == 3 {
		flag = p.evalInteger("GLOBL", operands[1])
		next++
	}

	// Final operand is an immediate constant.
	addr := p.address(operands[next])
	if !p.validImmediate("GLOBL", &addr) {
		return
	}

	// log.Printf("GLOBL %s %d, $%d", name, flag, size)
	p.ctxt.GloblPos(nameAddr.Sym, addr.Offset, int(flag), p.pos())
}

// asmPCData assembles a PCDATA pseudo-op.
// PCDATA $2, $705
func (p *Parser) asmPCData(operands [][]lex.Token) {
	if len(operands) != 2 {
		p.errorf("expect two operands for PCDATA")
		return
	}

	// Operand 0 must be an immediate constant.
	key := p.address(operands[0])
	if !p.validImmediate("PCDATA", &key) {
		return
	}

	// Operand 1 must be an immediate constant.
	value := p.address(operands[1])
	if !p.validImmediate("PCDATA", &value) {
		return
	}

	// log.Printf("PCDATA $%d, $%d", key.Offset, value.Offset)
	prog := &obj.Prog{
		Ctxt: p.ctxt,
		As:   obj.APCDATA,
		Pos:  p.pos(),
		From: key,
		To:   value,
	}
	p.append(prog, "", true)
}

// asmPCAlign assembles a PCALIGN pseudo-op.
// PCALIGN $16
func (p *Parser) asmPCAlign(operands [][]lex.Token) {
	if len(operands) != 1 {
		p.errorf("expect one operand for PCALIGN")
		return
	}

	// Operand 0 must be an immediate constant.
	key := p.address(operands[0])
	if !p.validImmediate("PCALIGN", &key)


    get => string.IsNullOrEmpty(Parent) ? null : RuntimeName.Parse(Parent, allowUnparsed: true);
            set => Parent = value?.ToString() ?? "";
        }
    }

    public partial class DeleteRuntimeRequest
    {
        /// <summary>
        /// <see cref="gcnv::RuntimeName"/>-typed view over the <see cref="Name"/> resource name property.
        /// </summary>
        public gcnv::RuntimeName RuntimeName
        {
            get => string.IsNullOrEmpty(Name) ? null : gcnv::RuntimeName.Parse(Name, allowUnparsed: true);
            set => Name = value?.ToString() ?? "";
        }
    }

    public partial class ReportRuntimeEventRequest
    {
        /// <summary>
        /// <see cref="gcnv::RuntimeName"/>-typed view over the <see cref="Name"/> resource name property.
        /// </summary>
        public gcnv::RuntimeName RuntimeName
        {
            get => string.IsNullOrEmpty(Name) ? null : gcnv::RuntimeName.Parse(Name, allowUnparsed: true);
            set => Name = value?.ToString() ?? "";
        }
    }

    public partial class RefreshRuntimeTokenInternalRequest
    {
        /// <summary>
        /// <see cref="gcnv::RuntimeName"/>-typed view over the <see cref="Name"/> resource name property.
        /// </summary>
        public gcnv::RuntimeName RuntimeName
        {
            get => string.IsNullOrEmpty(Name) ? null : gcnv::RuntimeName.Parse(Name, allowUnparsed: true);
            set => Name = value?.ToString() ?? "";
        }
    }

    public partial class DiagnoseRuntimeRequest
    {
        /// <summary>
        /// <see cref="gcnv::RuntimeName"/>-typed view over the <see cref="Name"/> resource name property.
        /// </summary>
        public gcnv::RuntimeName RuntimeName
        {
            get => string.IsNullOrEmpty(Name) ? null : gcnv::RuntimeName.Parse(Name, allowUnparsed: true);
            set => Name = value?.ToString() ?? "";
        }
    }
}


   = -1,
			.max_height    = -1,
		},
		{
			.vfe_out_type  =
				CAM_VFE_BUS_VER2_VFE_OUT_STATS_BF,
			.max_width     = -1,
			.max_height    = -1,
		},
		{
			.vfe_out_type  =
				CAM_VFE_BUS_VER2_VFE_OUT_STATS_AWB_BG,
			.max_width     = -1,
			.max_height    = -1,
		},
		{
			.vfe_out_type  =
				CAM_VFE_BUS_VER2_VFE_OUT_STATS_BHIST,
			.max_width     = -1,
			.max_height    = -1,
		},
		{
			.vfe_out_type  =
				CAM_VFE_BUS_VER2_VFE_OUT_STATS_RS,
			.max_width     = -1,
			.max_height    = -1,
		},
		{
			.vfe_out_type  =
				CAM_VFE_BUS_VER2_VFE_OUT_STATS_CS,
			.max_width     = -1,
			.max_height    = -1,
		},
		{
			.vfe_out_type  =
				CAM_VFE_BUS_VER2_VFE_OUT_STATS_IHIST,
			.max_width     = -1,
			.max_height    = -1,
		},
	},
	.support_consumed_addr = false,
};

struct cam_vfe_hw_info cam_vfe170_hw_info = {
	.irq_reg_info                  = &vfe170_top_irq_reg_info,

	.bus_version                   = CAM_VFE_BUS_VER_2_0,
	.bus_hw_info                   = &vfe170_bus_hw_info,

	.top_version                   = CAM_VFE_TOP_VER_2_0,
	.top_hw_info                   = &vfe170_top_hw_info,

	.camif_version                 = CAM_VFE_CAMIF_VER_2_0,
	.camif_reg                     = &vfe170_camif_reg,

	.camif_lite_version            = 0,
	.camif_reg                     = NULL,

};

#endif /* _CAM_VFE170_H_ */


要为两句话。[文章链接] |
| 对比 | 比较一下两款手机的优缺点。 |
| 开放性生成 | 如果你可以拥有超能力，你会选择什么样的超能力？ |
| 判断 | 对于这个观点，你是否赞同？[观点内容] |
| 解释 | 请解释什么是人工智能。 |
| 建议 | 你有什么建议可以帮助我提高英语口语？ |
| 定义 | 定义什么是社交媒体。 |
|天气预报|请描述今天的天气情况。|
|文章写作|请提供一篇400字左右的文章，主题是如何减轻工作压力。|
|电影推荐|请推荐一部适合全家观看的电影。|
|健身计划|请设计一个适合初学者的4周健身计划。|
|购物指南|请列出五种适合送给女性朋友的生日礼物。|
|旅游攻略|请提供一份去巴厘岛的旅游攻略，包括必去景点和美食推荐。|
|烹饪技巧|请分享一道简单易学但口感绝佳的菜谱。|
|英语口语|请列举5个日常场景，针对每个场景提供一个英语问候语及其回答。|
|科技前沿|请你介绍一下最近比较火的人工智能应用领域。|
|小说创作|请根据以下素材编写一个开头：在深夜，我听到了一个陌生人的敲门声，他手持一把锤子。|
| 分类 | 这个电影是哪个类型的？ |
| 润色 | 可以帮我修改一下这篇文章吗？ |
| 比较 | 这款手机和那款手机有什么不同？ |
| 搜索 | 你能帮我找一些与厨艺有关的博客吗？ |
| 开放生成 | 请写一首描述秋天的诗歌。 |
| 翻译 | 这句话用英语怎么说？ |
| 推荐 | 有什么好看的电视剧可以推荐吗？ |
| 描述 | 你觉得这幅画有什么特别之处？ |
| 修改 | 我们公司网站首页需要重新设计，你能给些建议吗？ |
| 总结 | 能不能简要概括一下你刚才讲的内容？ |
|电影推荐|有什么近期上映的优秀文艺片可以推荐吗？|
|科技趋势|未来5年内，最有可能成为主流的科技趋势是什么？|
|旅游攻略|请问去巴厘岛旅游有哪些值得一去的景点和美食？|
|健康养生|如何科学地进行减肥计划并且不会对身体造成损伤？|
|文化历史|中国古代四大发明是什么？具体发明内容是什么？|
|职场建议|在面试过程中应该如何向企业展示自己的实力和价值？|
|财经新闻|最近的股市行情如何？对于投资者来说应�


g': 'consent2'})
      expect(sync).to.have.length(1)
      expect(sync[0]).to.have.property('type', 'iframe')
      expect(sync[0]).to.have.property('url').match(/https:\/\/cm\.mgid\.com\/i\.html\?cbuster=\d+&gdpr_consent=consent1&gdpr=1&us_privacy=consent2/)
    });
    it('should return img (pixels) objects with gdpr + usp', function () {
      const response = [{body: {ext: {cm: ['http://cm.mgid.com/i.gif?cdsp=1111', 'http://cm.mgid.com/i.gif']}}}]
      const sync = spec.getUserSyncs({iframeEnabled: false, pixelEnabled: true}, response, {consentString: 'consent1', gdprApplies: true}, {'consentString': 'consent2'})
      expect(sync).to.have.length(2)
      expect(sync[0]).to.have.property('type', 'image')
      expect(sync[0]).to.have.property('url').match(/http:\/\/cm\.mgid\.com\/i\.gif\?cdsp=1111&cbuster=\d+&gdpr_consent=consent1&gdpr=1&us_privacy=consent2/)
      expect(sync[1]).to.have.property('type', 'image')
      expect(sync[1]).to.have.property('url').match(/http:\/\/cm\.mgid\.com\/i\.gif\?cbuster=\d+&gdpr_consent=consent1&gdpr=1&us_privacy=consent2/)
    });
  });
});
import {expect} from 'chai';
import {spec} from 'modules/talkadsBidAdapter.js';
import {newBidder} from 'src/adapters/bidderFactory.js';
import {config} from '../../../src/config.js';
import {server} from '../../mocks/xhr.js';

describe('TalkAds adapter', function () {
  const commonBidderRequest = {
    refererInfo: {
      referer: 'https://example.com/'
    },
    timeout: 3000,
  }
  const commonBidRequest = {
    bidder: 'talkads',
    params: {
      tag_id: 999999,
      bidder_url: 'https://test.natexo-programmatic.com/tad/tag/prebid',
    },
    bidId: '1a2b3c4d56e7f0',
    auctionId: '12345678-1234-1a2b-3c4d-1a2b3c4d56e7',
    transactionId: '4f68b713-04ba-4d7f-8df9-643bcdab5efb',
  };
  const nativeBidRequestParams = {
    nativeParams: {},
  };
  const bannerBidRequestParams = {
    sizes: [[300, 250], [300, 600]],
  };

  /**
   * isBidRequestValid
   */
  describe('isBidRequestValid1', function() {
    it('should fail when config is invalid', function () {
      const bidRequest = {
        ...commonBidRequest,
        ...bannerBidRequestParams,
      };
      bidRequest.params = Object.assign({}, bidRequest.params);
      delete bidRequest.params;
      expect(spec.isBidRequestValid(bidRequest)).to.equal(false);
    });
  }); // isBidRequestValid1
  describe('isBidRequestValid2', function() {
    it('should fail when config is invalid', function () {
      const bidRequest = {
        ...commonBidRequest,
        ...bannerBidRequestParams,
      };
      bidRequest.params = Object.assign({}, bidRequest.params);
      delete bidRequest.params.bidder_url;
      expect(spec.isBidRequestValid(bidRequest)).to.equal(false);
    });
  }); // isBidRequestValid2
  describe('isBidRequestValid3', function() {
    it('should fail when config is invalid


';
import 'package:flutter/material.dart';
import 'package:intl/intl.dart';

extension StringExtension on String {
  String get formatNumber {
    if (isEmpty || length < 3) return this;
    final formatter = NumberFormat('#,###');
    final value = this;
    final number = value.replaceAll(',', '');
    try {
      double.parse(number);
    } catch (e) {
      return this;
    }

    final splits = number.split('.');
    if (splits.length == 2) {
      final double intPart =
          double.parse(splits.first.isEmpty ? '0' : splits.first);
      return '''${formatter.format(intPart)}${splits.last.isEmpty ? '' : '.${splits.last}'}''';
    } else if (splits.length == 1) {
      final double intPart =
          double.parse(splits.first.isEmpty ? '0' : splits.first);
      return formatter.format(intPart);
    } else {
      return this;
    }
  }

  bool isValidEmail() {
    return RegExp(
      r'^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$',
    ).hasMatch(this);
  }

  Characters get characters => Characters(this);

  String get char2Bytes {
    final List<int> encode = utf8.encode(this);
    final String bytes = hex.encode(encode);
    return bytes;
  }

  bool get isEVM {
    if (this == 'ETH' ||
        this == 'MATIC' ||
        this == 'FTM' ||
        this == 'BNB' ||
        this == 'XTZ') {
      // Etherlink - XTZ
      return true;
    }
    return false;
  }

  String decimalNumber(int n) {
    int number = 1;
    for (int i = 0; i < n; i++) {
      if (i > toString().split('.').toList().last.length) {
        break;
      }
      number *= 10;
    }

    final twoDecimalNumber =
        (Decimal.parse(this) * Decimal.parse(number.toString())).floor() /
            Decimal.parse(number.toString());
    return twoDecimalNumber.toDecimal().toString();
  }

  BigInt get convertTo1e18 {
    var value = BigInt.parse(this);

    const int targetLength = 18;

    final currentLength = value.toString().length;

    final zerosToAdd = targetLength - currentLength;

    if (zerosToAdd > 0) {
      final factor = BigInt.from(pow(10, zerosToAdd));
      value = value * factor;
    }

    return value;
  }
}
import 'package:altme/app/app.dart';
import 'package:altme/dashboard/dashboard.dart';
import 'package:altme/flavor/flavor.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';

class WalletLogo extends StatelessWidget {
  const WalletLogo({
    super.key,
    this.height,
    this.width,
    this.showPoweredBy = false,
  });

  final double? height;
  final double? width;
  final bool showPoweredBy;

  @override
  Widget build(BuildContext context) {
    return BlocBuilder<ProfileCubit, ProfileState>(
      builder: (context, state) {
        final FlavorCubit flavorCubit = context.read<FlavorCubit>();
        String image = '';
        final profileModel = state.model;

        switch (profileModel.profileType) {
          case ProfileType.custom:
          case ProfileType.defaultOne:
          case ProfileType.diipv3:
          case ProfileType.diipv4:
            image = flavorCubit.state == FlavorMode.development
                ? ImageStrings.appLogoDev


ordinal step within the viewport.
  ///
  /// Start is defined by the leftmost domain for horizontal axes, and
  /// topmost domain for vertical axes.
  ///
  /// Null if no domains exist.
  String? get viewportStartingDomain;
}
// Copyright 2018 the Charts project authors. Please see the AUTHORS file
// for details.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

import 'axis_tick.dart' show AxisTicks;
import 'range_tick.dart' show RangeTick;

class RangeAxisTicks<D> extends AxisTicks<D> {
  /// The value that this range tick starting point represents
  final D rangeStartValue;

  /// Position of the range tick starting point.
  double rangeStartLocationPx;

  /// The value that this range tick ending point represents.
  final D rangeEndValue;

  /// Position of the range tick ending point.
  double rangeEndLocationPx;

  RangeAxisTicks(RangeTick<D> tick)
      : rangeStartValue = tick.rangeStartValue,
        rangeStartLocationPx = tick.rangeStartLocationPx,
        rangeEndValue = tick.rangeEndValue,
        rangeEndLocationPx = tick.rangeEndLocationPx,
        super(tick);
}
// Copyright 2018 the Charts project authors. Please see the AUTHORS file
// for details.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

import '../../../../common/date_time_factory.dart' show DateTimeFactory;
import 'base_time_stepper.dart' show BaseTimeStepper;

/// Hour stepper.
class HourTimeStepper extends BaseTimeStepper {
  static const _defaultIncrements = [1, 2, 3, 4, 6, 12, 24];
  static const _hoursInDay = 24;
  static const _millisecondsInHour = 3600 * 1000;

  final List<int> _allowedTickIncrements;

  HourTimeStepper._internal(
      DateTimeFactory dateTimeFactory, List<int> increments)
      : _allowedTickIncrements = increments,
        super(dateTimeFactory);

  factory HourTimeStepper(DateTimeFactory dateTimeFactory,
      {List<int>? allowedTickIncrements}) {
    // Set the default increments if null.
    allowedTickIncrements ??= _defaultIncrements;

    assert(allowedTickIncrements
        .every((increment) => increment >= 1 && increment <= 24));

    return HourTimeStepper._internal(dateTimeFactory, allowedTickIncrements);
  }

  @override
  int get typicalStepSizeMs => _millisecondsInHour;

  @override
  List<int> get allowedTickIncrements => _allowedTickIncrements;

  /// Get the step time before or on the given [time] from [tickIncrement].
  ///
  /// Guarantee a step at the start of the next day.
  /// Ex. Time is Aug 20 10 AM, increment is 1 hour. Returns 10 AM.
  /// Ex. Time is Aug 20 6 AM, increment is 4 hours. Returns 4 AM.
  @override
  DateTime getStepTimeBeforeInclusive(DateTime time, int tickIncrement) {
    final nextDay = dateTimeFactory
        .createDateTime(time.year, time.month, time.


225 8.387c-.078-.299-.199-.562-.36-.786s-.365-.401-.609-.53-.534-.193-.866-.193c-.198 0-.38.024-.547.073a1.76 1.76 0 0 0-.453.205 1.724 1.724 0 0 0-.365.318l-.179.258V4.578h-.893V12h.893v-.575l.126.175c.087.102.189.19.304.269.117.078.249.14.398.186.149.046.314.068.498.068.353 0 .666-.071.937-.212.272-.143.499-.338.682-.586.183-.25.321-.543.414-.879.093-.338.14-.703.14-1.097a3.756 3.756 0 0 0-.12-.962zM9.746 7.78c.151.071.282.176.39.314.109.14.194.313.255.517.051.174.082.371.089.587l-.007.125c0 .327-.033.62-.1.869a1.886 1.886 0 0 1-.278.614c-.117.162-.26.285-.421.366-.322.162-.76.166-1.069.015a1.264 1.264 0 0 1-.393-.296 1.273 1.273 0 0 1-.218-.367s-.179-.447-.179-.947c0-.5.179-1.002.179-1.002.062-.177.136-.318.224-.43.114-.143.256-.259.424-.345.168-.086.365-.129.587-.129.19 0 .364.037.517.109zM.987 2H15v1.023H.987zM.987 12.968H15v1.023H.987zM1.991 12.031L2.719 10h2.219l.778 2.031h1.082L4.313 4.873h-.941L.931 11.959l-.025.072h1.085zm1.827-5.609h.022l.914 2.753H2.913l.905-2.753z'/%3E%3C/g%3E%3C/svg%3E") 50% no-repeat}.vs .monaco-findInput>.controls>.custom-checkbox.regex{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath fill='%23F6F6F6' d='M13.64 7.396l-1.471-4.498-1.463.863L11.087 2h-4.53l.379 1.762-1.463-.864L4 7.396l1.682.158-1.169 1.007.5.439H2v5h5v-3.253l.978.859.842-1.881.841 1.877 3.483-3.04-1.176-1.008z'/%3E%3Cg fill='%23424242'%3E%3Cpath d='M12.301 6.518l-2.772.262 2.086 1.788-1.594 1.392L8.82 7.278 7.619 9.96 6.036 8.568 8.111 6.78 5.34 6.518l.696-2.126 2.358 1.392L7.795 3h2.053l-.602 2.783 2.359-1.392.696 2.127zM3 10h3v3H3z'/%3E%3C/g%3E%3C/svg%3E") 50% no-repeat}.vs .monaco-findInput.disabled{background-color:#e1e1e1}.vs-dark .monaco-findInput.disabled{background-color:#333}.vs-dark .monaco-findInput>.controls>.matchCount{background:#555}.hc-black .monaco-findInput>.controls>.custom-checkbox.case-sensitive,.vs-dark .monaco-findInput>.controls>.custom-checkb


/*
 * volume_id - reads filesystem label and uuid
 *
 * Copyright (C) 2004 Kay Sievers <kay.sievers@vrfy.org>
 *
 *	This library 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.
 *
 *	This library 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 */

#include "volume_id_internal.h"

struct cramfs_super {
	uint32_t	magic;
	uint32_t	size;
	uint32_t	flags;
	uint32_t	future;
	uint8_t		signature[16];
	struct cramfs_info {
		uint32_t	crc;
		uint32_t	edition;
		uint32_t	blocks;
		uint32_t	files;
	} PACKED info;
	uint8_t		name[16];
} PACKED;

int FAST_FUNC volume_id_probe_cramfs(struct volume_id *id /*,uint64_t off*/)
{
#define off ((uint64_t)0)
	struct cramfs_super *cs;

	dbg("probing at offset 0x%llx", (unsigned long long) off);

	cs = volume_id_get_buffer(id, off, 0x200);
	if (cs == NULL)
		return -1;

	if (cs->magic == cpu_to_be32(0x453dcd28)) {
//		volume_id_set_label_raw(id, cs->name, 16);
		volume_id_set_label_string(id, cs->name, 16);

//		volume_id_set_usage(id, VOLUME_ID_FILESYSTEM);
//		id->type = "cramfs";
		return 0;
	}

	return -1;
}


etti.core.models.Size

/**
 * Configuration how to confetti should be rendered
 * @property angle the direction the confetti will shoot
 * @property spread how wide the confetti will shoot in degrees. Use 1 to shoot in a straight line
 * and 360 to form a circle
 * @property speed The start speed of the confetti at the time of creation. Also set [maxSpeed] to
 * apply a random speed between speed and maxSpeed.
 * @property maxSpeed when [maxSpeed] is set a random speed between [speed] and [maxSpeed] will be
 * chosen. Using randomness creates a more natural and realistic look to the confetti when animating.
 * @property damping The rate at which the speed will decrease right after shooting the confetti
 * @property size The size of the confetti. Use: Size.SMALL, MEDIUM or LARGE for default sizes or
 * create your custom size using a new instance of [Size].
 * @property colors List of colors that will be randomly picked from
 * @property shapes Set the shape of the confetti. Set multiple shapes and it will be randomly
 * assigned upon creation of the confetti. See [Shape] for possible shapes and custom drawables.
 * @property timeToLive the amount of time in milliseconds before a particle will stop rendering
 * or fade out if [fadeOutEnabled] is set to true.
 * @property fadeOutEnabled If true and a confetti disappears because it ran out of time (set with timeToLive)
 * it will slowly fade out. If set to falls it will instantly disappear from the screen.
 * @property position the point where the confetti will spawn relative to the canvas. Use absolute
 * coordinates with [Position.Absolute] or relative coordinates between 0.0 and 1.0 using [Position.Relative].
 * Spawn confetti on random positions using [Position.Between].
 * @property delay the amount of milliseconds to wait before the rendering of the confetti starts
 * @property rotation enable the 3D rotation of a Confetti. See [Rotation] class for the configuration
 * options. Easily enable or disable it using [Rotation].enabled() or [Rotation].disabled() and
 * control the speed of rotations.
 * @property emitter instructions how many and often a confetti particle should spawn.
 * Use Emitter(duration, timeUnit).max(amount) or Emitter(duration, timeUnit).perSecond(amount) to
 * configure the Emitter.
 */
data class Party(
    val angle: Int = 0,
    val spread: Int = 360,
    val speed: Float = 30f,
    val maxSpeed: Float = 0f,
    val damping: Float = 0.9f,
    val size: List<Size> = listOf(Size.SMALL, Size.MEDIUM, Size.LARGE),
    val colors: List<Int> = listOf(0xfce18a, 0xff726d, 0xf4306d, 0xb48def),
    val shapes: List<Shape> = listOf(Shape.Square, Shape.Circle),
    val timeToLive: Long = 2000,
    val fadeOutEnabled: Boolean = true,
    val position: Position = Position.Relative(0.5, 0.5),
    val delay: Int = 0,
    val rotation: Rotation = Rotation(),
    val emitter: EmitterConfig,
)

/**
 * Helper class for easily setting an angle based on easy understandable constants
 * [TOP] 270 degrees
 * [RIGHT] 0 degrees
 * [BOTTOM] 90 degrees
 * [LEFT] 180 degrees
 */
class Angle {
    companion object {
        const val TOP: Int = 270
        const val RIGHT: Int = 0
        const val BOTTOM: Int = 90
        const val LEFT: Int = 180
    }
}

/**
 * Helper class for for easily configuring [Spread] when creating a [Party]
 * These are presets but any custom amount will work within 0-360 degrees
 */
class Spread {
    companion object {
        const val SMALL: Int = 30
        const val WID


#browser.linux:not(.is-settingspage):not(.tabs-top):not(.tabs-bottom) .window-buttongroup{
    right: calc(var(--window-border) / var(--uiZoomLevel));
    top: calc(1px / var(--uiZoomLevel));
}

#browser.linux:not(.is-settingspage):not(.tabs-top):not(.tabs-bottom) .window-buttongroup button{
    width:calc((var(--linux-header) - 2px) * 1.32 / var(--uiZoomLevel));
    height:calc((var(--linux-header) - 2px) / var(--uiZoomLevel));
    padding:0px;
    display:flex;
    align-items:center;
    justify-content:center;
}

#browser.linux:not(.is-settingspage):not(.tabs-top):not(.tabs-bottom) .window-buttongroup button svg{
    scale: calc(var(--window-button-scale) / var(--uiZoomLevel));
    opacity:var(--window-button-opacity);
}

#browser.linux:not(.is-settingspage):not(.tabs-top):not(.tabs-bottom) .window-buttongroup button svg:hover{
    opacity:1;
}

/*addressbar_legacy*/
#browser.win:not(.tabs-top):not(.tabs-bottom).address-top .toolbar:has(.window-buttongroup.on-mainbar),
#browser.linux:not(.tabs-top):not(.tabs-bottom).address-top .toolbar:has(.window-buttongroup.on-mainbar){
    min-height:calc((var(--addressbar-height)) / var(--uiZoomLevel));
}

#browser:not(.tabs-top):not(.tabs-bottom).disable-titlebar#browser.win .window-buttongroup{
     height:var(--addressbar-height);
}

/*mainbar*/
.color-behind-tabs-off.address-top#browser:not(.tabs-top):not(.tabs-bottom) .mainbar,
.color-behind-tabs-on.address-top#browser:not(.tabs-top):not(.tabs-bottom) .mainbar{
    border:none;
    background: transparent;
}

.color-behind-tabs-off.address-top#browser:not(.tabs-top):not(.tabs-bottom) .mainbar{
    /* background:var(--colorTabBar);
    color: var(--colorFg); */
    -webkit-app-region: drag;
}

#browser:not(.tabs-top):not(.tabs-bottom).address-top .UrlBar-SearchField,
#browser:not(.tabs-top):not(.tabs-bottom).address-top .UrlBar-AddressField,
#browser:not(.tabs-top):not(.tabs-bottom).address-top .SearchField {
    background-color: var(--colorFgAlpha);
}

#browser:not(.tabs-top):not(.tabs-bottom).dim-blurred:not(.hasfocus) .UrlBar-AddressField,
#browser:not(.tabs-top):not(.tabs-bottom).dim-blurred:not(.hasfocus) .SearchField,
#browser:not(.tabs-top):not(.tabs-bottom).color-behind-tabs-off .SearchField,
#browser:not(.tabs-top):not(.tabs-bottom).color-behind-tabs-off .UrlBar-AddressField {
    border: 1px solid var(--colorFgAlpha);
}

.UrlFragment-Wrapper--ShouldHighlight{
    --HighlightColor: var(--colorFgIntense);
    --LowlightColor: var(--colorFgFadedMore);
}

.button-toolbar > button{
    border-radius:var(--radiusHalf);
}

#browser:not(.tabs-top):not(.tabs-bottom) .ExtensionIcon--Hidden{
    background-color:transparent;
}

.disable-titlebar .toolbar-mainbar .toolbar-extensions > .button-toolbar > button,
.disable-titlebar .toolbar-mainbar .page-zoom-controls > .button-toolbar > button,
.disable-titlebar .toolbar-mainbar > .button-toolbar > button,
.disable


loadResolution.Methods.literals.zeroliteralresolution052.zeroliteralresolution052
{
    // <Title> Tests overload resolution when a zero literal is passed to the binder</Title>
    // <Description>
    // </Description>
    // <RelatedBugs></RelatedBugs>
    // <Expects Status=success></Expects>
    //

    public class Test
    {
        public static int Status;
        public void Method(ulong b)
        {
            Test.Status = 1;
        }

        public void Method(decimal b)
        {
            Test.Status = 2;
        }

        [Fact]
        public static void DynamicCSharpRunTest()
        {
            Assert.Equal(0, MainMethod());
        }

        public static int MainMethod()
        {
            dynamic d = new Test();
            d.Method(0);
            if (Test.Status == 1)
                return 0;
            return 1;
        }
    } //
}

namespace ManagedTests.DynamicCSharp.Conformance.dynamic.overloadResolution.Methods.literals.zeroliteralresolution053.zeroliteralresolution053
{
    // <Title> Tests overload resolution when a zero literal is passed to the binder</Title>
    // <Description>
    // </Description>
    // <RelatedBugs></RelatedBugs>
    // <Expects Status=success></Expects>
    //

    public class Test
    {
        public static int Status;
        public void Method(float b)
        {
            Test.Status = 1;


#ifndef __GPIO_H
#define __GPIO_H
#include <stdio.h>
#include "stm32l072xx.h"
/**
 * changes the mode of the GPIO Pin for either reception or
 * transmission of data, or either analog.
 */
typedef enum : __uint8_t {
    InputMode       = 0x0,
    OutputMode      = 0x1,
    AlternateMode   = 0x2,
    AnalogMode      = 0x3,

}GPIOPinModes;

typedef enum : __uint8_t {
    PushPull        = 0x0,
    OpenDrain       = 0x1,

}GPIOPinType;

/**
 * GPIO Output speed.
 */
typedef enum : __uint8_t {
    LowSpeed        = 0x0,
    MediumSpeed     = 0x1,
    HighSpeed       = 0x2,
    VeryHighSpeed   = 0x3,

}GPIOPinOutputSpeed;

/**
 *
 * GPIO Pullup-PullDown, GPIO can be pulled to a voltage high, low or none.
 *
 */
typedef enum : __uint8_t {
    NoPull          = 0x0,
    PullUp          = 0x1,
    PullDown        = 0x2,

}GPIOPinPUPR;
/**
 * GPIO Alternate functions, GPIO functionality can be changed, respectfully to
 * the datasheet
 */
typedef enum : __uint8_t {
    AF0             = 0x0,
    AF1             = 0x1,
    AF2             = 0x2,
    AF3             = 0x3,
    AF4             = 0x4,
    AF5             = 0x5,
    AF6             = 0x6,
    AF7             = 0x7,

}GPIOAlternateFunction;

typedef struct {
    GPIOPinModes            Mode;
    GPIOPinOutputSpeed      Speed;
    GPIOPinPUPR             Pupr;
    GPIOPinType             Type;
    GPIOAlternateFunction   AF;
    typedef GPIO
}GPIO_Object;

#endif


			case 2:
					t.Placeholder = "Username"
					t.CharLimit = 50

				case 3:
					t.Placeholder = "Password"
					t.EchoMode = textinput.EchoPassword
					t.EchoCharacter = '•'

				case 4:
					t.Placeholder = "URL"
					t.CharLimit = 50

				case 5:
					t.Placeholder = "Hosting Username"
					t.CharLimit = 50

				case 6:
					t.Placeholder = "Hosting Password"
					t.EchoMode = textinput.EchoPassword
					t.EchoCharacter = '•'

				case 7:
					t.Placeholder = "Admin Username"
					t.CharLimit = 50

				case 8:
					t.Placeholder = "Admin Password"
					t.EchoMode = textinput.EchoPassword
					t.EchoCharacter = '•'

				case 9:
					t.Placeholder = "Extra"
					t.CharLimit = 50
			}
		}

		m.inputs[i] = t
	}

	return m
}

func (m model) Init() tea.Cmd {
	return textinput.Blink
}

func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
	cmd := m.updateInputs(msg)

	switch msg := msg.(type) {
		case tea.KeyMsg:
			switch msg.Type {
				case tea.KeyCtrlC:
					return m, tea.Quit

				default:
					if m.state == shared.Loading {
						return m, nil
					}

					switch msg.String() {
					case "tab", "shift+tab", "enter", "up", "down":
						s := msg.String()

						if s == "enter" {
							if m.index == okButton {
								m.state = shared.Loading
								m.message = ""

								return m, tea.Batch(
									smi(m),
									spinner.Tick,
								)
							} else {
								return m, tea.Quit
							}
						}

						if s == "up" || s == "shift+tab" {
							m.focusIndex--
						} else {
							m.focusIndex++
						}

						if m.focusIndex > len(m.inputs) {
							m.focusIndex = 0
						} else if m.focusIndex < 0 {
							m.focusIndex = len(m.inputs)
						}

						cmds := make([]tea.Cmd, len(m.inputs))

						for i := 0; i <= len(m.inputs)-1; i++ {
							if i == m.focusIndex {
								cmds[i] = m.inputs[i].Focus()
								continue
							}

							m.inputs[i].Blur()
						}

						return m, tea.Batch(cmds...)
					}

					return m, nil
			}

		case shared.SuccessMsg:
			m.state = shared.Ready
			m.message = m.styles.Success.Render("🔑 Password created successfully!")

			return m, nil

		case shared.OtherMsg:
			m.state = shared.Ready
			head := m.styles.Error.Render("Your Authentication is Expired.")
			body := m.styles.Subtle.Render(" Refresh your authentication via `secman auth refresh`.\n")
			m.message = m.styles.Wrap.Render(head + body)

			return m, nil

		case shared.ErrorMsg:
			m.state = shared.Ready
			m.message = m.styles.Error.Render("An error occurred while creating your password. Please try again.")

			return m, nil

		case shared.Message:
			m.state = shared.Ready
			head := m.styles.Error.Render("Oh, what? There was a curious error we were not expecting.\n")
			body := m.styles.Subtle.Render(msg.Error())
			m.message


ame = [lowKicker, highKicker]

        const expectedRanking = [
            getRankingGroupWithKickers([highKicker], getCardMatchingSymbol('QS')),
            getRankingGroupWithKickers([lowKicker], getCardMatchingSymbol('JD'))]
        expect(Ranker.rankHands(game)).toEqual(expectedRanking)
    })

    it('Groups two completely equivalent hands', () => {
        const pair1 = PokerHandFactory.createPokerHand('River', [...communityCards, 'TS', '3S'])
        const pair2 = PokerHandFactory.createPokerHand('Kaylee', [...communityCards, 'TH', '3H'])
        const game = [pair2, pair1]

        const expectedRanking = [getRankingGroup([pair2, pair1])]
        expect(Ranker.rankHands(game)).toEqual(expectedRanking)
    })

    it('Groups two completely equivalent hands without kickers', () => {
        const communityCards = ['2D', 'KD', 'JD', 'TD', 'JS']
        const pair1 = PokerHandFactory.createPokerHand('River', [...communityCards, 'TS', 'JC'])
        const pair2 = PokerHandFactory.createPokerHand('Kaylee', [...communityCards, 'TH', 'JH'])
        const game = [pair2, pair1]

        const expectedRanking = [getRankingGroup([pair2, pair1])]

        expect(Ranker.rankHands(game)).toEqual(expectedRanking)
    })
})
import * as registerSuite from 'intern!object';
import * as assert from 'intern/chai!assert';
import Filter, { createFilter, FilterType, BooleanOp, SimpleFilter } from '../../../src/query/Filter';
import { createPointer } from '../../../src/patch/JsonPointer';

type SimpleObj = { key: number; id: string };
type NestedObj = { key: { key2: number }; id: string};
type ListWithLists = { id: string, list: number[] };
const simpleList = [
	{
		key: 5,
		id: '1'
	},
	{
		key: 7,
		id: '2'
	},
	{
		key: 4,
		id: '3'
	}
];
const nestedList = [
	{
		key: {
			key2: 5
		},
		id: '1'
	},
	{
		key: {
			key2: 7
		},
		id: '2'
	},
	{
		key: {
			key2: 4
		},
		id: '3'
	}
];

const listWithLists = [
	{
		list: [ 1, 2, 3 ],
		id: '1'
	},
	{
		list: [ 3, 4, 5 ],
		id: '2'
	},
	{
		list: [ 4, 5, 6 ],
		id: '3'
	}
];
registerSuite({
	name: 'filter',

	'basic filter operations': {
		'with string path': {
			'less than': function() {
				assert.deepEqual(createFilter<SimpleObj>().lessThan('key', 5).apply(simpleList),
					[ { key: 4, id: '3' } ], 'Less than w/string path');
			},

			'less than or equal to': function() {
				assert.deepEqual(createFilter<SimpleObj>().lessThanOrEqualTo('key', 5).apply(simpleList),
					[ { key: 5, id: '1' }, { key: 4, id: '3' } ], 'Less than or equal to with string path');
			},

			'greater than': function() {
				assert.deepEqual(createFilter<SimpleObj>().greaterThan('key', 5).apply(simpleList),
					[ { key: 7, id: '2' } ], 'Greater than with string path');
			},

			'greater than or equal to': function() {
				assert.deepEqual(createFilter<SimpleObj>().greaterThanOrEqualTo('key', 5).apply(simpleList),
					[ { key: 5, id: '1' }, { key: 7, id: '2' } ], 'Greater than or equal to with string path');
			},

			'matches': function() {
				assert.


dsContainer.appendChild(noFieldsDiv);
    }

    sectionDiv.appendChild(fieldsContainer);
    container.appendChild(sectionDiv);

    // Update section title and description in navigation
    document.getElementById('current-section-title').textContent = currentSection.title;
    document.getElementById('current-section-description').textContent = currentSection.description;
}

function previousSection() {
    if (currentSectionIndex > 0) {
        currentSectionIndex--;
        renderCurrentSection();
        updateNavigationState();
        updateProgress();
    }
}

function nextSection() {
    if (currentSectionIndex < formSections.length - 1) {
        currentSectionIndex++;
        renderCurrentSection();
        updateNavigationState();
        updateProgress();
    }
}

function updateNavigationState() {
    const prevButton = document.getElementById('prev-section');
    const nextButton = document.getElementById('next-section');

    // Update Previous button
    prevButton.disabled = currentSectionIndex === 0;

    // Update Next button
    if (currentSectionIndex === formSections.length - 1) {
        nextButton.innerHTML = `
            Complete Review
            <svg class="w-4 h-4 ml-2" fill="currentColor" viewBox="0 0 20 20">
                <path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd"/>
            </svg>
        `;
        nextButton.onclick = () => {
            // Scroll to form submission section
            document.querySelector('.mt-8.border-t.pt-6').scrollIntoView({ behavior: 'smooth' });
            showNotification('All sections completed! Please review and submit.', 'success');
        };
    } else {
        nextButton.innerHTML = `
            Next Section
            <svg class="w-4 h-4 ml-2" fill="currentColor" viewBox="0 0 20 20">
                <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"/>
            </svg>
        `;
        nextButton.onclick = nextSection;
    }
}

function updateProgress() {
    const progressPercentage = ((currentSectionIndex + 1) / formSections.length) * 100;
    document.getElementById('progress-bar').style.width = `${progressPercentage}%`;
    document.getElementById('current-section').textContent = currentSectionIndex + 1;
}

function reassignField(fieldId, newAssignment) {
    // Update field assignment
    const field = pdfFields.find(f => f.id === fieldId);
    if (field) {
        field.assigned_to = newAssignment;
        renderCurrentSection(); // Re-render current section instead of all sections

        // Show feedback
        showNotification(`Field "${field.name}" assigned to ${newAssignment === 'user1' ? 'you' : 'User 2'}`, 'success');
    }
}

function updateFieldValue(fieldId, value) {
    console.log(`🔄 updateFieldValue called: ${fieldId} = '${value}'`);
    const field = pdfFields.find(f => f.id === fieldId);
    if (field) {
        const oldValue = field.value;
        field.value = value;
        console.log(`   ✅ Updated '${field.name}': '${oldValue}' → '${value}'`);
    } else {
        console.log(`   ❌ Field not found: ${fieldId}`);
    }
}

function showNotification(message, type) {
    const notification = document.createElement('div');
    notification.className = `fixed top-4 right-4 z-50 p-4 rounded-md shadow-lg ${type === 'success' ? 'bg-green-100 border border-green-400 text-green-


 This test doesn't use `RouterTestingModule`.
   It isn't necessary because no navigation happens. */

describe('Testing activated routes', () => {
  let fixture;
  const mockActivatedRoute = {
    snapshot: {
      params: {
        id: 'aMockId'
      }
    }
  };

  beforeEach(() => {
    TestBed.configureTestingModule({
      providers: [
        {provide: ActivatedRoute, useValue: mockActivatedRoute}
      ],
      declarations: [ContactEditComponent]
    });
  });

  // needs to by in `async` helper as the test waits for component to initialize
  beforeEach(async(() => {
    fixture = TestBed.createComponent(ContactEditComponent);
    fixture.detectChanges();
  }));

  it('Tries to route to a page', async(() => {
    const testEl = fixture.debugElement.query(By.css('div'));
    expect(testEl.nativeElement.textContent).toEqual('aMockId');
  }));
});
/**
 * Represents a generic resource like an image, a sound file ...
 */
export interface Resource<T = any> {

    /**
     * get the raw resource data
     */
    getData(): T;

    /**
     * set the resource data
     * @param data the new resource data
     */
    setData(data: T): ThisType<Resource<T>>;

    /**
     * Determines if the resource is currently loaded
     */
    isLoaded(): boolean;

    /**
     * converts the given data from the backend request into T
     * @param data the data to convert to T
     * @param args use these optional arguments for dependency injection
     * @internal
     */
    process?(data: T, ...args: any[]): Promise<T>;
}
import { Injectable } from '@angular/core';
import { Observable, ReplaySubject } from 'rxjs/Rx';

import { IUser } from './user.model';

const userMock = {
    name: 'John Doe',
    email: 'jdoe@ekito.fr'
}

@Injectable()
export class Auth {

    userProfile$ = new ReplaySubject<IUser>(1);

    constructor() {
        // init loggedIn status
        const profile = localStorage.getItem('profile');

        if (profile) {
            const user = JSON.parse(profile);
            this.userProfile$.next(user);
        } else {
            this.userProfile$.next(null);
        }
    }

    public login(): Promise<IUser> {

        return Promise.resolve(userMock) // Fake remote server call that should return an access token with minimal userProfile
            .then((user) => {
                localStorage.setItem('profile', JSON.stringify(user));
                this.userProfile$.next(userMock);
                return userMock;
            });
    };

    public logout(): Promise<void> {

        return Promise.resolve() // Eventually call asynchronous task to disconnect the user
            .then(() => {
                localStorage.removeItem('profile');
                this.userProfile$.next(null);
                return;
            });
    };

    public isAuthenticated(): Observable<boolean> {
        // Should also check that the token or cookie is not expired
        return this.userProfile$.map(user => !!user);
    };

    public getProfile(): Observable<IUser> {
        return this.userProfile$;
    }
}
import { Customer } from '../../customers/models/customer';
import { InvoiceItem } from './invoice-item';

export class Invoice


nts:
 *   //   A*x - B*y = u
 *   //   D*y - C*x = v
 *   //   gcd(u, v) = gcd(x, y)
 *   //   bitlen(u) + bitlen(v) <= i
 *   //   gcd(u, v) = 1
 *   //   bitlen(u) + bitlen(v) <= i
 *   //   0 < u <= 65537
 *   //   0 <= v <= m
 *   //   0 <= A, C < m
 *   //   0 <= B,D < 65537
 *   for i=(bitlen(m) + bitlen(65537))..1:
 *     both_odd = u[0] & v[0]
 *     v_lt_u = v < u
 *     u = u - ((both_odd && v_lt_u) ? v : 0)
 *     v = v - ((both_odd && !v_lt_u) ? u : 0)
 *     ac = (A + C) mod m
 *     A = (both_odd && v_lt_u) ? ac : A
 *     C = (both_odd && !v_lt_u) ? ac : C
 *     bd = (B + D) mod 65537
 *     B = (both_odd && v_lt_u) ? bd : B
 *     D = (both_odd && !v_lt_u) ? bd : D
 *     u_even = !u[0]
 *     a_or_b_odd = A[0] | B[0]
 *     u = u_even ? u >> 1 : u
 *     A = (u_even && a_or_b_odd) ? (A + m) : A
 *     A = u_even ? (A >> 1) : A
 *     B = (u_even && a_or_b_odd) ? (B + 65537) : B
 *     B = u_even ? (B >> 1) : B
 *     v_even = !v[0]
 *     c_or_d_odd = C[0] | D[0]
 *     v = v_even ? v >> 1 : v
 *     C = (v_even && c_or_d_odd) ? (C + m) : C
 *     C = v_even ? (C >> 1) : C
 *     D = (u_even && c_or_d_odd) ? (D + 65537) : D
 *     D = u_even ? (D >> 1) : D
 *   if u != 1:
 *     FAIL("Not invertible")
 *   return A
 *
 * This routine runs in constant time.
 *
 * Flags: Flags have no meaning beyond the scope of this subroutine.
 *
 * @param[in]  x12: dptr_m, pointer to modulus m in DMEM (n limbs)
 * @param[in]  x13: dptr_A, pointer to result buffer in DMEM (n limbs)
 * @param[in]  x14: dptr_C, pointer to a temporary buffer in DMEM (n limbs)
 * @param[in]  x15: dptr_v, pointer to a temporary buffer in DMEM (n limbs)
 * @param[in]  x20: 20, constant
 * @param[in]  x21: 21, constant
 * @param[in]  x30: nlen, number of 256-bit limbs for modulus m and result d
 * @param[in]  w31: all-zero
 * @param[out] dmem[dptr_A..dptr_A+(plen*32)]: result, modular inverse d
 *
 * clobbered registers: MOD, x2 to x4, x31, w20 to w28
 * clobbered flag groups: FG0, FG1
 */
modinv_f4:
  /* Zero the intermediate buffers.
       dmem[dptr_A..dptr_A+(nlen*32)] <= 0
       dmem[dptr_C..dptr_C+(nlen*32)] <= 0 */
  li       x2, 31
  addi     x3, x13, 0
  addi     x4, x14, 0
  loop     x30, 2
    bn.sid   x2, 0(x3++)
    bn.sid   x2, 0(x4++)

  /* Set the lowest limb of A to 1.
       dmem[dptr_A] <= 1 */
  bn.addi  w20, w31, 1
  bn.sid   x20, 0(x13)

  /* Initialize B to 0.
       w27 <= 0 */
  bn


	sp, sp, #24
	str	r1, [fp, #-24]
	ldrh	r3, [r2, #0]
	ldrh	r4, [r2, #2]
	ldrh	r5, [r2, #4]
	ldrh	r6, [r2, #6]
	ldrh	r2, [r0, #0]
	ldrh	r7, [r0, #2]
	ldrh	r8, [r0, #4]
	ldrh	r9, [r0, #6]
	ldrh	r10, [r0, #8]
	ldrh	r1, [r0, #10]
	ldrh	lr, [r0, #12]
	ldrh	r0, [r0, #14]
	eor	ip, r0, r0, lsl #1
	eor	ip, ip, r0, lsr #15
	eor	ip, ip, r0, lsl #11
	eor	ip, ip, r0, lsr #5
	strh	ip, [fp, #-6]
	eor	ip, r0, r0, lsl #1
	eor	ip, ip, r0, lsr #15
	eor	ip, ip, r0, lsl #8
	eor	ip, ip, r0, lsr #8
	strh	ip, [fp, #-20]
	eor	ip, r7, r7, lsl #1
	eor	ip, ip, r7, lsr #15
	eor	r0, ip, r7, lsl #8
	eor	ip, ip, r7, lsl #11
	eor	r0, r0, r7, lsr #8
	eor	ip, ip, r7, lsr #5
	uxth	r7, r0
	strh	ip, [fp, #-18]
	eor	ip, r2, r2, lsl #1
	eor	ip, ip, r2, lsr #15
	eor	r0, ip, r2, lsl #8
	eor	ip, ip, r2, lsl #11
	eor	r0, r0, r2, lsr #8
	eor	ip, ip, r2, lsr #5
	uxth	r2, r0
	strh	ip, [fp, #-16]
	eor	ip, r9, r9, lsl #1
	eor	ip, ip, r9, lsr #15
	eor	r0, ip, r9, lsl #8
	eor	ip, ip, r9, lsl #11
	eor	r0, r0, r9, lsr #8
	eor	ip, ip, r9, lsr #5
	uxth	r9, r0
	strh	ip, [fp, #-14]
	eor	ip, r8, r8, lsl #1
	eor	ip, ip, r8, lsr #15
	eor	r0, ip, r8, lsl #8
	eor	ip, ip, r8, lsl #11
	eor	r0, r0, r8, lsr #8
	eor	ip, ip, r8, lsr #5
	uxth	r8, r0
	strh	ip, [fp, #-12]
	eor	ip, r1, r1, lsl #1
	eor	ip, ip, r1, lsr #15
	eor	r0, ip, r1, lsl #8
	eor	ip, ip, r1, lsl #11
	eor	r0, r0, r1, lsr #8
	eor	ip, ip, r1, lsr #5
	uxth	r1, r0
	strh	ip, [fp, #-10]
	eor	ip, r10, r10, lsl #1
	eor	ip, ip, r10, lsr #15
	eor	r0, ip, r10, lsl #8
	eor	ip, ip, r10, lsl #11
	eor


(), true);
        }

        ctx.wc = ctx.w.clone() + &c_str;
        if ctx.dictionary.contains_key(&ctx.wc) {
            ctx.w = ctx.wc.clone();
        } else {
            ctx.produce_w();
            // Add wc to the dictionary.
            ctx.dictionary.insert(ctx.wc.clone(), ctx.dict_size as u32);
            ctx.dict_size += 1;
            ctx.w = c_str;
        }
    });

    // Output the code for w.
    if !ctx.w.is_empty() {
        ctx.produce_w();
    }

    // Mark the end of the stream
    ctx.write_bits(ctx.num_bits, 2);

    let str_len = ctx.output.len();
    // Flush the last char
    while ctx.output.len() == str_len {
        ctx.write_bit(0);
    }

    ctx.output
}
//! Error types for the [`tower::balance`] middleware.
//!
//! [`tower::balance`]: crate::balance

use std::fmt;

/// The balancer's endpoint discovery stream failed.
#[derive(Debug)]
pub struct Discover(pub(crate) crate::BoxError);

impl fmt::Display for Discover {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "load balancer discovery error: {}", self.0)
    }
}

impl std::error::Error for Discover {
    fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
        Some(&*self.0)
    }
}
<filename>src/user_manager.rs
use std::{collections::HashMap, sync::Arc};

use tokio::sync::RwLock;

use crate::{chat, Noalbs};

type User = Arc<RwLock<HashMap<String, Arc<Noalbs>>>>;

#[derive(Clone)]
pub struct UserManager {
    users: User,
}

impl UserManager {
    pub fn new() -> Self {
        Self {
            users: Arc::new(RwLock::new(HashMap::new())),
        }
    }

    pub fn get(&self) -> User {
        self.users.clone()
    }

    pub async fn add(&self, user: Noalbs) {
        let lock = &mut self.users.write().await;

        let state = user.state.read().await;
        let key = state.config.user.name.clone();
        drop(state);

        lock.insert(key, Arc::new(user));
    }

    /// Returns the platform and username
    pub async fn get_all_chat(&self) -> Vec<(chat::ChatPlatform, String)> {
        let mut all_chat = Vec::new();

        let lock = self.users.read().await;
        for val in (*lock).values() {
            let state = val.state.read().await;
            if let Some(chat) = &state.config.chat {
                all_chat.push((chat.platform.to_owned(), chat.username.to_owned()));
            }
        }

        all_chat
    }

    // TODO: Probably don't want this???
    pub async fn get_user_by_chat_platform(
        &self,
        username: &str,
        platform: &chat::ChatPlatform,
    ) -> Option<Arc<Noalbs>> {
        let lock = self.users.read().await;

        for value in (*lock).values() {
            let state = &value.state.read().await;

            if let Some(chat) = &state.config.chat {
                if chat.username == username && &chat.platform == platform {
                    return Some(value.clone());
                }
            }
        }

        None
    }
}

impl Default for UserManager {
    fn default() -> Self {
        Self::new(


, 2025, [http://holleiannedesignco.com/blog/what-is-surface-design-43p2m](http://holleiannedesignco.com/blog/what-is-surface-design-43p2m)
48. Raster vs. vector: What are the differences? \- Adobe, accessed September 3, 2025, [https://www.adobe.com/creativecloud/file-types/image/comparison/raster-vs-vector.html](https://www.adobe.com/creativecloud/file-types/image/comparison/raster-vs-vector.html)
49. Latticegen — latticegen 0.0.4 documentation, accessed September 3, 2025, [https://moire-lattice-generator.readthedocs.io/](https://moire-lattice-generator.readthedocs.io/)
50. Simple python code to interactively generate visualizations of moire patterns of hexagonal lattices such as magic angle bilayer graphene. \- GitHub, accessed September 3, 2025, [https://github.com/TAdeJong/moire-lattice-generator](https://github.com/TAdeJong/moire-lattice-generator)
51. latticegen \- PyPI, accessed September 3, 2025, [https://pypi.org/project/latticegen/](https://pypi.org/project/latticegen/)
52. hexalattice \- PyPI, accessed September 3, 2025, [https://pypi.org/project/hexalattice/](https://pypi.org/project/hexalattice/)
53. PyAtoms: An interactive tool for rapidly simulating atomic scanning tunneling microscopy images of 2D materials, moiré systems and superlattices \- arXiv, accessed September 3, 2025, [https://arxiv.org/html/2412.18332v2](https://arxiv.org/html/2412.18332v2)
54. Create moire pattern effect with OpenCV \- Stack Overflow, accessed September 3, 2025, [https://stackoverflow.com/questions/53159573/create-moire-pattern-effect-with-opencv](https://stackoverflow.com/questions/53159573/create-moire-pattern-effect-with-opencv)
55. Moiré patterns and “twistronics” – Waters Lab \- Dacen Waters, accessed September 3, 2025, [https://dacenwaters.com/research/moire-patterns-and-twistronics/](https://dacenwaters.com/research/moire-patterns-and-twistronics/)
56. Moiré Patterns Explained: Unlocking the Magic of Twistronics \! \#quantumtechnology \- YouTube, accessed September 3, 2025, [https://www.youtube.com/shorts/JQwD523VWHA](https://www.youtube.com/shorts/JQwD523VWHA)
57. Designing Moiré Patterns by Strain \- arXiv, accessed September 3, 2025, [https://arxiv.org/html/2309.08671v2](https://arxiv.org/html/2309.08671v2)
58. Seeing moir\\'e: Convolutional network learning applied to twistronics | Phys. Rev. Research, accessed September 3, 2025, [https://link.aps.org/doi/10.1103/PhysRevResearch.4.043224](https://link.aps.org/doi/10.1103/PhysRevResearch.4.043224)
59. DPmoire: A tool for constructing accurate machine learning force fields in moiré systems, accessed September 3, 2025, [https://arxiv.org/html/2412.19333v1](https://arxiv.org/html/2412.19333v1)
60. Designing moiré patterns by strain \- Physical Review Link Manager, accessed September 3, 2025, [https://link.aps.org/doi/10.1103/PhysRevResearch.6.023203](https://link.aps.org/doi/10.1103/PhysRevResearch.6


     {
            get
            {
                return this.seats;
            }
        }

        protected override string PrintAdditionalInfo()
        {
            return string.Format("  {0}: {1}", SeatsProperty, this.Seats);
        }

        private void ValidateFields()
        {
            Validator.ValidateIntRange(this.seats, Constants.MinSeats, Constants.MaxSeats, string.Format(Constants.NumberMustBeBetweenMinAndMax, SeatsProperty, Constants.MinSeats, Constants.MaxSeats));
        }
    }
}


,{bK:"element attribute comment document processing-instruction",e:"{",eE:!0},{b:/<([\w\._:\-]+)((\s*.*)=('|").*('|"))?>/,e:/(\/[\w\._:\-]+>)/,sL:"xml",c:[{b:"{",e:"}",sL:"xquery"},"self"]}];return{aliases:["xpath","xq"],cI:!1,l:/[a-zA-Z\$][a-zA-Z0-9_:\-]*/,i:/(proc)|(abstract)|(extends)|(until)|(#)/,k:{keyword:"module schema namespace boundary-space preserve no-preserve strip default collation base-uri ordering context decimal-format decimal-separator copy-namespaces empty-sequence except exponent-separator external grouping-separator inherit no-inherit lax minus-sign per-mille percent schema-attribute schema-element strict unordered zero-digit declare import option function validate variable for at in let where order group by return if then else tumbling sliding window start when only end previous next stable ascending descending allowing empty greatest least some every satisfies switch case typeswitch try catch and or to union intersect instance of treat as castable cast map array delete insert into replace value rename copy modify update",type:"item document-node node attribute document element comment namespace namespace-node processing-instruction text construction xs:anyAtomicType xs:untypedAtomic xs:duration xs:time xs:decimal xs:float xs:double xs:gYearMonth xs:gYear xs:gMonthDay xs:gMonth xs:gDay xs:boolean xs:base64Binary xs:hexBinary xs:anyURI xs:QName xs:NOTATION xs:dateTime xs:dateTimeStamp xs:date xs:string xs:normalizedString xs:token xs:language xs:NMTOKEN xs:Name xs:NCName xs:ID xs:IDREF xs:ENTITY xs:integer xs:nonPositiveInteger xs:negativeInteger xs:long xs:int xs:short xs:byte xs:nonNegativeInteger xs:unisignedLong xs:unsignedInt xs:unsignedShort xs:unsignedByte xs:positiveInteger xs:yearMonthDuration xs:dayTimeDuration",literal:"eq ne lt le gt ge is self:: child:: descendant:: descendant-or-self:: attribute:: following:: following-sibling:: parent:: ancestor:: ancestor-or-self:: preceding:: preceding-sibling:: NaN"},c:e}}),hljs.registerLanguage("dsconfig",function(e){return{k:"dsconfig",c:[{cN:"keyword",b:"^dsconfig",e:"\\s",eE:!0,r:10},{cN:"built_in",b:"(list|create|get|set|delete)-(\\w+)",e:"\\s",eE:!0,i:"!@#$%^&*()",r:10},{cN:"built_in",b:"--(\\w+)",e:"\\s",eE:!0},{cN:"string",b:/"/,e:/"/},{cN:"string",b:/'/,e:/'/},{cN:"string",b:"[\\w-?]+:\\w+",e:"\\W",r:0},{cN:"string",b:"\\w+-?\\w+",e:"\\W",r:0},e.HCM]}}),hljs.registerLanguage("php",function(e){var t={b:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"},r={cN:"meta",b:/<\?(php)?|\?>/},a={cN:"string",c:[e.BE,r],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},i={v:[e.BNM,e.CNM]};return{aliases:["php","php3","php4","php5","php6


nction mod:OnBossEnable()
	self:Log("SPELL_CAST_START", "TremorClaw", 1215957)
	self:Log("SPELL_CAST_START", "CarnageCannon", 1215905)
	self:Log("SPELL_PERIODIC_DAMAGE", "BlackBloodDamage", 1215912)
	self:Log("SPELL_PERIODIC_MISSED", "BlackBloodDamage", 1215912)
	self:Log("SPELL_CAST_START", "JuiceItUp", 1215975)
end

function mod:OnEngage()
	self:CDBar(1215957, 6.0) -- Tremor Claw
	self:CDBar(1215905, 12.1) -- Carnage Cannon
	self:CDBar(1215975, 18.2, CL.enrage) -- Juice It Up!
end

--------------------------------------------------------------------------------
-- Event Handlers
--

function mod:TremorClaw(args)
	self:Message(args.spellId, "yellow")
	self:CDBar(args.spellId, 18.2)
	self:PlaySound(args.spellId, "alarm")
end

function mod:CarnageCannon(args)
	self:Message(args.spellId, "orange")
	self:CDBar(args.spellId, 21.1)
	self:PlaySound(args.spellId, "alarm")
end

do
	local prev = 0
	function mod:BlackBloodDamage(args)
		if self:Me(args.destGUID) and args.time - prev > 2 then
			prev = args.time
			self:PersonalMessage(args.spellId, "underyou")
			self:PlaySound(args.spellId, "underyou")
		end
	end
end

function mod:JuiceItUp(args)
	self:Message(args.spellId, "red", CL.enrage)
	self:CDBar(args.spellId, 41.3, CL.enrage)
	self:PlaySound(args.spellId, "info")
end


5C3 3.89543 3.89543 3 5 3H16.1716C16.702 3 17.2107 3.21071 17.5858 3.58579L20.4142 6.41421C20.7893 6.78929 21 7.29799 21 7.82843V19C21 20.1046 20.1046 21 19 21H5C3.89543 21 3 20.1046 3 19Z" stroke="currentColor" stroke-width="1.5"/><path d="M8.6 9H15.4C15.7314 9 16 8.73137 16 8.4V3.6C16 3.26863 15.7314 3 15.4 3H8.6C8.26863 3 8 3.26863 8 3.6V8.4C8 8.73137 8.26863 9 8.6 9Z" stroke="currentColor" stroke-width="1.5"/><path d="M6 13.6V21H18V13.6C18 13.2686 17.7314 13 17.4 13H6.6C6.26863 13 6 13.2686 6 13.6Z" stroke="currentColor" stroke-width="1.5"/></svg>');
}
.iconoir-flower::before {
    mask-image: url('data:image/svg+xml;charset=utf-8,<svg width="24" height="24" stroke-width="1.5" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M11.9996 14.9995C13.6565 14.9995 14.9996 13.6564 14.9996 11.9995C14.9996 10.3427 13.6565 8.99951 11.9996 8.99951C10.3428 8.99951 8.99963 10.3427 8.99963 11.9995C8.99963 13.6564 10.3428 14.9995 11.9996 14.9995Z" stroke="currentColor" stroke-miterlimit="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M13 9C13 9 14 7 14 5C14 3 12 1 12 1C12 1 10 3 10 5C10 7 11 9 11 9" stroke="currentColor" stroke-miterlimit="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M9 11C9 11 7 10 5 10C3 10 1 12 1 12C1 12 3 14 5 14C7 14 9 13 9 13" stroke="currentColor" stroke-miterlimit="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M13 15C13 15 14 17 14 19C14 21 12 23 12 23C12 23 10 21 10 19C10 17 11 15 11 15" stroke="currentColor" stroke-miterlimit="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M15 11C15 11 17 10 19 10C21 10 23 12 23 12C23 12 21 14 19 14C17 14 15 13 15 13" stroke="currentColor" stroke-miterlimit="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M10.5858 9.17176C10.5858 9.17176 9.87868 7.05044 8.46447 5.63623C7.05026 4.22202 4.22183 4.22202 4.22183 4.22202C4.22183 4.22202 4.22183 7.05044 5.63604 8.46466C7.05026 9.87887 9.17158 10.586 9.17158 10.586" stroke="currentColor" stroke-miterlimit="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M9.17152 13.4142C9.17152 13.4142 7.0502 14.1213 5.63599 15.5355C4.22177 16.9497 4.22177 19.7782 4.22177 19.7782C4.22177 19.7782 7.0502 19.7782 8.46441 18.364C9.87863 16.9497 10.5857 14.8284 10.5857 14.8284" stroke="c


a id="pre?">(pre? 'any1 'any2) -> any2 | NIL

Returns any2 when the string representation of
any1 is a prefix of the string representation of any2.
See also sub? and head.

: (pre? "abc" "abcdefg")
-> "abcdef"
: (pre? "def" "abcdefg")
-> NIL
: (pre? (+ 3 4) "7fach")
-> "7fach"
: (pre? NIL "abcdefg")
-> "abcdefg"

: (pre? "abc" '(a b c d e f g))
-> "abcdefg"
: (pre? '(a b c) "abcdefg")
-> "abcdefg"

(pretty 'any 'cnt)

Pretty-prints any. If any is an atom, or a list
with a size not greater than 12, it is
printed as is. Otherwise, only the
opening parenthesis and the CAR of the list is printed, all other elements are
pretty-printed recursively indented by three spaces, followed by a space and the
corresponding closing parenthesis. The initial indentation level
cnt defaults to zero. See also pp.

: (pretty '(a (b c d) (e (f (g) (h) (i)) (j (k) (l) (m))) (n o p) q))
(a
   (b c d)
   (e
      (f (g) (h) (i))
      (j (k) (l) (m)) )
   (n o p)
   q )-> ")"

(prin 'any ..) -> any

Prints the string representation of all any arguments to the
current output channel. No space or newline is printed between individual items,
or after the last item. For lists, all elements are prin'ted
recursively. See also prinl.

: (prin 'abc 123 '(a 1 b 2))
abc123a1b2-> (a 1 b 2)

(prinl 'any ..) -> any

Prints the string representation of all any arguments to the
current output channel, followed by a newline. No space or newline is printed
between individual items. For lists, all elements are prin'ted
recursively. See also prin.

: (prinl 'abc 123 '(a 1 b 2))
abc123a1b2
-> (a 1 b 2)

(print 'any ..) -> any

Prints all any arguments to the current output channel. If
there is more than one argument, a space is printed between successive
arguments. No space or newline is printed after the last item. See also println, printsp, <a
href="refS.html#


= Spell(370695),
  Incarnation                           = Spell(102558),
  LunarBeam                             = Spell(204066),
  Maul                                  = Spell(6807),
  Pulverize                             = Spell(80313),
  RageoftheSleeper                      = Spell(200851),
  Raze                                  = Spell(400254),
  ReinforcedFur                         = Spell(393618),
  SouloftheForest                       = Spell(158477),
  Swipe                                 = Spell(213771),
  ThornsofIron                          = Spell(400222),
  UrsocsEndurance                       = Spell(393611),
  -- Buffs
  DreamofCenariusBuff                   = Spell(372152),
  GalacticGuardianBuff                  = Spell(213708),
  GoreBuff                              = Spell(93622),
  StackedDeckBuff                       = Spell(1218537), -- TWW S2 4pc
  ToothandClawBuff                      = Spell(135286),
  ViciousCycleMaulBuff                  = Spell(372015),
  ViciousCycleMangleBuff                = Spell(372019),
})
Spell.Druid.Guardian = MergeTableByKey(Spell.Druid.Guardian, Spell.Druid.DruidoftheClaw)
Spell.Druid.Guardian = MergeTableByKey(Spell.Druid.Guardian, Spell.Druid.ElunesChosen)

-- Items
if not Item.Druid then Item.Druid = {} end
Item.Druid.Commons = {
  -- TWW Trinkets
  ArazsRitualForge                      = Item(242402, {13, 14}),
  ImperfectAscendancySerum


primitive.m_maxBulletImpactParticles);
        }

        public static void DestroyPools()
        {
            foreach (var p in s_pools.Values)
            {
                p.Destroy();
            }
            s_pools.Clear();
        }

        public static BulletImpactParticles Create(BulletImpactParticles primitive,
                                                   Transform parent)
        {
            InitPool(primitive);

            var impact = s_pools[primitive].GetNext();
            impact.gameObject.SetActive(true);
            impact.m_weakParentLink = parent;
            impact.UpdateWeakParent();

            impact.m_particleSystem.Stop();
            impact.m_particleSystem.Play();

            if (impact.m_audioTrigger != null)
            {
                impact.m_audioTrigger.PlayAudio();
            }

            return impact;
        }

        private void UpdateWeakParent()
        {
            if (m_weakParentLink == null)
            {
                return;
            }

            m_weakParent.position = m_weakParentLink.position;
            m_weakParent.rotation = m_weakParentLink.rotation;
            m_weakParent.localScale = m_weakParentLink.localScale;
        }

        private void Awake()
        {
            m_weakParent = new GameObject(name + "WeakParent").transform;
            transform.SetParent(m_weakParent);
        }

        private void OnDestroy()
        {
            Destroy(m_weakParent.gameObject);
        }

        private void Update()
        {
            if (!m_particleSystem.IsAlive() ||
                m_weakParentLink == null)
            {
                m_particleSystem.Stop();
                gameObject.SetActive(false);
                return;
            }

            UpdateWeakParent();
        }

#if UNITY_EDITOR
        private void OnValidate()
        {
            if (!m_particleSystem)
            {
                m_particleSystem = GetComponent<ParticleSystem>();
            }
        }
#endif
    }
}


ssHasMethod("onBeginCapture", swigMethodTypes3))
      swigDelegate3 = new SwigDelegateICaptureEventHandler_3(SwigDirectoronBeginCapture);
    if (SwigDerivedClassHasMethod("onEndCapture", swigMethodTypes4))
      swigDelegate4 = new SwigDelegateICaptureEventHandler_4(SwigDirectoronEndCapture);
    if (SwigDerivedClassHasMethod("onUserRequestBuffer", swigMethodTypes5))
      swigDelegate5 = new SwigDelegateICaptureEventHandler_5(SwigDirectoronUserRequestBuffer);
    cAudioCSharpWrapperPINVOKE.ICaptureEventHandler_director_connect(swigCPtr, swigDelegate0, swigDelegate1, swigDelegate2, swigDelegate3, swigDelegate4, swigDelegate5);
  }

  private bool SwigDerivedClassHasMethod(string methodName, Type[] methodTypes) {
    System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(ICaptureEventHandler));
    return hasDerivedMethod;
  }

  private void SwigDirectoronInit() {
    onInit();
  }

  private void SwigDirectoronUpdate() {
    onUpdate();
  }

  private void SwigDirectoronRelease() {
    onRelease();
  }

  private void SwigDirectoronBeginCapture() {
    onBeginCapture();
  }

  private void SwigDirectoronEndCapture() {
    onEndCapture();
  }

  private void SwigDirectoronUserRequestBuffer() {
    onUserRequestBuffer();
  }

  public delegate void SwigDelegateICaptureEventHandler_0();
  public delegate void SwigDelegateICaptureEventHandler_1();
  public delegate void SwigDelegateICaptureEventHandler_2();
  public delegate void SwigDelegateICaptureEventHandler_3();
  public delegate void SwigDelegateICaptureEventHandler_4();
  public delegate void SwigDelegateICaptureEventHandler_5();

  private SwigDelegateICaptureEventHandler_0 swigDelegate0;
  private SwigDelegateICaptureEventHandler_1 swigDelegate1;
  private SwigDelegateICaptureEventHandler_2 swigDelegate2;
  private SwigDelegateICaptureEventHandler_3 swigDelegate3;
  private SwigDelegateICaptureEventHandler_4 swigDelegate4;
  private SwigDelegateICaptureEventHandler_5 swigDelegate5;

  private static Type[] swigMethodTypes0 = new Type[] {  };
  private static Type[] swigMethodTypes1 = new Type[] {  };
  private static Type[] swigMethodTypes2 = new Type[] {  };
  private static Type[] swigMethodTypes3 = new Type[] {  };
  private static Type[] swigMethodTypes4 = new Type[] {  };
  private static Type[] swigMethodTypes5 = new Type[] {  };
}

}


*/
    public void setBackground(Color[] colors, int[] percents) {
        getImpl().setBackground(colors, percents);
    }

    /**
     *  Specify a gradient of colours to be drawn in the background of the CLabel.
     *
For example, to draw a gradient that varies from dark blue to white in the vertical,
     *  direction use the following call
     *  to setBackground:

     *

     * 	clabel.setBackground(new Color[]{display.getSystemColor(SWT.COLOR_DARK_BLUE),
     * 		                           display.getSystemColor(SWT.COLOR_WHITE)},
     * 		                 new int[] {100}, true);
     *

     *
     *  @param colors an array of Color that specifies the colors to appear in the gradient
     *                in order of appearance from left/top to right/bottom;  The value null
     *                clears the background gradient; the value null can be used
     *                inside the array of Color to specify the background color.
     *  @param percents an array of integers between 0 and 100 specifying the percent of the width/height
     *                  of the widget at which the color should change; the size of the percents
     *                  array must be one less than the size of the colors array.
     *  @param vertical indicate the direction of the gradient.  True is vertical and false is horizontal.
     *
     *  @exception SWTException

     *
ERROR_WIDGET_DISPOSED - if the receiver has been disposed

     *
ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver

     *
ERROR_INVALID_ARGUMENT - if the values of colors and percents are not consistent

     *

     *
     *  @since 3.0
     */
    public void setBackground(Color[] colors, int[] percents, boolean vertical) {
        getImpl().setBackground(colors, percents, vertical);
    }

    /**
     * Set the image to be drawn in the background of the label.
     *
     * @param image the image to be drawn in the background
     *
     * @exception SWTException

     *
ERROR_WIDGET_DISPOSED - if the receiver has been disposed

     *
ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver

     *

     */
    public void setBackground(Image image) {
        getImpl().setBackground(image);
    }

    /**
     * Set the label's bottom margin, in points.
     *
     * @param bottomMargin the bottom margin of the label, which must be equal to or greater than zero
     *
     * @exception SWTException

     *
ERROR_WIDGET_DISPOSED - if the receiver has been disposed

     *
ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver

     *

     *
     * @since 3.6
     */
    public void setBottomMargin(int bottomMargin) {
        getImpl().setBottomMargin(bottomMargin);
    }

    public void setFont(Font font) {
        getImpl().setFont(font);
    }

    /**
     * Set the label's Image.
     * The value null clears it.
     *
     * @param image the image to be displayed in the label or null
     *
     * @exception SWTException

     *
ERROR_WIDGET_DISPOSED - if the receiver has been disposed

     *
ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver

     *

     */
    public void setImage(Image