fferUploader.drawWithShader(bufferbuilder.end());
	}

	public static void fill(GuiGraphics guiGraphics, float minX, float minY, float maxX, float maxY, int z, int colorARGB) {
		Matrix4f matrix4f = guiGraphics.pose().last().pose();

		BufferBuilder bufferbuilder = Tesselator.getInstance().getBuilder();
		RenderSystem.enableBlend();
		RenderSystem.defaultBlendFunc();
		RenderSystem.setShader(GameRenderer::getPositionColorShader);
		bufferbuilder.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR);
		bufferbuilder.vertex(matrix4f, minX, maxY, z).color(colorARGB).endVertex();
		bufferbuilder.vertex(matrix4f, maxX, maxY, z).color(colorARGB).endVertex();
		bufferbuilder.vertex(matrix4f, maxX, minY, z).color(colorARGB).endVertex();
		bufferbuilder.vertex(matrix4f, minX, minY, z).color(colorARGB).endVertex();
		BufferUploader.drawWithShader(bufferbuilder.end());
		RenderSystem.disableBlend();
	}

}
package com.github.elenterius.biomancy.client.render.block;

import net.minecraft.client.Minecraft;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.phys.Vec3;
import software.bernie.geckolib.animatable.GeoBlockEntity;
import software.bernie.geckolib.model.GeoModel;
import software.bernie.geckolib.renderer.GeoBlockRenderer;

public abstract class CustomGeoBlockRenderer<T extends BlockEntity & GeoBlockEntity> extends GeoBlockRenderer<T> {

	protected CustomGeoBlockRenderer(GeoModel<T> model) {
		super(model);
	}

	@Override
	public int getViewDistance() {
		return 96;
	}

	/**
	 * Max distance at which animations are still played.
	 *
	 * @return value smaller or equal to the view distance
	 */
	public int getAnimationDistance() {
		return 48; //FIXME: NOT FUNCTIONAL ATM
	}

	public boolean shouldAnimate(T blockEntity) {
		Vec3 cameraPos = Minecraft.getInstance().getBlockEntityRenderDispatcher().camera.getPosition();
		return Vec3.atCenterOf(blockEntity.getBlockPos()).closerThan(cameraPos, getAnimationDistance());
	}

}
package com.github.elenterius.biomancy.client.render.item;

import com.github.elenterius.biomancy.item.BEWLBlockItem;
import com.mojang.blaze3d.vertex.PoseStack;
import net.minecraft.client.Camera;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.client.renderer.MultiBufferSource;
import net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher;
import net.minecraft.server.packs.resources.ResourceManager;
import net.minecraft.world.item.ItemDisplayContext;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.level.block.entity.BlockEntity;
import software.bernie.geckolib.animatable.GeoBlockEntity;

public class BEWLItemRenderer extends BlockEntityWithoutLevelRenderer {

	public static final BEWLItemRenderer INSTANCE = new BEWLItemRenderer();
	private static final Camera itemCamera = new Camera();

	public BEWLItemRenderer() {
		super(Minecraft.getInstance().getBlockEntityRenderDispatcher(), Minecraft.getInstance().getEntityModels());
	}

	@Override
	public


// Describe implements prometheus.Collector
func (e *UsersExporter) Describe(ch chan<- *prometheus.Desc) {
	e.usersTotal.Describe(ch)
	e.usersByRole.Describe(ch)
	e.usersByStatus.Describe(ch)
	e.usersServiceUsers.Describe(ch)
	e.usersBlocked.Describe(ch)
	e.usersByIssued.Describe(ch)
	e.usersLastLogin.Describe(ch)
	e.usersAutoGroupsCount.Describe(ch)
	e.usersRestricted.Describe(ch)
	e.usersPermissions.Describe(ch)
	e.scrapeErrorsTotal.Describe(ch)
	e.scrapeDuration.Describe(ch)
}

// Collect implements prometheus.Collector
func (e *UsersExporter) Collect(ch chan<- prometheus.Metric) {
	timer := prometheus.NewTimer(e.scrapeDuration.WithLabelValues())
	defer timer.ObserveDuration()

	// Reset metrics before collecting new values
	e.usersTotal.Reset()
	e.usersByRole.Reset()
	e.usersByStatus.Reset()
	e.usersServiceUsers.Reset()
	e.usersBlocked.Reset()
	e.usersByIssued.Reset()
	e.usersLastLogin.Reset()
	e.usersAutoGroupsCount.Reset()
	e.usersRestricted.Reset()
	e.usersPermissions.Reset()

	ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
	defer cancel()

	users, err := e.client.Users.List(ctx)
	if err != nil {
		logrus.WithError(err).Error("Failed to fetch users")
		e.scrapeErrorsTotal.WithLabelValues("fetch_users").Inc()
		return
	}

	e.updateMetrics(users)

	// Collect all metrics
	e.usersTotal.Collect(ch)
	e.usersByRole.Collect(ch)
	e.usersByStatus.Collect(ch)
	e.usersServiceUsers.Collect(ch)
	e.usersBlocked.Collect(ch)
	e.usersByIssued.Collect(ch)
	e.usersLastLogin.Collect(ch)
	e.usersAutoGroupsCount.Collect(ch)
	e.usersRestricted.Collect(ch)
	e.usersPermissions.Collect(ch)
	e.scrapeErrorsTotal.Collect(ch)
	e.scrapeDuration.Collect(ch)
}

// updateMetrics updates Prometheus metrics based on users data
func (e *UsersExporter) updateMetrics(users []api.User) {
	totalUsers := len(users)

	// Count by categories
	roleCounts := make(map[string]int)
	statusCounts := make(map[string]int)
	serviceUserCount := 0
	regularUserCount := 0
	blockedCount := 0
	unblockedCount := 0
	issuedCounts := make(map[string]int)
	restrictedCount := 0
	unrestrictedCount := 0
	totalPermissionsCount := 0

	for _, user := range users {
		// Role distribution
		role := user.Role
		if role == "" {
			role = "unknown"
		}
		roleCounts[role]++

		// Status distribution
		status := user.Status
		if status == "" {
			status = "unknown"
		}
		statusCounts[string(status)]++

		// Service user classification
		if user.IsServiceUser != nil && *user.IsServiceUser {
			serviceUserCount++
		} else {
			regularUserCount++
		}

		// Blocked status
		if user.IsBlocked {
			blockedCount++
		} else {
			unblockedCount++
		}

		// Issued type distribution
		issued := "unknown"
		if user.Issued != nil {
			issued = *user.Issued
		}
		issuedCounts[issued]++

		// Restricted permissions
		if user.Permissions != nil && user.Permissions.IsRestricted {
			restrictedCount++
		} else {
			unrestrictedCount++
		}

		// Individual user metrics
		userLabels := []string{user.Id, user.Email, user.Name}

		// Last login timestamp
		if user.LastLogin != nil && !user.Las


local mono = require("e-ink.palette").mono()

return {
   normal = {
      a = { bg = mono[14], fg = mono[2], gui = "bold" },
      b = { bg = mono[4], fg = mono[14] },
      c = { bg = mono[1], fg = mono[12] },
   },
   insert = {
      a = { bg = mono[11], fg = mono[3], gui = "bold" },
      b = { bg = mono[4], fg = mono[14] },
      c = { bg = mono[1], fg = mono[12] },
   },
   visual = {
      a = { bg = mono[6], fg = mono[14], gui = "bold" },
      b = { bg = mono[4], fg = mono[14] },
      c = { bg = mono[1], fg = mono[12] },
   },
   replace = {
      a = { bg = mono[12], fg = mono[5],


 final int NODE_BITS_MASK = (1 << NODE_BITS_LENGTH) - 1;

    private static final int MAX_COUNTER = 1 << COUNT_BITS_LENGTH;

    private int nodeId;

    private AtomicInteger counter;

    private long lastMillisecond;

    private static Ids instance = new Ids();

    private Ids() {
        this.nodeId = new Random().nextInt(1023) + 1;
        this.counter = new AtomicInteger(0);
    }

    public static long get() {
        long id = 0;
        //正常获取
        try {
            id = instance.nextTicket();
        } catch (Exception e) {
            System.out.println(e.getMessage());
            e.printStackTrace();
        }
        //再试一次
        if (id == 0) {
            try {
                Thread.sleep(3);//等待3ms
                id = instance.nextTicket();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

        if (id == 0) {
            //应急措施：返回当前时间戳 + 随机数
            return System.currentTimeMillis() + (int) Math.random() * 10000;
        } else {
            return id;
        }
    }

    private synchronized long nextTicket() {
        // 时钟校验
        long currentMillisecond = System.currentTimeMillis();
        if (currentMillisecond < lastMillisecond) {
            throw new RuntimeException("time is out of sync by " + (lastMillisecond - currentMillisecond) + "ms");
        }
        long ts = currentMillisecond & TIME_BITS_MASK;

        // 时间戳移位到前面41位的地方
        ts = ts << TIME_BITS_SHIFT_SIZE;

        if (currentMillisecond == lastMillisecond) {
            // 只有同一毫秒内，才使用小序号
            int count = counter.incrementAndGet();
            //如果计数器达到上限
            if (count >= MAX_COUNTER) {
                //同一毫秒内，直接抛异常，由调用方处理
                throw new RuntimeException("too much requests cause counter overflow");
            }
        }else{
            // 计数器重设为0,不同毫秒，没有必要使用中间值
            this.counter.set(0);
        }

        // 节点信息移位到指定位置
        int node = (nodeId & NODE_BITS_MASK) << COUNT_BITS_LENGTH;

        lastMillisecond = currentMillisecond;
        return ts + node + counter.get();
    }

    /**
     * 获取指定时间点上产生的ID最小值
     *
     * @param timeMs
     * @return
     */
    public static long timeStartId(long timeMs) {
        // 时钟校验
        long ts = timeMs & TIME_BITS_MASK;

        // 时间戳移位到前面41位的地方
        ts = ts << TIME_BITS_SHIFT_SIZE;
        return ts;
    }
}
package me.hao0.wechat.core;

import me.hao0.wechat.loader.AccessTokenLoader;
import me.hao0.wechat.loader.TicketLoader;
import java.util.concurrent.ExecutorService;
import static me.hao0.common.util.Preconditions.*;

/**
 * 微信组件库配置构建器
 * Author: haolin
 * Email: haolin.h0@gmail.com
 * Date: 14/11/15
 * @since 1.4.0
 */
public final class WechatBuilder {

    private Wechat wechat;

    /**
     * 创建一个WechatBuilder
     * @param appId 微信appId
     * @param appSecret 微信appSecret
     * @return a builder
     */
    public static WechatBuilder newBuilder(String appId, String appSecret){
        checkNotNullAndEmpty(appId, "appId");


id might look like this: mantra_node1~mantraId
  // split the two values
  var idValues = _splitMantraId(data.id);

  // create the Url with the mantraId
  var url = config.mantra.url + ':' + config.mantra.port + '/' + idValues.mantraId;

  // return the promise that resolves when the compilation finishes and the server replies
  return postRequestHTTP(url, data, idValues.mantraNode);
};

var startContainer = function(aUrl, aMantraId, aContainerId) {

  // TODO: should we really parse the Url here? Or should we ask for the optional mantra_node instead?
  var urlObject = url.parse(aUrl, true);
  var mantraUrl = config.mantra.url + ':' + config.mantra.port + '/' + aMantraId + '/' + aContainerId + '/start';

  var lHeaders = {
    cookie :  config.mantra.cookieName + '=' + urlObject.query.mantra
  };

  return request.postAsync({url: mantraUrl, headers: lHeaders})
    .spread(function (res, resBody) {

      // handle the error cases
      if (res.statusCode >= 400) {
        // create an error object
        var errPayload = {
          statusCode: res.statusCode,
          msg: resBody.msg
        };

        // reject the promise
        return Promise.reject(errPayload);
      }
      else {
        var successPayload = {
          statusCode: res.statusCode,
          msg: res.statusMessage
        };
        return successPayload;
      }
    });
};

// TODO: consider having a single start/stop method; and don't construct the Url from scratch as it's provided by Mantra

var stopContainer = function(aUrl, aMantraId, aContainerId) {

  // TODO: should we really parse the Url here? Or should we ask for the optional mantra_node instaed?
  var urlObject = url.parse(aUrl, true);
  var mantraUrl = config.mantra.url + ':' + config.mantra.port + '/' + aMantraId + '/' + aContainerId + '/stop';

  var lHeaders = {
    cookie :  config.mantra.cookieName + '=' + urlObject.query.mantra
  };

  return request.postAsync({url: mantraUrl, headers: lHeaders})
    .spread(function (res, resBody) {

      // handle the error cases
      if (res.statusCode >= 400) {
        // create an error object
        var errPayload = {
          statusCode: res.statusCode,
          msg: resBody.msg
        };

        // reject the promise
        return Promise.reject(errPayload);
      }
      else {
        var successPayload = {
          statusCode: res.statusCode,
          msg: res.statusMessage
        };
        return successPayload;
      }
    });
};

exports.compile = compile;
exports.executeCommand = executeCommand;
exports.startContainer = startContainer;
exports.stopContainer = stopContainer;
import { useEffect, useState } from "react"
import {
  Select,
  SelectContent,
  SelectItem,
  SelectTrigger,
  SelectValue,
} from "@/components/ui/select"

export default function Exams({
  w,
  examSchedule,
  setExamSchedule,
  examSemesters,
  setExamSemesters,
  selectedExamSem,
  setSelectedExamSem,
  selectedExamEvent,
  setSelectedExamEvent
}) {
  const [examEvents, setExamEvents] = useState([])
  const [loading, setLoading] = useState(false)

  useEffect(() => {
    // Fetch semesters on component mount
    const fetchSemesters = async () => {
      if (examSemesters.length === 0) {
        const examSems = await w.get_semesters_for_exam_events()
        setExamSemesters(exam


							// number of pieces of the interval
	for (n = 1; n <= part; n <<= 1)
		part -= n;

	double n2 = 2.0 / n;							// length of the part
	lo = ((double) part * n2 - 1.0);
	hi = ((double) (part + 1) * n2 - 1.0);
}

///
/// Get the position on the edge
/// @param part[in] ID of the position on the edge (see PIC)
/// @param x[out] position on the edge
static void get_edge_part(int part, double &x) {
	double lo, hi;
	get_interval_part(part, lo, hi);
	x = (lo + hi) / 2.0;
}
*/

// edge functions

bool test_edge_ced(Mesh *mesh, Shapeset *shapeset) {
//	for (int iedge = 0; iedge < Hex::NUM_EDGES; iedge++) {
	int iedge = 0; {
//		for (int ori = 0; ori < RefHex::get_edge_orientations(); ori++) {
		int ori = 0; {
			// indices of constraining functions
			int *cng_idx = shapeset->get_edge_indices(iedge, ori, H3D_MAX_ELEMENT_ORDER);

//			for (int order = 2; order <= H3D_MAX_ELEMENT_ORDER; order++) {		// edge functions on hex start with order 2
			int order = 2; {
//				for (int p = 0; p <= 14; p++) {								// 3 levels
				int p = 2; {
					Part part;
					part.part = p;
					int ced_idx = shapeset->get_constrained_edge_index(iedge, ori, order, part);

					double lo, hi;
					get_interval_part(part.part, lo, hi);

					double vfn[2] = {
						shapeset->get_fn_value(cng_idx[order - 2], lo, -1.0, -1.0, 0),
						shapeset->get_fn_value(cng_idx[order - 2], hi, -1.0, -1.0, 0)
					};

					info("edge = %d, ori = %d, order = %02d, part = %02d (% lf - % lf), (cng_idx = %03d)",
						iedge, ori, order, part, lo, hi, cng_idx[order - 2]);

					int np = 10;								// number of points to check values in
					double x = lo;								// position on the part
					double h = 2.0 / np;
					for (int i = 0; i <= np; i++) {
						double ref_x = (h * i) - 1.0;			// position on the interval [-1, 1]

						// compose the edge function (linear part + ced edge function)
						double ced_val =
							vfn[0] * shapeset->get_fn_


heck: |                  | :material-check: |                      |                                            |
|                                           | Android          | BR/EDR   |                  |                  |                  |                      |                                            |
| [Terios T3 / ShanWan BM-769][terios_t3]   | Android (iPhone) | BLE      |                  |                  |                  |                      |                                            |

[datafrog_ps4]: https://www.aliexpress.us/item/3256806233659084.html

[datafrog_switch]: https://www.aliexpress.us/item/3256805448827549.html

[gamesir_t3s]: https://www.gamesir.hk/products/gamesir-t3s-multi-platform-game-controller

[gamesir_nova_lite]: https://www.gamesir.hk/products/gamesir-nova-lite

[nova_lite_community]: https://discord.com/channels/775177861665521725/1265729139584012371

[hs_sw510]: https://new.tvc-mall.com/details/hs-sw510-wireless-controller-for-nintendo-switch-bluetooth-multi-platform-gamepad-joystick-with-turbo-function-black-white-sku681600362b.html

[terios_t3]: https://www.aliexpress.us/item/2251832602044731.html

## Bluetooth gamepads and their protocol

Most gamepads, as of 2024, use BR/EDR (AKA Bluetooth Classic). Only a few use BLE.
Worth noting is that BR/EDR is only supported on ESP32, Pico W and Pico 2 W, but **NOT** in ESP32-S3 / ESP32-C3 /
ESP32-C6 / ESP32-H2.

| Chip     | BR/EDR           | BLE              |
|----------|------------------|------------------|
| ESP32    | :material-check: | :material-check: |
| ESP32-S3 |                  | :material-check: |
| ESP32-C3 |                  | :material-check: |
| ESP32-C6 |                  | :material-check: |
| ESP32-H2 |                  | :material-check: |
| Pico W   | :material-check: | :material-check: |
| Pico 2 W | :material-check: | :material-check: |

Non-comprehensive list of supported Bluetooth gamepads their protocols:

| Gamepad                 | BR/EDR               | BLE                  |
|-------------------------|----------------------|----------------------|
| DualSense (PS5)         | :material-check:     |                      |
| DualShock 4 (PS4)       | :material-check:     |                      |
| DualShock 3 (PS3)       | :material-check:     |                      |
| Nintendo Switch Pro     | :material-check:     |                      |
| Nintendo Switch JoyCons | :material-check:     |                      |
| Nintendo Wii U Pro      | :material-check:     |                      |
| Nintendo Wii Remote     | :material-check:     |                      |
| Nintendo Balance Board  | :material-check:     |                      |
| Xbox Wireless           | :material-check:*    | :material-check:*    |
| Xbox Adaptive           |                      | :material-check:*    |
| Steam                   |                      | :material-check:**   |
| Stadia                  |                      | :material-check:***  |
| Android                 | :material-check:**** | :material-check:**** |
| 8BitDo


t must match the given time format
   * @param name attribute name
   * @param format time format to match
   * @param example example time to use for generated bodies
   */
  fun time(name: String, format: String, example: Date): FormPostBuilder {
    return time(name, format, example, TimeZone.getDefault())
  }

  /**
   * Attribute that must match the given time format
   * @param name attribute name
   * @param format time format to match
   * @param example example time to use for generated bodies
   * @param timeZone time zone used for formatting of example time
   */
  fun time(name: String, format: String, example: Date, timeZone: TimeZone): FormPostBuilder {
    val instance = FastDateFormat.getInstance(format, timeZone)
    body[name] = listOf(instance.format(example))
    matchers.addRule(ROOT + name, PM.time(format))
    return this
  }

  /**
   * Attribute that must be encoded as a hexadecimal value
   * @param name attribute name
   */
  fun hexValue(name: String): FormPostBuilder {
    generators.addGenerator(Category.BODY, ROOT + name, RandomHexadecimalGenerator(10))
    return hexValue(name, "1234a")
  }

  /**
   * Attribute that must be encoded as a hexadecimal value
   * @param name attribute name
   * @param hexValue example value to use for generated bodies
   */
  fun hexValue(name: String, hexValue: String): FormPostBuilder {
    if (!hexValue.matches(HEXADECIMAL)) {
      throw InvalidMatcherException("Example \"$hexValue\" is not a hexadecimal value")
    }
    body[name] = listOf(hexValue)
    matchers.addRule(ROOT + name, PM.stringMatcher("[0-9a-fA-F]+"))
    return this
  }

  /**
   * Attribute that must be encoded as an UUID
   * @param name attribute name
   */
  fun uuid(name: String): FormPostBuilder {
    generators.addGenerator(Category.BODY, ROOT + name, UuidGenerator())
    return uuid(name, "e2490de5-5bd3-43d5-b7c4-526e33f71304")
  }

  /**
   * Attribute that must be encoded as an UUID
   * @param name attribute name
   * @param uuid example UUID to use for generated bodies
   */
  fun uuid(name: String, uuid: UUID): FormPostBuilder {
    return uuid(name, uuid.toString())
  }

  /**
   * Attribute that must be encoded as an UUID
   * @param name attribute name
   * @param uuid example UUID to use for generated bodies
   */
  fun uuid(name: String, uuid: String): FormPostBuilder {
    if (!uuid.matches(DslPart.UUID_REGEX)) {
      throw InvalidMatcherException("Example \"$uuid\" is not an UUID")
    }
    body[name] = listOf(uuid)
    matchers.addRule(ROOT + name, PM.stringMatcher(DslPart.UUID_REGEX.pattern))
    return this
  }

  /**
   * Attribute that must include the provided string value
   * @param name attribute name
   * @param value Value that must be included
   */
  fun includesString(name: String, value: String): FormPostBuilder {
    body[name] = listOf(value)
    matchers.addRule(ROOT + name, PM.includesStr(value))
    return this
  }

  /**
   * Adds an attribute that will have it's value injected from the provider state
   * @param name Attribute name
   * @param expression Expression to be evaluated from the provider state
   * @param example Example value to be used in the consumer test
   */
  fun parameterFromProviderState(name: String, expression: String, example: String): FormPostBuilder {
    generators.addGenerator(Category.BODY, ROOT + name, ProviderStateGenerator(expression, DataType.STRING))
    body[name] = listOf(example)
    return this
  }


QrNeighbourDirection.left);

  /// Returns `true` if the set containts `right` direction.
  @pragma('vm:prefer-inline')
  bool get atRight => contains(PrettyQrNeighbourDirection.right);

  /// Returns `true` if the set containts `bottomLeft` direction.
  @pragma('vm:prefer-inline')
  bool get atBottomLeft => contains(PrettyQrNeighbourDirection.bottomLeft);

  /// Returns `true` if the set containts `bottom` direction.
  @pragma('vm:prefer-inline')
  bool get atBottom => contains(PrettyQrNeighbourDirection.bottom);

  /// Returns `true` if the set containts `bottomRight` direction.
  @pragma('vm:prefer-inline')
  bool get atBottomRight => contains(PrettyQrNeighbourDirection.bottomRight);
}
import 'package:flutter/material.dart';
import 'package:screen_protector/screen_protector.dart';

class PreventScreenshotPage extends StatefulWidget {
  const PreventScreenshotPage({Key? key}) : super(key: key);

  @override
  _PreventScreenshotPageState createState() => _PreventScreenshotPageState();
}

class _PreventScreenshotPageState extends State<PreventScreenshotPage> {
  @override
  void initState() {
    // For iOS only.
    _addListenerPreventScreenshot();

    // For iOS and Android
    _preventScreenshotOn();
    _checkScreenRecording();
    super.initState();
  }

  @override
  void dispose() {
    // For iOS only.
    _removeListenerPreventScreenshot();

    // For iOS and Android
    _preventScreenshotOff();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        centerTitle: true,
        title: const Text('Prevent Screenshot'),
      ),
      body: const Center(
        child: Text('Secure Screen'),
      ),
    );
  }

  void _checkScreenRecording() async {
    final isRecording = await ScreenProtector.isRecording();

    if (isRecording) {
      ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
        content: Text('Screen Recording...'),
      ));
    }
  }

  void _preventScreenshotOn() async =>
      await ScreenProtector.preventScreenshotOn();

  void _preventScreenshotOff() async =>
      await ScreenProtector.preventScreenshotOff();

  void _addListenerPreventScreenshot() async {
    ScreenProtector.addListener(() {
      // Screenshot
      debugPrint('Screenshot:');
      ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
        content: Text('Screenshot!'),
      ));
    }, (isCaptured) {
      // Screen Record
      debugPrint('Screen Record:');
      ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
        content: Text('Screen Record!'),
      ));
    });
  }

  void _removeListenerPreventScreenshot() async {
    ScreenProtector.removeListener();
  }
}
// Copyright (C) 2022-2024 Yaroslav Pronin <proninyaroslav@mail.ru>
//
// This file is part of Blink Comparison.
//
// Blink Comparison is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Blink Comparison 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 General Public License for more details.
//
// You should h


import bluetooth
import threading

client_sock = None
server_sock = None
sock = None
target_name = "DESKTOP-CSMTRA1"

def start_server():
    server_sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM )
    port = 1
    server_sock.bind(("",port))
    server_sock.listen(1)

    client_sock,address = server_sock.accept()
    print ("Accepted connection from ",address)

def start_client():
    target_address = None

    nearby_devices = bluetooth.discover_devices()

    for bdaddr in nearby_devices:
        print(bluetooth.lookup_name( bdaddr ))
        if target_name == bluetooth.lookup_name( bdaddr ):
            target_address = bdaddr
            break

    if target_address is not None:
        print ("found target bluetooth device with address ", target_address)
    else:
        print ("could not find target bluetooth device nearby")

    port = 1

    sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM )
    sock.connect((target_address, port))

sth = threading.Thread(target=start_server)
cth = threading.Thread(target=start_client)

sth.start()
cth.start()

cth.join()
sth.join()

#start_server()
#start_client()

i = 0
try:
    while True:
        tosend = "Sent to" + target_name +  str(i)
        sock.send(tosend)

        data = client_sock.recv(1024)
        if not data:
            break
        print("Received from " + target_name, data, " ", str(i))
        i+=1
except OSError:
    pass

print("Disconnected.")

client_sock.close()
server_sock.close()
sock.close()
print("All done.")


nterpolate(xRaw, yRaw)
            "sp", "spline" -> sp.interpolate(xRaw, yRaw)
            else -> li.interpolate(xRaw, yRaw)
        }
        return psf
    }

    /**
     * Check if it's quiet enough such that we can skip the drawing
     * @param fft Fft
     * @return true if it's quiet, false otherwise
     */
    fun isQuiet(fft: DoubleArray): Boolean {
        val threshold = 5f
        fft.forEach { if (it > threshold) return false }
        return true
    }

    /**
     * Convert Polar to Cartesian
     * @param radius Radius
     * @param theta Theta
     * @return FloatArray of (x,y) of Cartesian
     */
    fun toCartesian(radius: Float, theta: Float): FloatArray {
        val x = radius * cos(theta)
        val y = radius * sin(theta)
        return floatArrayOf(x, y)
    }

    /**
     * Patch the Fft so that the start and the end connect perfectly. Use this with `interpolateFftCircle()`
     *
     * `[0, 1, ..., n] -> [n-1, 0, 1, ..., n-1, 0, 1]`
     *
     * @param fft Fft
     * @return CircleFft
     */
    fun getCircleFft(fft: DoubleArray): DoubleArray {
        val patched = DoubleArray(fft.size + 2)
        fft.forEachIndexed { index, d -> patched[index + 1] = d }
        patched[0] = fft[fft.lastIndex - 1]
        patched[patched.lastIndex - 1] = fft[0]
        patched[patched.lastIndex] = fft[1]
        return patched
    }

    /**
     * Patch the Fft to a MirrorFft
     *
     * @param fft Fft
     * @param mode when 0 -> do nothing
     *             when 1 ->
     *              `[0, 1, ..., n] -> [n, ..., 1, 0, 0, 1, ..., n]`
     *             when 2 ->
     *              `[0, 1, ..., n] -> [0, 1, ..., n, n, ..., 1, 0]`
     *             when 3 ->
     *             `[0, 1, ..., n] -> [n/2, ..., 1, 0, 0, 1, ..., n/2]`
     *             when 4 ->
     *             `[0, 1, ..., n] -> [0, 1, ..., n/2, n/2, ..., 1, 0]`
     * @return MirrorFft
     */
    fun getMirrorFft(fft: DoubleArray, mode: Int = 1): DoubleArray {
        return when (mode) {
            1 -> {
                fft.sliceArray(0..fft.lastIndex).reversedArray() + fft.sliceArray(0..fft.lastIndex)
            }
            2 -> {
                fft.sliceArray(0..fft.lastIndex) + fft.sliceArray(0..fft.lastIndex).reversedArray()
            }
            3 -> {
                fft.sliceArray(0..fft.lastIndex / 2).reversedArray() + fft.sliceArray(0..fft.lastIndex / 2)
            }
            4 -> {
                fft.sliceArray(0..fft.lastIndex / 2) + fft.sliceArray(0..fft.lastIndex / 2).reversedArray()
            }
            else -> fft
        }
    }

    /**
     * Boost high values while suppress low values, generally give a powerful feeling
     * @param fft Fft
     * @param param Parameter, adjust to fit your liking
     * @return PowerFft
     */
    fun getPowerFft(fft: DoubleArray, param: Double = 100.0): DoubleArray {
        return fft.map { it * it / param }.toDoubleArray()
    }

    /**
     * A helper to Rotate the canvas, use `Rotate` painter instead if you want to rotate the entire painter(s)
     * @param canvas Canvas
     * @param rot Rotation in degree
     * @param xR Rotation point X, 1f = `canvas.width`
     * @param yR


out(default_pipeline(milkshell.stdin()))",
        /*
             inp, out_writer = milkshell.connect_pair(sys.argv[1], sys.argv[2])\n\
             res = default_pipeline(inp)\n\
             milkshell.sendall(res, out_writer)\n\

             def milkshell.run(pipeline): list(pipeline(None))
        */
        prelude = prelude,
        default_command = default_command
    )
}

pub(crate) fn codegen(
    env: Env,
    pipeline: Pipeline,
    inp: Option<Milkaddr>,
    out: Option<Milkaddr>,
) -> String {
    match &env {
        Env::Python => codegen_python(env, pipeline, inp, out),
        Env::Javascript => codegen_javascript(env, pipeline, inp, out),
    }
}
const GREEN: u32 = 0x00FF00FF;

fn main() -> Result<(), agpu::BoxError> {
    let program = agpu::GpuProgram::builder("Triangle").build()?;

    let example_pipeline = program
        .gpu
        .new_pipeline("Example pipeline")
        .with_vertex_fragment(include_bytes!("shader/hello-triangle.wgsl"))
        .create();

    program.run_draw(move |mut frame| {
        // Create the render pass
        let mut render_pass = frame.render_pass_cleared("Triangle pass", GREEN).begin();
        // Set the pipeline and render
        render_pass.set_pipeline(&example_pipeline).draw_triangle();
    })
}
<reponame>tirust/msp432e4
#[doc = r"Value read from the register"]
pub struct R {
    bits: u32,
}
#[doc = r"Value to write to the register"]
pub struct W {
    bits: u32,
}
impl super::HB8CFG2 {
    #[doc = r"Modifies the contents of the register"]
    #[inline(always)]
    pub fn modify<F>(&self, f: F)
    where
        for<'w> F: FnOnce(&R, &'w mut W) -> &'w mut W,
    {
        let bits = self.register.get();
        self.register.set(f(&R { bits }, &mut W { bits }).bits);
    }
    #[doc = r"Reads the contents of the register"]
    #[inline(always)]
    pub fn read(&self) -> R {
        R {
            bits: self.register.get(),
        }
    }
    #[doc = r"Writes to the register"]
    #[inline(always)]
    pub fn write<F>(&self, f: F)
    where
        F: FnOnce(&mut W) -> &mut W,
    {
        self.register.set(
            f(&mut W {
                bits: Self::reset_value(),
            })
            .bits,
        );
    }
    #[doc = r"Reset value of the register"]
    #[inline(always)]
    pub const fn reset_value() -> u32 {
        0
    }
    #[doc = r"Writes the reset value to the register"]
    #[inline(always)]
    pub fn reset(&self) {
        self.register.set(Self::reset_value())
    }
}
#[doc = "Possible values of the field `EPI_HB8CFG2_MODE`"]
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum EPI_HB8CFG2_MODER {
    #[doc = "ADMUX - AD\\[7:0\\]"]
    EPI_HB8CFG2_MODE_ADMUX,
    #[doc = "ADNONMUX - D\\[7:0\\]"]
    EPI_HB8CFG2_MODE_AD,
    #[doc = r"Reserved"]
    _Reserved(u8),
}
impl EPI_HB8CFG2_MODER {
    #[doc = r"Value of the field as raw bits"]
    #[inline(always)]
    pub fn bits(&self) -> u8 {
        match *self {
            EPI_HB8CFG2_MODER::EPI_HB8CFG2_MODE_ADM


"+e);return t},f=(e,r)=>{var t=e[r];return Object.keys(t).reduce(((e,r)=>!e||!t[e].loaded&&a(e,r)?r:e),0)},c=(e,r,t,n)=>"Unsatisfied version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" (required "+i(n)+")",d=(e,r,t,n)=>{var o=f(e,t);return l(n,o)||"undefined"!=typeof console&&console.warn&&console.warn(c(e,t,o,n)),p(e[t][o])},s=(e,r,t)=>{var n=e[r];return(r=Object.keys(n).reduce(((e,r)=>!l(t,r)||e&&!a(e,r)?e:r),0))&&n[r]},p=e=>(e.loaded=1,e.get()),v=(h=e=>function(r,t,n,o){var a=P.I(r);return a&&a.then?a.then(e.bind(e,r,P.S[r],t,n,o)):e(r,P.S[r],t,n,o)})(((e,r,t,n)=>(u(e,t),d(r,0,t,n)))),b=h(((e,r,t,n,o)=>{var a=r&&P.o(r,t)&&s(r,t,n);return a?p(a):o()})),y={},g={431:()=>b("default","lodash",[1,4,17,4],(()=>P.e(486).then((()=>()=>P(486))))),900:()=>v("default","@jupyter-widgets/base",[,[-1,7,0,0],[0,2,0,0],2]),832:()=>v("default","@lumino/widgets",[1,1,37,2])},m={423:[832],855:[431],900:[900]},P.f.consumes=(e,r)=>{P.o(m,e)&&m[e].forEach((e=>{if(P.o(y,e))return r.push(y[e]);var t=r=>{y[e]=0,P.m[e]=t=>{delete P.c[e],t.exports=r()}},n=r=>{delete y[e],P.m[e]=t=>{throw delete P.c[e],r}};try{var o=g[e]();o.then?r.push(y[e]=o.then(t).catch(n)):t(o)}catch(e){n(e)}}))},(()=>{var e={860:0};P.f.j=(r,t)=>{var n=P.o(e,r)?e[r]:void 0;if(0!==n)if(n)t.push(n[2]);else if(900!=r){var o=new Promise(((t,o)=>n=e[r]=[t,o]));t.push(n[2]=o);var a=P.p+P.u(r),i=new Error;P.l(a,(t=>{if(P.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var o=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+o+": "+a+")",i.name="ChunkLoadError",i.type=o,i.request=a,n[1](i)}}),"chunk-"+r,r)}else e[r]=0};var r=(r,t)=>{var n,o,[a,i,l]=t,u=0;if(a.some((r=>0!==e[r]))){for(n in i)P.o(i,n)&&(P.m[n]=i[n]);l&&l(P)}for(r&&r(t);u<a.length;u++)o=a[u],P.o(e,o)&&e[o]&&e[o][0](),e[o]=0},t=self.webpackChunkjupyterlab_plotly=self.webpackChunkjupyterlab_plotly||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),P.nc=void 0;var S=P(78);(_JUPYTERLAB=void 0===_JUPYTERLAB?{}:_JUPYTERLAB)["jupyterlab-plotly"]=S})();(self.webpackChunkjupyterlab_plotly=self.webpackChunkjupyter


#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <unistd.h>
#include <fcntl.h> //非阻塞宏
#include <sys/ioctl.h>
#include <sys/epoll.h>
#include <sys/socket.h>
#include <netinet/ip.h>
#include <arpa/inet.h>
#include <pthread.h>

#include "ws_server.h"

#define WSS_INFO(...) fprintf(stdout, "[WSS_INFO] %s(%d): ", __FUNCTION__, __LINE__),fprintf(stdout, __VA_ARGS__)
#define WSS_ERR(...) fprintf(stderr, "[WSS_ERR] %s(%d): ", __FUNCTION__, __LINE__),fprintf(stderr, __VA_ARGS__)

//服务器副线程,负责检测 数据接收 和 客户端断开
static void* server_thread2(void *argv);

//抛线程工具
static void new_thread(void *obj, void* (*callback)(void*))
{
    pthread_t th;
    pthread_attr_t attr;
    int ret;
    //禁用线程同步,线程运行结束后自动释放
    pthread_attr_init(&attr);
    pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
    //抛出线程
    ret = pthread_create(&th, &attr, callback, (void *)obj);
    if (ret != 0)
        WSS_ERR("pthread_create failed !! %s\r\n", strerror(ret));
    //attr destroy
    pthread_attr_destroy(&attr);
}

//注意在"epoll_wait时"或"目标fd已close()"的情况下会ctrl会失败
static void _epoll_ctrl(int fd_epoll, int fd, uint32_t event, int ctrl, void *ptr)
{
    struct epoll_event ev;
    ev.events = event;
    if (ptr)
        ev.data.ptr = ptr;
    else
        ev.data.fd = fd;
    if (epoll_ctl(fd_epoll, ctrl, fd, &ev) != 0)
        WSS_ERR("epoll ctrl %d error !!\r\n", ctrl);
}

/*
 *  接收数据,自动连接客户端
 *  返回:
 *      >0 有数据
 *      =0 无数据
 *      -1 连接异常
 */
static int client_recv(Ws_Client *wsc)
{
    int ret = 0;
    Ws_DataType retPkgType = WDT_NULL;
    char *buff = (char*)calloc(WS_SERVER_PKG, 1);

    if (!buff)
    {
        WSS_ERR("calloc %dbytes failed\r\n", WS_SERVER_PKG);
        return -1;
    }

    do
    {
        ret = ws_recv(wsc->fd, buff, WS_SERVER_PKG, &retPkgType);
        //这可能是一包客户端请求
        if (!wsc->isLogin &&
            ret < 0 &&
            strncmp(buff, "GET", 3) == 0 &&
            strstr(buff, "Sec-WebSocket-Key"))
        {
            //构建回复
            if (ws_replyClient(wsc->fd, buff, -ret, wsc->wss->path) > 0)
            {
                //这个延时很有必要,否则下面onLogin里面发东西客户端可能收不到
                ws_delayms(5);
                wsc->isLogin = true;
                //回调
                if (wsc->wss->onLogin)
                    wsc->wss->onLogin(wsc);
                ret = 0;
                break;
            }
            //websocket握手失败,标记断开类型
            else
            {
                wsc->exitType = WET_LOGIN;
                ret = -1;
                break;
            }
        }
        //接收数据量统计
        if (ret != 0)
            wsc->recvBytes += ret > 0 ? ret : (-ret);
        //消息回调
        if (wsc->wss->onMessage)
            wsc->wss->onMessage(wsc, buff, ret, retPkgType);
        //断连协议,标记断开类型
        if (retPkgType == WDT_DISCONN)
        {
            wsc->exitType = WET_DISCONNECT;
            ret = -1;
            break;
        }
        //有效的一次数据接收返回1
        if (ret != 0)
            ret = 1;
    } while (0);
    free(buff);
    //正常返回
    return ret;
}

//onMessage异步回调
// static void client_onMessage(void *argv)
// {
//     Ws_Client *wsc = (Ws_Client *)argv;
//     int ret = 1;
//     //收完为止
//     while (ret > 0)
//         ret = client_recv(wsc);
// }

//onExit异步回调
static void* client_onExit(void *argv)
{
    Ws_Client *wsc = (Ws_Client *)argv;
    if (wsc->wss->onExit)
        wsc->wss->onExit(wsc, wsc->exitType);
    //重置结构体,给下次使用
    memset(wsc, 0, sizeof(Ws_Client));
    return NULL;
}

//取得空闲的坑,返回序号
static int client_get(Ws_Server *wss, int fd, uint32_t ip, int port)
{
    int i;
    for (i = 0; i < WS_SERVER_CLIENT; i++)
    {
        if (!wss->client[i].fd &&
            !wss->client[i].isExiting &&
            !wss->client[i].wst)
        {
            memset(&wss->client[i], 0, sizeof(Ws_Client));
            wss->client[i].fd = fd;
            *((uint32_t*)(wss->client[i].ip)) = ip;
            wss->client[i].port = port;
            wss->client[i].wss = wss;
            wss->client[i].priv = wss->priv;
            wss->client[i].index = ++wss->clientCount;
            return i;
        }
    }
    WSS_ERR("failed, out of range(%d) !!\r\n", WS_SERVER_CLIENT); //满员
    return -1;
}

//共用代码块,完成客户端加人、客户端结构初始化、注册epoll监听
#define COMMON_CODE() \
wsc->wst = wst;\
wst->clientCount += 1;\
_epoll_ctrl(wst->fd_epoll, wsc->fd, EPOLLIN, EPOLL_CTL_ADD, wsc);

//添加客户端
static void client_add(Ws_Server *wss, int fd, uint32_t ip, int port)
{
    in


}
		case GDM_WARNING_PLAYING_COOP_SOLO: {
			message = "#str_online_lotw_solo_warning_alt_05";
			break;
		}
		case GDM_MULTI_COOP_QUIT_LOSE_LEADERBOARDS: {
			message = "#str_online_confirm_coop_quit_game";
			break;
		}
		case GDM_CORRUPT_CONTINUE: {
			message = "#str_corrupt_save_load";
			break;
		}
		case GDM_MULTI_VDM_QUIT_LOSE_LEADERBOARDS: {
			message = "#str_online_confirm_quit_game";
			break;
		}
		case GDM_WARNING_PLAYING_VDM_SOLO: {
			message = "#str_online_cr_custom_game_no_stats";
			break;
		}
		case GDM_NO_GUEST_SUPPORT: {
			message = "#str_dlg_ps3_incorrect_online_permissions";
			break;
		}
		case GDM_DISC_SWAP_CONFIRMATION: {
			message = "#str_dlg_disc_swap_confirmation";
			break;
		}
		case GDM_ERROR_LOADING_PROFILE: {
			message.Append( "error_loading_profile" );
			break;
		}
		case GDM_CANNOT_INVITE_LOBBY_FULL: {
			message = "#str_online_join_error_full";
			break;
		 }
		case GDM_WARNING_FOR_NEW_DEVICE_ABOUT_TO_LOSE_PROGRESS: {
			message = "#str_dlg_360_new_device_selected";
			break;
		}
		case GDM_DISCONNECTED: {
			message = "#str_online_connection_error_03";
			break;
		}
		case GDM_INCOMPATIBLE_NEWER_SAVE: {
			message = "#str_dlg_newer_incompatible_savegame";
			break;
		}
		case GDM_ACHIEVEMENTS_DISABLED_DUE_TO_CHEATING: {
			message = "#str_dlg_achievements_disabled_due_to_cheating";
			break;
		}
		case GDM_INCOMPATIBLE_POINTER_SIZE: {
			message = "#str_dlg_pointer_size_mismatch";
			break;
		}
		case GDM_TEXTUREDETAIL_RESTARTREQUIRED: {
			message = "#str_swf_texture_restart";
			break;
		}
		case GDM_TEXTUREDETAIL_INSUFFICIENT_CPU: {
			message = "#str_swf_insufficient_cores";
			break;
		}
		case GDM_CALCULATING_BENCHMARK: {
			message = "#str_swf_calc_benchmark";
			break;
		}
		case GDM_DISPLAY_BENCHMARK: {
			message = "BENCHMARK SCORE = ";
			break;
		}
		case GDM_DISPLAY_CHANGE_FAILED: {
			message = "#str_swf_display_changes_failed";
			break;
		}
		case GDM_GPU_TRANSCODE_FAILED: {
			message = "#str_swf_gpu_transcode_failed";
			break;
		}
		case GDM_OUT_OF_MEMORY: {
			message = "#str_swf_failed_level_load";
			break;
		}
		case GDM_CORRUPT_PROFILE: {
			message = "#str_dlg_corrupt_profile";
			break;
		}
		case GDM_PROFILE_TOO_OUT_OF_DATE_DEVELOPMENT_ONLY: {
			message = "#str_dlg_profile_too_out_of_date_development_only";
			break;
		}
		case GDM_INSTALLING_TROPHIES


间，但用户界面不直接显示电话号码。
   - 用户为每个联系人分配有意义的名称（petname），这些名称是本地化的，不具有全局意义。
   - UI通过这种映射来搜索和选择联系人，并在来电或查看通话记录时显示名称。
   - 如果petname更新，通话记录中的名称也会自动更新。

2. **智能手机联系人列表的局限**：
   - 虽然接近petnames系统，但还不够完善。
   - 需要进一步探讨如何完成这一系统。

3. **场景描述**：
   - Alyssa接到一个电话，显示为“Mom”，这是她为电话号码分配的petname。
   - 通话中，Alyssa的母亲Dr. Nym提到需要帮助组织一个数学讲座，并询问Alyssa的朋友是否感兴趣。
   - Alyssa推荐了她的朋友Ben Bitdiddle。

4. **Dr. Nym的联系人搜索**：
   - Dr. Nym在联系人列表中搜索“Ben”。
   - “personal contacts”部分显示她认识的人的petnames。
   - “network contacts”部分显示她本地存储的实体发布的edge names。
   - Dr. Nym看到“Alyssa ⇒ Ben Bitdiddle”，确认这是她女儿的朋友，并拨打电话。

5. **Ben的来电显示**：
   - Ben看到来电显示为“Alyssa ⇒ Jane Nym”，并有小字“Faculty ⇒ Dr. Nym”。
   - 尽管Ben没有保存Dr. Nym的本地petname，但他通过Alyssa和大学Faculty目录记住了Dr. Nym的身份。

6. **Ben保存Dr. Nym的联系信息**：
   - Ben决定将Dr. Nym的联系信息永久保存。
   - 在编辑界面中，系统建议本地名称为“Jane Nym”，Ben决定保留此名称。
   - Ben还决定将此联系信息作为edge name分享给其他联系人，并将edge name编辑为“Dr. Nym”。

7. **Dr. Nym订购披萨**：
   - Dr. Nym通过扫描QR码找到“Pizza Piano”的电话号码，并确认其身份后拨打电话订购披萨。
   - 她告知收银员Ben将负责取披萨，并提供Ben的电话号码。

8. **Ben接到披萨店的电话**：
   - Ben接到一个未保存的电话号码，Caller ID显示为“Pizza Piano.2”。
   - 由于Ben已与另一家Pizza Piano分店有过联系，


histling Grove"
kalimdor[5017]="The Scorched Plain"
kalimdor[5018]="Ashen Lake"
kalimdor[5019]="Sanctuary of Malorne"
kalimdor[5020]="The Flamewake"
kalimdor[5021]="The Searing Gateway"
kalimdor[5022]="Rim of the World"
kalimdor[5023]="The Emerald Summit"
kalimdor[5024]="Dreamer's Rest"
kalimdor[5025]="The Shimmering Deep"
kalimdor[5026]="Rustmaul Dive Site"
kalimdor[5027]="Splithoof Heights"
kalimdor[5028]="Southsea Holdfast"
kalimdor[5029]="The Admiral's Den"
kalimdor[5032]="Hyjal Barrow Dens"
kalimdor[5033]="Twilight Command Post"
kalimdor[5034]="Uldum"
kalimdor[5036]="Darkmist Ruins"
kalimdor[5037]="Lake Edunel"
kalimdor[5038]="Nordrassil"
kalimdor[5039]="Sulfuron Spire"
kalimdor[5040]="The Throne of Flame"
kalimdor[5041]="Fizzle & Pozzik's Speedbarge"
kalimdor[5045]="Ascendant's Rise"
kalimdor[5046]="Mirage Abyss"
kalimdor[5048]="Raceway Ruins"
kalimdor[5049]="Speedbarge Bar"
kalimdor[5050]="The Hatchery"
kalimdor[5060]="Steelspark Station"
kalimdor[5061]="Steelspark Station"
kalimdor[5062]="Bootlegger Outpost"
kalimdor[5063]="Dunemaul Recruitment Camp"
kalimdor[5064]="The Anvil of Flame"
kalimdor[5065]="Tower of Estulan"
kalimdor[5066]="Trueshot Point"
kalimdor[5067]="The Inner Spire"
kalimdor[5072]="Feathermoon Stronghold"
kalimdor[5073]="Fallowmere Inn"
kalimdor[5075]="Tirth's Haunt"
kalimdor[5087]="Sethria's Roost"
kalimdor[5092]="Razorfen Downs"
kalimdor[5093]="Northwatch Expedition Base Camp Inn"
kalimdor[5099]="The Crucible"
kalimdor[5117]="Nozzlepot's Outpost"
kalimdor[5118]="Windshear Valley"
kalimdor[5166]="Cleft of Shadow"
kalimdor[5167]="The Drag"
kalimdor[5168]="Valley of Honor"
kalimdor[5169]="Valley of Spirits"
kalimdor[5170]="Valley of Strength"
kalimdor[5171]="Valley of Wisdom"
kalimdor[5306]="Hull of the Foebreaker"
kalimdor[5312]="Nazj'vel"
kalimdor[5332]="Goblin Slums"
kalimdor[5333]="Trial of Frost"
kalimdor[5337]="Sanctum of the Prophets"
kalimdor[5345]="Thunder Bluff"
kalimdor[5356]="Grommash Hold"
kalimdor[5375]="Wreckage of the Silver Dawning"
kalimdor[5385]="The Great Divide"
kalimdor[5388]="Dawnrise Expedition"
--kalimdor[5396]="Lost City of the Tol'vir"
kalimdor[5420]="The Gate of Unending Cycles"
kalimdor[5423]="Obelisk of the Stars"
kalimdor[5429]="The Western Earthshrine"
kalimdor[5431]="Chamber of the Stars"
kalimdor[5455


import torch.nn as nn

optional = {
    "d_model": 128,
    "num_layers": 5,
    "dropout": 0.2,
}

def args_update(parser):
    parser.add_argument("--d_model", type=int, default=None)
    parser.add_argument("--num_layers", type=int, default=None)
    parser.add_argument("--dropout", type=float, default=None)

class TSMixer(nn.Module):
    """
    Source: https://github.com/decisionintelligence/TFB/blob/master/ts_benchmark/baselines/time_series_library/models/TSMixer.py
    """

    def __init__(self, configs):
        super().__init__()
        self.seq_len = configs.input_len
        self.pred_len = configs.output_len
        self.num_layers = configs.num_layers

        self.model = nn.ModuleList([ResBlock(configs) for _ in range(self.num_layers)])
        self.projection = nn.Linear(self.seq_len, self.pred_len)

    def forward(self, x):
        # x: [B, L, D]
        for i in range(self.num_layers):
            x = self.model[i](x)
        return self.projection(x.transpose(1, 2)).transpose(1, 2)  # [B, L, D]

class ResBlock(nn.Module):
    def __init__(self, configs):
        super().__init__()

        self.temporal_mlp = nn.Sequential(
            nn.Linear(configs.input_len, configs.d_model),
            nn.ReLU(),
            nn.Linear(configs.d_model, configs.input_len),
            nn.Dropout(configs.dropout),
        )

        self.feature_mlp = nn.Sequential(
            nn.Linear(configs.input_channels, configs.d_model),
            nn.ReLU(),
            nn.Linear(configs.d_model, configs.input_channels),
            nn.Dropout(configs.dropout),
        )

    def forward(self, x):
        # x: [B, L, D]
        x = x + self.temporal_mlp(x.transpose(1, 2)).transpose(1, 2)
        x = x + self.feature_mlp(x)
        return x


ReportingSource1Choice" minOccurs="0"/>
 *         <element name="Acct" type="{urn:iso:std:iso:20022:tech:xsd:camt.054.001.02}CashAccount20"/>
 *         <element name="RltdAcct" type="{urn:iso:std:iso:20022:tech:xsd:camt.054.001.02}CashAccount16" minOccurs="0"/>
 *         <element name="Intrst" type="{urn:iso:std:iso:20022:tech:xsd:camt.054.001.02}AccountInterest2" maxOccurs="unbounded" minOccurs="0"/>
 *         <element name="TxsSummry" type="{urn:iso:std:iso:20022:tech:xsd:camt.054.001.02}TotalTransactions2" minOccurs="0"/>
 *         <element name="Ntry" type="{urn:iso:std:iso:20022:tech:xsd:camt.054.001.02}ReportEntry2" maxOccurs="unbounded" minOccurs="0"/>
 *         <element name="AddtlNtfctnInf" type="{urn:iso:std:iso:20022:tech:xsd:camt.054.001.02}Max500Text" minOccurs="0"/>
 *       </sequence>
 *     </restriction>
 *   </complexContent>
 * </complexType>
 * </pre>
 *
 *
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "AccountNotification2", propOrder = {
    "id",
    "elctrncSeqNb",
    "lglSeqNb",
    "creDtTm",
    "frToDt",
    "cpyDplctInd",
    "rptgSrc",
    "acct",
    "rltdAcct",
    "intrst",
    "txsSummry",
    "ntry",
    "addtlNtfctnInf"
})
public class AccountNotification2 {

    @XmlElement(name = "Id", required = true)
    protected String id;
    @XmlElement(name = "ElctrncSeqNb")
    protected BigDecimal elctrncSeqNb;
    @XmlElement(name = "LglSeqNb")
    protected BigDecimal lglSeqNb;
    @XmlElement(name = "CreDtTm", required = true)
    @XmlSchemaType(name = "dateTime")
    protected XMLGregorianCalendar creDtTm;
    @XmlElement(name = "FrToDt")
    protected DateTimePeriodDetails frToDt;
    @XmlElement(name = "CpyDplctInd")
    @XmlSchemaType(name = "string")
    protected CopyDuplicate1Code cpyDplctInd;
    @XmlElement(name = "RptgSrc")
    protected ReportingSource1Choice rptgSrc;
    @XmlElement(name = "Acct", required = true)
    protected CashAccount20 acct;
    @XmlElement(name = "RltdAcct")
    protected CashAccount16 rltdAcct;
    @XmlElement(name = "Intrst")
    protected List<AccountInterest2> intrst;
    @XmlElement(name = "TxsSummry")
    protected TotalTransactions2 txsSummry;
    @XmlElement(name = "Ntry")
    protected List<ReportEntry2> ntry;
    @XmlElement(name = "AddtlNtfctnInf")
    protected String addtlNtfctnInf;

    /**
     * Gets the value of the id property.
     *
     * @return
     *     possible object is
     *     {@link String }
     *
     */
    public String getId() {
        return id;
    }

    /**
     * Sets the value of the id property.
     *
     * @param value
     *     allowed object is
     *     {@link String }
     *
     */
    public void setId(String value) {
        this.id = value;
    }

    /**
     * Gets the value of the elctrncSeqNb property.
     *
     * @return
     *


,D3,Object*/
abstract class D3 implements B, C {
  /*member: D3.method:void Function(num)*/
}

/*class: D4:B,C,D4,Object*/
abstract class D4 implements C, B {
  /*member: D4.method:void Function(num)*/
}

/*class: D5:A,C,D5,Object*/
abstract class D5 implements A, C {
  /*member: D5.method:void Function(dynamic)*/
}

/*class: E:E,Object*/
abstract class E {
  /*member: E.method:void Function(num)*/
  void method(num a);
}

/*class: F:F,Object*/
abstract class F {
  /*member: F.method:void Function(int)*/
  void method(covariant int a);
}

/*class: G1:E,F,G1,Object*/
abstract class G1 implements E, F {
  /*member: G1.method:void Function(num)*/
}

/*class: G2:E,F,G2,Object*/
abstract class G2 implements F, E {
  /*member: G2.method:void Function(num)*/
}
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

/*library: nnbd=true*/

/*class: A1:A1,Object*/
abstract class A1 {
  /*member: A1.close:void Function()*/
  void close();
}

/*class: B1:B1,Object*/
abstract class B1 {
  /*member: B1.close:Object Function()*/
  Object close();
}

/*class: C1a:A1,B1,C1a,Object*/
abstract class C1a implements A1, B1 {
  /*member: C1a.close:Object Function()*/
  Object close();
}

/*class: C1b:A1,B1,C1b,Object*/
abstract class C1b implements B1, A1 {
  /*member: C1b.close:Object Function()*/
  Object close();
}

/*class: A2:A2<T>,Object*/
abstract class A2<T> {
  /*member: A2.close:void Function()*/
  void close();
}

/*class: B2:B2<T>,Object*/
abstract class B2<T> {
  /*member: B2.close:Object Function()*/
  Object close();
}

/*class: C2a:A2<T>,B2<T>,C2a<T>,Object*/
abstract class C2a<T> implements A2<T>, B2<T> {
  /*member: C2a.close:Object Function()*/
  Object close();
}

/*class: C2b:A2<T>,B2<T>,C2b<T>,Object*/
abstract class C2b<T> implements B2<T>, A2<T> {
  /*member: C2b.close:Object Function()*/
  Object close();
}
// Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

/*library: nnbd=true*/

/*class: Interface:Interface,Object*/
abstract class Interface {
  /*member: Interface.method1:int? Function()*/
  int? method1();

  /*member: Interface.method2:int Function()*/
  int method2();

  /*member: Interface.method3:int Function()*/
  int method3();

  /*member: Interface.method4:int? Function()*/
  int? method4();

  /*member: Interface.method5a:int Function(int, int?)*/
  int method5a(


  });

  describe('\n - concatN: (...args: any[])', () => {
    test("concatN([1], ['2'], [3]) to equal [1, '2', 3] ", () => {
      expect(concatN([1], ['2'], [3])).toEqual([1, '2', 3]);
    });
  });

  describe('\n - compact: (array: any[])', () => {
    test('compact([1, 2, null]) to equal [1, 2] ', () => {
      expect(compact([1, 2, null])).toEqual([1, 2]);
    });
  });

  describe('\n - toBinary: (n: number)', () => {
    test("toBinary(64) to equal '1000000' ", () => {
      expect(toBinary(64)).toEqual('1000000');
    });
  });

  describe('\n - sort: (src: any[], fn = n => n)', () => {
    test('sort([1, 3, 0, -2]) to equal [-2, 0, 1, 3] ', () => {
      expect(sort([1, 3, 0, -2])).toEqual([-2, 0, 1, 3]);
    });

    test('sort([{val: 1}, {val: -2}, {val: 0}], n => n.val) to equal [{val: -2}, {val: 0}, {val: 1}] ', () => {
      expect(sort([{ val: 1 }, { val: -2 }, { val: 0 }], n => n.val)).toEqual([{ val: -2 }, { val: 0 }, { val: 1 }]);
    });
  });

  describe('\n - unique: (array: any[])', () => {
    test('unique([1, 1, 0, 1, 2]) to equal [0, 1, 2] ', () => {
      expect(unique([1, 1, 0, 1, 2])).toEqual([0, 1, 2]);
    });
  });

  describe('\n - swap: (arr: any[], a: number, b: number)', () => {
    test('swap([0, 1, 2, 3, 4], 1, 4) to equal [0, 4, 2, 3, 1] ', () => {
      const arr = [0, 1, 2, 3, 4];
      swap(arr, 1, 4);
      expect(arr).toEqual([0, 4, 2, 3, 1]);
    });
  });

  describe('\n - range: (a: number, b: number)', () => {
    test('range(0 , -3) to equal [0, -1, -2, -3] ', () => {
      expect(range(0, -3)).toEqual([0, -1, -2, -3]);
    });

    test('range(0 , 3) to equal [0, 1, 2, 3] ', () => {
      expect(range(0, 3)).toEqual([0, 1, 2, 3]);
    });
  });

  describe('\n - permutations: (array: any[])', () => {
    test('permutations([1, 2, 3]) to equal [[1, 2, 3], [2, 1, 3], [2, 3, 1], [1, 3, 2], [3, 1, 2], [3, 2, 1]] ', () => {
      expect(permutations([1, 2, 3])).toEqual([[1, 2, 3], [2, 1, 3], [2, 3, 1], [1, 3, 2], [3, 1, 2], [3, 2, 1]]);
    });
  });

  describe('\n - rotate: (n: number, array: any[])', () => {
    test('rotate(3, [0, 1, 2, 3]) to equal [3, 0, 1, 2] ', () => {
      expect(rotate(3, [0, 1, 2, 3])).toEqual([3, 0, 1, 2]);
    });

    test('rotate(-2, [0, 1, 2, 3, 4]) to equal [3, 4, 0, 1, 2] ', () => {
      expect(rotate(-2, [0, 1, 2, 3, 4])).toEqual([3, 4, 0, 1, 2]);
    });
  });

  describe('\n - mapN: (fn: any, array: any[], n: number)', () => {
    test('mapN(n => 2*n, [1, 2, 3], 3) to equal [8, 16, 24] ', () => {
      expect(mapN(n => 2 * n, [1, 2, 3], 3)).toEqual([8, 16, 24]);
    });
  });
});
import axios from 'axios';
import { API_URL, API_VERSION } from '../config/constants';
import { ICateg


escription:function(t,e,r){return["If set to a",t,"axis id (e.g. *"+t+"* or","*"+t+"2*), the `"+t+"` position refers to a",t,"coordinate. If set to *paper*, the `"+t+"`","position refers to the distance from the",e,"of the plotting","area in normalized coordinates where *0* (*1*) corresponds to the",e,"("+r+"). If set to a",t,"axis ID followed by","*domain* (separated by a space), the position behaves like for","*paper*, but refers to the distance in fractions of the domain","length from the",e,"of the domain of that axis: e.g.,","*"+t+"2 domain* refers to the domain of the second",t," axis and a",t,"position of 0.5 refers to the","point between the",e,"and the",r,"of the domain of the","second",t,"axis."].join(" ")}}},22372:function(t){"use strict";t.exports={INCREASING:{COLOR:"#3D9970",SYMBOL:"▲"},DECREASING:{COLOR:"#FF4136",SYMBOL:"▼"}}},31562:function(t){"use strict";t.exports={FORMAT_LINK:"https://github.com/d3/d3-format/tree/v1.4.5#d3-format",DATE_FORMAT_LINK:"https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format"}},74808:function(t){"use strict";t.exports={COMPARISON_OPS:["=","!=","<",">=",">","<="],COMPARISON_OPS2:["=","<",">=",">","<="],INTERVAL_OPS:["[]","()","[)","(]","][",")(","](",")["],SET_OPS:["{}","}{"],CONSTRAINT_REDUCTION:{"=":"=","<":"<","<=":"<",">":">",">=":">","[]":"[]","()":"[]","[)":"[]","(]":"[]","][":"][",")(":"][","](":"][",")[":"]["}}},29659:function(t){"use strict";t.exports={solid:[[],0],dot:[[.5,1],200],dash:[[.5,1],50],longdash:[[.5,1],10],dashdot:[[.5,.625,.875,1],50],longdashdot:[[.5,.7,.8,1],10]}},87381:function(t){"use strict";t.exports={circle:"●","circle-open":"○",square:"■","square-open":"□",diamond:"◆","diamond-open":"◇",cross:"+",x:"❌"}},37822:function(t){"use strict";t.exports={SHOW_PLACEHOLDER:100,HIDE_PLACEHOLDER:1e3,DESELECTDIM:.2}},50606:function(t){"use strict";t.exports={BADNUM:void 0,FP_SAFE:1e-4*Number.MAX_VALUE,ONEMAXYEAR:316224e5,ONEAVGYEAR:315576e5,ONEMINYEAR:31536e6,ONEMAXQUARTER:79488e5,ONEAVGQUARTER:78894e5,ONEMINQUARTER:76896e5,ONEMAXMONTH:26784e5,ONEAVGMONTH:26298e5,ONEMINMONTH:24192e5,ONEWEEK:6048e5,ONEDAY:864e5,ONEHOUR:36e5,ONEMIN:6e4,ONESEC:1e3,EPOCHJD:2440587.5,ALMOST_EQUAL:.999999,LOG_CLIP:10,MINUS_SIGN:"−"}},77922:function(t,e){"use strict";e.xmlns="http://www.w3.org/2000/xmlns/",e.svg="http://www.w3.org/2000/svg",e.xlink="http://www.w3.org/1999/xlink",e.svgAttrs={xmlns:e.svg,"xmlns:xlink":e.x


旅游经营者在经营期内不按照旅游发展规划和合同约定对旅游资源进行开发利用，造成旅游资源严重破坏或者长期闲置的，由市和区、县（市）人民政府依法收回国有旅游资源经营权。

第三十六条 特色小镇、特色街区等具有潜在旅游特质的区域开发、建设，应当兼顾旅游功能需求。

利用特色街区、历史文化街区等开发特色旅游项目时，应当遵守法律、法规和规章的规定，保持其原有的历史风貌，不得擅自改建、迁移、拆除。

第三十七条 任何单位和个人不得破坏旅游资源。

市旅游主管部门应当会同有关部门，对本市行政区域内的旅游资源按有关标准进行调查、分类和评定，建立、更新旅游资源档案并向社会公布。

经依法调查和评定的旅游资源实行分级保护制度。有关部门和旅游资源开发者应当制定旅游资源保护方案，采取相应的保护措施。

## 第四章　旅游经营管理

第三十八条 从事旅游经营活动应当依法取得营业执照。法律、行政法规规定需经有关主管部门许可的，还应当取得相应的经营许可证。

第三十九条 旅游经营者及其从业人员不得有下列侵害旅游者权益的行为：

（一）不依法履行与旅游者签订的旅游合同；

（二）降低服务标准；

（三）对提供的商品和服务的范围、内容、标准等作虚假宣传，或者使用模糊的信息欺骗和误导旅游者；

（四）与其他单位或者个人恶意串通，采取欺骗、胁迫、误导等手段招徕旅游者；

（五）其他侵害旅游者权益的行为。

第四十条 鼓励旅游经营者实行服务质量标准化管理，按照有关规定取得服务质量等级或者称号。

未取得服务质量等级或者称号的旅游经营者，不得使用服务质量等级或者称号的标志和称谓，不得使用与服务质量等级或者称号的标志相似的攀附性文字及符号进行虚假


ect * obj, GameObject * damager, float amount )
	{
		if (damager == STAR )
		{
			if (obj)
			{
				Commands->Send_Custom_Event( obj, Commands->Find_Object ( M01_MISSION_CONTROLLER_JDG ), 0, M01_PLAYER_IS_ATTACKING_ME_JDG, 0 );
			}
		}
	}

	void Custom( GameObject * obj, int type, int param, GameObject * sender )
	{
		ActionParamsStruct params;

		if ((param == M01_START_ACTING_JDG))//Player is entering Grunt level--cue actors
		{
			if (obj)
			{
				Commands->Innate_Enable( obj );
				params.Set_Basic(this, 45, M01_WALKING_WAYPATH_01_JDG);
				params.Set_Movement( Vector3(0,0,0), WALK, .25f );
				params.WaypathID = 100661;
				params.WaypointStartID = 100662;
				params.WaypointEndID = 100663;
				Commands->Action_Goto( obj, params );
			}
		}

		else if ((param == M01_YOUR_BUILDING_HAS_BEEN_DESTROYED_JDG))//Your building has been destroyed--evacuate
		{
			if (obj)
			{
				Commands->Innate_Enable( obj );
				Commands->Enable_Hibernation( obj, false );
				Vector3 evac_spot;

				float evac_location = Commands->Get_Random ( 0.5, 4.5f );

				if (evac_location >= 0.5 && evac_location < 1.5)
				{
					evac_spot.Set(-156.637f, 553.163f, 4.295f);
				}

				else if (evac_location >= 1.5 && evac_location < 2.5)
				{
					evac_spot.Set(-145.746f, 531.964f, 4.271f);
				}

				else if (evac_location >= 2.5 && evac_location < 3.5)
				{
					evac_spot.Set(-163.828f, 515.290f, 4.258f);
				}

				else
				{
					evac_spot.Set(-221.947f, 515.124f, 4.012f);
				}

				float x_factor = Commands->Get_Random(-10,10);
				float y_factor = Commands->Get_Random(-10,10);

				evac_spot.X += x_factor;
				evac_spot.Y += y_factor;

				params.Set_Basic(this, M01_EVAC_PRIORITY_JDG, M01_GOING_TO_EVAC_SPOT_JDG);
				params.Set_Movement( evac_spot, 1.0f, 3 );

				Commands->Action_Goto( obj, params );
			}
		}
	}

	void Action_Complete (GameObject *obj, int action_id, ActionCompleteReason complete_reason)
	{
		ActionParamsStruct params;

		if (action_id == M01_WALKING_WAYPATH_01_JDG && complete_reason == ACTION_COMPLETE_NORMAL)
		{
			params.Set_Basic(this, 45, M01_FACING_SPECIFIED_DIRECTION_01_JDG);
			params.Set_Face_Location( Vector3(-170.179f, 520.595f, 5.999f), 1 );
			Commands->Action_Face_Location ( obj, params );
		}

		else if (action_id == M01_FACING_SPECIFIED_DIRECTION_01_JDG && complete_reason == ACTION_COMPLETE_NORMAL)
		{
			params.Set_Basic(this, 45, M01_DOING_ANIMATION_01_JDG);
			params.Set_Animation ("H_A_J17C", false);
			Commands->


0};
//! wcx.cbSize = sizeof(WNDCLASSEX);
//! wcx.lpszClassName = "MY_WINDOW";
//!
//! if (RegisterClassEx(&wcx) == 0) {
//!     DWORD err = GetLastError();
//!     // handle error...
//! }
//! ```
//!
//! Is equivalent to:
//!
//! ```rust,no_run
//! use winsafe::prelude::*;
//! use winsafe::{RegisterClassEx, WNDCLASSEX, WString};
//!
//! let mut wcx = WNDCLASSEX::default();
//!
//! let mut buf = WString::from_str("MY_WINDOW");
//! wcx.set_lpszClassName(Some(&mut buf));
//!
//! if let Err(err) = RegisterClassEx(&wcx) {
//!     // handle error...
//! }
//! ```
//!
//! Note how you *don't need* to call [`GetLastError`](crate::GetLastError) to
//! retrieve the error code: it's returned by the method itself in the
//! [`WinResult`](crate::WinResult).
//!
//! # Text encoding
//!
//! Windows natively uses
//! [Unicode UTF-16](https://docs.microsoft.com/en-us/windows/win32/learnwin32/working-with-strings).
//!
//! WinSafe uses Unicode UTF-16 internally but exposes idiomatic UTF-8,
//! performing conversions automatically when needed, so you don't have to worry
//! about [`OsString`](https://doc.rust-lang.org/std/ffi/struct.OsString.html)
//! or any low-level conversion.
//!
//! However, there are cases where a string conversion is still needed, like
//! when dealing with native Win32 structs. In such cases, you can use the
//! [`WString`](crate::WString) struct, which is also capable of working as a
//! buffer to receive text from Win32 calls.

#![cfg_attr(docsrs, feature(doc_cfg))]

#[macro_use] mod macros;

mod ffi_types;

#[cfg(all(feature = "comctl", feature = "gdi"))] mod comctl_gdi;
#[cfg(all(feature = "comctl", feature = "ole"))] mod comctl_ole;
#[cfg(all(feature = "comctl", feature = "shell"))] mod comctl_shell;
#[cfg(all(feature = "dshow", feature = "gdi"))] mod dshow_gdi;
#[cfg(all(feature = "gdi", feature = "oleaut"))] mod gdi_oleaut;
#[cfg(feature = "advapi")] mod advapi;
#[cfg(feature = "comctl")] mod comctl;
#[cfg(feature = "comdlg")] mod comdlg;
#[cfg(feature = "dshow")] mod dshow;
#[cfg(feature = "gdi")] mod gdi;
#[cfg(feature = "kernel")] mod kernel;
#[cfg(feature = "msimg")] mod msimg;
#[cfg(feature = "ole")] mod ole;
#[cfg(feature = "oleaut")] mod oleaut;
#[cfg(feature = "shell")] mod shell;
#[cfg(feature = "shlwapi")] mod shlwapi;
#[cfg(feature = "user")] mod user;
#[cfg(feature = "uxtheme")] mod uxtheme;
#[cfg(feature = "version")] mod version;

#[cfg(feature = "gui")] pub mod gui;

#[cfg(all(feature = "comctl", feature = "gdi"))] pub use comctl_gdi::decl::*;
#[cfg(all(feature = "comctl", feature = "ole"))] pub use comctl_ole::decl::*;
#[cfg(feature = "advapi")] pub use advapi::decl::*;
#[cfg(feature = "comctl")] pub use comctl::decl::*;
#[cfg


en cela la guerre au nom des droits de l'homme est justifié mais ce n'est pas là le vrai probleme : la declaration des droits de l'homme devrait etre un acquis pour tout le monde et si elle etait respectée il n'y aurais pas besoin d'une guerre pour la faire appliquer !
C'est tout, mais je sais bien qu'il est trop tard pour celà et que malheureusement pendant que vous perdiez votre temps a lire cette Chronikz des hommes sont morts, ou sont torturés....

Trop de connerie pour aujourd'hui a me donne la nausée... a me fais vomir d'tre un Homme !

MERDE à tous les hommes !

P.S. :Smeita avec qui j'ai deja pus parle de la guerre, a toujours dit que pour lui :

"la guerre etait ridicule, les occidentaux devraient la faire à l'ancienne,
les deux presidents des pays en conflits devraient se rencontrer et se mettre
sur la gueule celui qui gagne a raison et on en parle plus, au lieu d'envoyé des
gars qui ne savent rien de tout l'histoire tuer des innocents "

Je ne sais pas si c'est la bonne reponse aux differents conflits,
mais en tout cas me satisfait plus que l'actuelle, on se marrerait plus :
imaginez Billou et Jacques se bagarrant ....

5 contre 1 sur Bill (ben ouais quoi, lui il fait du jogging au moins alors que l'autre il n'arrete pas
de manger des pommes, il va se faire detruire...heu ... qui tient le pari?? )
<TITLE>MemenTo</TITLE>

<meta name="Author" content="[Shmeit Corp]--">
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<meta http-equiv="content-language" content="fr">

<basefont color=#EEEEEE face=arial, verdana, courier size=2>


sArrayOrTypedArray(e)?n.mean(e):e,s=.5+o/100,l=1.5+o/100,u=["",""],c=[0,0];switch(i){case"top":u[0]="top",c[1]=-l;break;case"bottom":u[0]="bottom",c[1]=l}switch(a){case"left":u[1]="right",c[0]=-s;break;case"right":u[1]="left",c[0]=s}return{anchor:u[0]&&u[1]?u.join("-"):u[0]?u[0]:u[1]?u[1]:"center",offset:c}}},33688:function(t,e,r){"use strict";var n=r(3480),i=r(3400),a=i.strTranslate,o=i.strScale,s=r(84888).KY,l=r(9616),u=r(33428),c=r(43616),f=r(72736),h=r(14440),p="mapbox",d=e.constants=r(47552);function v(t){return"string"==typeof t&&(-1!==d.styleValuesMapbox.indexOf(t)||0===t.indexOf("mapbox://")||0===t.indexOf("stamen"))}e.name=p,e.attr="subplot",e.idRoot=p,e.idRegex=e.attrRegex=i.counterRegex(p),e.attributes={subplot:{valType:"subplotid",dflt:"mapbox",editType:"calc"}},e.layoutAttributes=r(5232),e.supplyLayoutDefaults=r(5976),e.plot=function(t){var e=t._fullLayout,r=t.calcdata,a=e._subplots[p];if(n.version!==d.requiredVersion)throw new Error(d.wrongVersionErrorMsg);var o=function(t,e){var r=t._fullLayout;if(""===t._context.mapboxAccessToken)return"";for(var n=[],a=[],o=!1,s=!1,l=0;l<e.length;l++){var u=r[e[l]],c=u.accesstoken;v(u.style)&&(c?i.pushUnique(n,c):(v(u._input.style)&&(i.error("Uses Mapbox map style, but did not set an access token."),o=!0),s=!0)),c&&i.pushUnique(a,c)}if(s){var f=o?d.noAccessTokenErrorMsg:d.missingStyleErrorMsg;throw i.error(f),new Error(f)}return n.length?(n.length>1&&i.warn(d.multipleTokensErrorMsg),n[0]):(a.length&&i.log(["Listed mapbox access token(s)",a.join(","),"but did not use a Mapbox map style, ignoring token(s)."].join(" ")),"")}(t,a);n.accessToken=o;for(var l=0;l<a.length;l++){var u=a[l],c=s(r,p,u),f=e[u],g=f._subplot;g||(g=new h(t,u),e[u]._subplot=g),g.viewInitial||(g.viewInitial={center:i.extendFlat({},f.center),zoom:f.zoom,bearing:f.bearing,pitch:f.pitch}),g.plot(c,e,t._promises)}},e.clean=function(t,e,r,n){for(var i=n._subplots[p]||[],a=0;a<i.length;a++){var o=i[a];!e[o]&&n[o]._subplot&&n[o]._subplot.destroy


"POST"])
@jwt_required()
@blp.arguments(ChangePasswordSchema)
def password_change(payload):
    uid = get_jwt_identity()
    change_password(uid, payload["old_password"], payload["new_password"])
    return ok({"changed": True})

@blp.route("/me", methods=["GET"])
@jwt_required()
def me():
    uid = get_jwt_identity()
    from .models import User
    user = db.session.get(User, parse_uuid(uid))
    if not user:
        raise APIError("not_found", "User not found", 404)
    return ok(user.to_dict())

@blp.route("/me/photo", methods=["POST"])
@jwt_required()
def me_photo_presign():
    uid = get_jwt_identity()
    s3 = get_s3_client(current_app)
    bucket = current_app.config.get("S3_BUCKET")
    key = f"users/{uid}/photo.jpg"
    url = s3.generate_presigned_url(
        "put_object",
        Params={"Bucket": bucket, "Key": key, "ContentType": "image/jpeg"},
        ExpiresIn=3600,
    )
    return ok({"upload_url": url, "key": key})


mappers).to.eql(query1.mappers);
  });

  it('clears all mappers', () => {
    const query = Query.map({ id: '1' }).map({ id: '2' });
    expect(query.mappers.length).to.eql(2);

    const events: IQueryChange[] = [];
    query.change$.subscribe(e => events.push(e));

    const result = query.clear();
    expect(query.mappers.length).to.eql(0);
    expect(result.mappers.length).to.eql(0);
    expect(events.length).to.eql(1);
    expect(events[0].type).to.eql('CLEARED');
  });
});

describe('query.transform', () => {
  const createDataset = (length: number): IDataSet => {
    const items = Array.from({ length }).map((v, i) => ({
      time: new Date(),
      value: i,
    }));
    return { items };
  };

  const mappers = Mappers
    // Register mappers.
    .create()
    .add<{ by: number }>('increment', async (props, data) => {
      const items = data.items.map(item => ({
        ...item,
        value: item.value + props.by,
      }));
      return { ...data, items };
    });

  it('makes no change to the data when no mappers have been registered', async () => {
    const data = createDataset(3);
    const query = Query.create();
    const result = await query.transform(mappers, data);
    expect(result).to.eql(data);
    expect(result.items[0].value).to.eql(0);
  });

  it('runs a single mapper (increment by 2 from props)', async () => {
    const data = createDataset(3);
    const query = Query.map({ id: 'increment', props: { by: 2 } });
    const result = await query.transform(mappers, data);

    expect(result.items[0].value).to.eql(2);
    expect(result.items[1].value).to.eql(3);
    expect(result.items[2].value).to.eql(4);
  });

  it('runs several mappers', async () => {

    const data = createDataset(3);
    const query = Query
      // Add a series of mappers.
      .map({ id: 'increment', props: { by: 10 } })
      .map({ id: 'increment', props: { by: -5 } })
      .map({ id: 'increment', props: { by: 1 } });
    const result = await query.transform(mappers, data);

    expect(result.items[0].value).to.eql(6);
    expect(result.items[1].value).to.eql(7);
    expect(result.items[2].value).to.eql(8);
  });

  it('throws if it tries to map with a non-existent transform', async () => {
    const data = createDataset(3);
    const query = Query
      // Add a series of mappers.
      .map({ id: 'increment', props: { by: 10 } })
      .map({ id: 'does-not-exist' });

    let err: Error | undefined;
    try {
      await query.transform(mappers, data);
    } catch (error) {
      err = error;
    }
    expect(err && err.message).to.contain('has not been registered yet');
  });
});
import { FormControl } from "@angular/forms";

type WhiteSpace = {
  whitespace: boolean
}

export function validatorNoWhitespace(control: FormControl): WhiteSpace | null {
  const isWhitespace = (control.value || '').trim().length === 0;
  const isValid = !isWhitespace;
  return isValid ? null : { whitespace: isWhitespace };
}
/// <reference path="../types/external.d.ts" />

import Observable, { Observer, Subscription } from 'core-js/features/observable';

import { TelemetryEvents } from '../types/ic3/TelemetryEvents';

export default function shareObservable<T>(observable: Obs


indElement("./store/book/title")
	if e1 == nil || e2 == nil || e1.parent == nil || e1 == e2 {
		t.Error("etree: incorrect FindElement result")
	}

	e1.parent.RemoveChildAt(e1.Index())
	s1, _ = doc.WriteToString()
	s2, _ = doc2.WriteToString()
	if s1 == s2 {
		t.Error("etree: incorrect result after RemoveElement")
	}
}

func TestGetPath(t *testing.T) {
	s := `<a>
 <b1>
  <c1>
   <d1/>
   <d1a/>
  </c1>
 </b1>
 <b2>
  <c2>
   <d2/>
  </c2>
 </b2>
</a>`

	doc := newDocumentFromString(t, s)

	cases := []struct {
		from    string
		to      string
		relpath string
		topath  string
	}{
		{"a", ".", "..", "/"},
		{".", "a", "./a", "/a"},
		{"a/b1/c1/d1", ".", "../../../..", "/"},
		{".", "a/b1/c1/d1", "./a/b1/c1/d1", "/a/b1/c1/d1"},
		{"a", "a", ".", "/a"},
		{"a/b1", "a/b1/c1", "./c1", "/a/b1/c1"},
		{"a/b1/c1", "a/b1", "..", "/a/b1"},
		{"a/b1/c1", "a/b1/c1", ".", "/a/b1/c1"},
		{"a", "a/b1", "./b1", "/a/b1"},
		{"a/b1", "a", "..", "/a"},
		{"a", "a/b1/c1", "./b1/c1", "/a/b1/c1"},
		{"a/b1/c1", "a", "../..", "/a"},
		{"a/b1/c1/d1", "a", "../../..", "/a"},
		{"a", "a/b1/c1/d1", "./b1/c1/d1", "/a/b1/c1/d1"},
		{"a/b1", "a/b2", "../b2", "/a/b2"},
		{"a/b2", "a/b1", "../b1", "/a/b1"},
		{"a/b1/c1/d1", "a/b2/c2/d2", "../../../b2/c2/d2", "/a/b2/c2/d2"},
		{"a/b2/c2/d2", "a/b1/c1/d1", "../../../b1/c1/d1", "/a/b1/c1/d1"},
		{"a/b1/c1/d1", "a/b1/c1/d1a", "../d1a", "/a/b1/c1/d1a"},
	}

	for _, c := range cases {
		fe := doc.FindElement(c.from)
		te := doc.FindElement(c.to)

		rp := te.GetRelativePath(fe)
		if rp != c.relpath {
			t.Errorf("GetRelativePath from '%s' to '%s'. Expected '%s', got '%s'.\n", c.from, c.to, c.relpath, rp)
		}

		p := te.GetPath()
		if p != c.topath {
			t.Errorf("GetPath for '%s'. Expected '%s', got '%s'.\n", c.to, c.topath, p)
		}
	}
}

func TestInsertChild(t *testing.T) {
	s := `<book lang="en">
  <t:title>Great Expectations</t:title>
  <author>Charles Dickens</author>
</book>
`

	doc := newDocumentFromString(t, s)

	year := NewElement("year")
	year.SetText("1861")

	book := doc.FindElement("//book")
	book.InsertChildAt(book.SelectElement("t:title").Index(), year)

	expected1 := `<book lang="en">
  <year>1861</year>
  <t:title>Great Expectations</t:title>
  <author>Charles Dickens</author>
</book>
`
	doc.Indent(2)
	s1, _ := doc.WriteToString()


 USB_SOF_Pin|USB_VBUS_Pin|USB_ID_Pin|USB_DM_Pin
                          |USB_DP_Pin);

    /* Disable VDDUSB */
    if(__HAL_RCC_PWR_IS_CLK_DISABLED())
    {
      __HAL_RCC_PWR_CLK_ENABLE();
      HAL_PWREx_DisableVddUSB();
      __HAL_RCC_PWR_CLK_DISABLE();
    }
    else
    {
      HAL_PWREx_DisableVddUSB();
    }
  /* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */

  /* USER CODE END USB_OTG_FS_MspDeInit 1 */
  }

}

extern DMA_HandleTypeDef hdma_sai1_a;

static uint32_t SAI1_client =0;

void HAL_SAI_MspInit(SAI_HandleTypeDef* hsai)
{

  GPIO_InitTypeDef GPIO_InitStruct;
  RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
/* SAI1 */
    if(hsai->Instance==SAI1_Block_A)
    {
    /* Peripheral clock enable */

  /** Initializes the peripherals clock
  */
    PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_SAI1;
    PeriphClkInit.Sai1ClockSelection = RCC_SAI1CLKSOURCE_PLLSAI1;
    PeriphClkInit.PLLSAI1.PLLSAI1Source = RCC_PLLSOURCE_HSI;
    PeriphClkInit.PLLSAI1.PLLSAI1M = 1;
    PeriphClkInit.PLLSAI1.PLLSAI1N = 12;
    PeriphClkInit.PLLSAI1.PLLSAI1P = RCC_PLLP_DIV2;
    PeriphClkInit.PLLSAI1.PLLSAI1Q = RCC_PLLQ_DIV2;
    PeriphClkInit.PLLSAI1.PLLSAI1R = RCC_PLLR_DIV2;
    PeriphClkInit.PLLSAI1.PLLSAI1ClockOut = RCC_PLLSAI1_SAI1CLK;
    if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
    {
      Error_Handler();
    }

    if (SAI1_client == 0)
    {
       __HAL_RCC_SAI1_CLK_ENABLE();

    /* Peripheral interrupt init*/
    HAL_NVIC_SetPriority(SAI1_IRQn, 0, 0);
    HAL_NVIC_EnableIRQ(SAI1_IRQn);
    }
    SAI1_client ++;

    /**SAI1_A_Block_A GPIO Configuration
    PE4     ------> SAI1_FS_A
    PE5     ------> SAI1_SCK_A
    PE6     ------> SAI1_SD_A
    */
    GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    GPIO_InitStruct.Alternate = GPIO_AF13_SAI1;
    HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);

      /* Peripheral DMA init*/

    hdma_sai1_a.Instance = DMA1_Channel1;
    hdma_sai1_a.Init.Request = DMA_REQUEST_SAI1_A;
    hdma_sai1_a.Init.Direction = DMA_PERIPH_TO_MEMORY;
    hdma_sai1_a.Init.PeriphInc = DMA_PINC_DISABLE;
    hdma_sai1_a.Init.MemInc = DMA_MINC_ENABLE;
    hdma_sai1_a.Init.PeriphDataAlignment = DMA_PDATAALIGN_HALFWORD;
    hdma_sai1_a.Init.MemDataAlignment = DMA_MDATAALIGN_HALFWORD;
    hdma_sai1_a.Init.Mode = DMA_NORMAL;
    hdma_sai1_a.Init.Priority = DMA_PRIORITY_MEDIUM;
    if (HAL_DMA_Init(&hdma_sai1_a) != HAL_OK)
    {
      Error_Handler();
    }

    /* Several peripheral DMA handle pointers point to the same DMA handle.
     Be aware that there is only one channel to perform all the requested DMAs. */
    __HAL_LINKDMA(hsai,hdmarx,hdma_sai1_a);

    __HAL_LINKDMA(hsai,hdmatx,hdma_sai1_a);

    }
}

void HAL_SAI_MspDeInit(SAI_HandleTypeDef* hsai)
{
/* SAI1 */
    if(hsai->Instance==SAI1_Block_A)
    {
    SAI1_client --;
    if (SAI1_client == 0)
      {
      /* Peripheral clock disable */
       __HAL_RCC_SAI1_CLK_DISABLE();
      /* SAI1 interrupt DeInit */
      HAL_NVIC_DisableIRQ(SAI1_IRQn);
      }

    /**SAI1_A_Block_A GPIO Configuration
    PE4     ------> SAI1_FS_A
    PE5     ------> SAI1_SCK_A
    PE6     ------> SAI1_SD_A
    */
    HAL_GPIO_DeInit(GPIOE, GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6);

    /* SAI1 DMA Deinit */
    HAL_DMA_DeInit(hsai->hdmarx);
    HAL_DMA_DeInit(hsai->hdmatx);
    }
}

/* USER CODE BEGIN 1 */

/* USER CODE END 1 */


grmr_json: json,
        grmr_kotlin: kotlin,
        grmr_less: less,
        grmr_lua: lua,
        grmr_makefile: makefile,
        grmr_xml: xml,
        grmr_markdown: markdown,
        grmr_objectivec: objectivec,
        grmr_perl: perl,
        grmr_php: php,
        grmr_php_template: phpTemplate,
        grmr_plaintext: plaintext,
        grmr_python: python,
        grmr_python_repl: pythonRepl,
        grmr_r: r,
        grmr_ruby: ruby,
        grmr_rust: rust,
        grmr_scss: scss,
        grmr_shell: shell,
        grmr_sql: sql,
        grmr_swift: swift,
        grmr_typescript: typescript,
        grmr_vbnet: vbnet,
        grmr_wasm: wasm,
        grmr_yaml: yaml
    });

    const hljs = HighlightJS;

    for (const key of Object.keys(builtIns)) {
      // our builtInLanguages Rollup plugin has to use `_` to allow identifiers to be
      // compatible with `export` naming conventions, so we need to convert the
      // identifiers back into the more typical dash style that we use for language
      // naming via the API
      const languageName = key.replace("grmr_", "").replace("_", "-");
      hljs.registerLanguage(languageName, builtIns[key]);
    }

    return hljs;

})();
if (typeof exports === 'object' && typeof module !== 'undefined') { module.exports = hljs; }/* eslint-disable no-unused-vars */
/* global getAllPlugins, initializePluginStoreModal, addPluginStoreEventListener */
// eslint-disable-next-line no-unused-vars
function pluginsDropdown(installedPlugins, enabledPluginIds, idPrefix, forceDark = false) {
  const enabledPlugins = installedPlugins?.filter((plugin) => enabledPluginIds?.includes(plugin.id));
  const sortedPlugins = enabledPlugins?.sort((a, b) => {
    const textA = a.manifest.name_for_human.toUpperCase();
    const textB = b.manifest.name_for_human.toUpperCase();
    // eslint-disable-next-line no-nested-ternary
    return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;
  });
  return `<button id="${idPrefix}-plugins-dropdown-button" class="relative w-full cursor-pointer rounded-md border ${forceDark ? 'border-white/20 bg-gray-800' : 'border-gray-300 bg-white'} pt-1 pl-3 pr-10 text-left focus:border-green-600 focus:outline-none focus:ring-1 focus:ring-green-600 dark:border-white/20 dark:bg-gray-800 sm:text-sm" type="button">
  Plugins

    ${sortedPlugins?.length > 0 ? `

      ${sortedPlugins?.map((enabledPlugin) => `

`).join('')}

` : 'No plugins enabled'}


* #dropHandles is called automatically during deinitialization.
           */
          THandleList mOutputHandles;

        private:

          IOConfigFBController *mDelegate;

          /*! @brief Drops all handle instances which were previously added by the #addHandle method
           *
           * The method is automatically called during the deinitialization of the corresponding configuration function block.
           */
          void dropHandles();

          void run();

          void setInitDelay(int paDelay);

          int mInitDelay;

          void addHandle(THandleList* paList, CIEC_WSTRING const &paId, IOHandle* paHandle);

          // Functions needed for the external event handler interface
          void enableHandler(void) {
            //do nothing
          }
          void disableHandler(void) {
            //do nothing
          }
          void setPriority(int) {
            //do nothing
          }
          int getPriority(void) const {
            return 0;
          }
      };

    } //namespace IO
  } //namepsace core
} //namespace forte

#endif /* SRC_CORE_IO_DEVICE_CONTROLLER_H_ */


Data: JsonWebKey, algorithm: string | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | DhImportKeyParams | AesKeyAlgorithm, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKey>;\n    importKey(format: "raw" | "pkcs8" | "spki", keyData: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer, algorithm: string | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | DhImportKeyParams | AesKeyAlgorithm, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKey>;\n    importKey(format: string, keyData: JsonWebKey | Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer, algorithm: string | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | DhImportKeyParams | AesKeyAlgorithm, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKey>;\n    sign(algorithm: string | RsaPssParams | EcdsaParams | AesCmacParams, key: CryptoKey, data: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer): PromiseLike<ArrayBuffer>;\n    unwrapKey(format: string, wrappedKey: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer, unwrappingKey: CryptoKey, unwrapAlgorithm: string | Algorithm, unwrappedKeyAlgorithm: string | Algorithm, extractable: boolean, keyUsages: string[]): PromiseLike<CryptoKey>;\n    verify(algorithm: string | RsaPssParams | EcdsaParams | AesCmacParams, key: CryptoKey, signature: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer, data: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer): PromiseLike<boolean>;\n    wrapKey(format: string, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: string | Algorithm): PromiseLike<ArrayBuffer>;\n}\n\ndeclare var SubtleCrypto: {\n    prototype: SubtleCrypto;\n    new(): SubtleCrypto;\n};\n\n/** This ServiceWorker API interface provides an interface for registering and listing sync registrations. */\ninterface SyncManager {\n    getTags(): Promise<string[]>;\n    register(tag: string): Promise<void>;\n}\n\ndeclare var SyncManager: {\n    prototype: SyncManager;\n    new(): SyncManager;\n};\n\n/** The textual content of Element or Attr. If an element has no markup within its content, it has a single child implementing Text that contains the element\'s text. However, if the element contains markup, it is parsed into information items and Text nodes that form its children. */\ninterface Text extends CharacterData, Slotable {\n    readonly assignedSlot: HTMLSlotElement | null;\n    /**\n     * Returns the combined data of all direct Text node siblings.\n     */\n    readonly wholeText: string;\n    /**\n     * Splits data at the given offset and returns the remainder as Text node.\n     */\n    splitText(offset: number): Text;\n}\n\ndeclare var Text: {\n    prototype: Text;\n    new(data?: string): Text;\n};\n\n/** A decoder for a specific method, that is a specific character encoding, like utf-8, iso-8859-2, koi8, cp1261, gbk, etc. A decoder takes a stream of bytes as input and emits a stream of code points. For a more scalable, non-native library, see StringView – a C-like repre


hromium.googlesource.com/chromium/src/+/43d62c50b705f88c67b14539e91fd8fd017f70c4/components/webcrypto/algorithms/rsa.cc#286
  throw UnimplementedError('Only supports 65537 and 3 for now');
}

/// The `window` object.
@JS()
external JSWindow get window;

/// https://developer.mozilla.org/en-US/docs/Web/API/Window
extension type JSWindow(JSObject _) implements JSObject {
  /// https://developer.mozilla.org/en-US/docs/Web/API/crypto_property
  external JSCrypto get crypto;
}

/// The `window.crypto` object.
///
/// https://www.w3.org/TR/WebCryptoAPI/#crypto-interface
/// https://developer.mozilla.org/en-US/docs/Web/API/Crypto
extension type JSCrypto(JSObject _) implements JSObject {
  /// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/subtle
  external JSSubtleCrypto get subtle;

  /// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues
  external JSTypedArray getRandomValues(JSTypedArray array);
}

/// The `window.crypto.subtle` object.
///
/// https://www.w3.org/TR/WebCryptoAPI/#subtlecrypto-interface
/// https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto
extension type JSSubtleCrypto(JSObject _) implements JSObject {
  /// https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/encrypt
  external JSPromise<JSArrayBuffer> encrypt(
    JSAny algorithm,
    JSCryptoKey key,
    JSTypedArray data,
  );

  /// https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/decrypt
  external JSPromise<JSArrayBuffer> decrypt(
    JSAny algorithm,
    JSAny key,
    JSTypedArray data,
  );

  /// https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/sign
  external JSPromise<JSArrayBuffer> sign(
    JSAny algorithm,
    JSCryptoKey key,
    JSTypedArray data,
  );

  /// https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/verify
  external JSPromise<JSBoolean> verify(
    JSAny algorithm,
    JSCryptoKey key,
    JSTypedArray signature,
    JSTypedArray data,
  );

  /// https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest
  external JSPromise<JSArrayBuffer> digest(
    String algorithm,
    JSTypedArray data,
  );

  /// https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/deriveBits
  external JSPromise<JSArrayBuffer> deriveBits(
    JSAny algorithm,
    JSCryptoKey baseKey,
    int length,
  );

  /// https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/generateKey
  @JS('generateKey')
  external JSPromise<JSCryptoKey> generateCryptoKey(
    JSAny algorithm,
    bool extractable,
    JSArray<JSString> keyUsages,
  );

  /// https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/generateKey
  @JS('generateKey')
  external JSPromise<JSCryptoKeyPair> generateCryptoKeyPair(
    JSAny algorithm,
    bool extractable,
    JSArray<JSString> keyUsages,
  );

  /// https://developer.mozilla.org/en-US/docs


# REQUIRES: x86

# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t
# RUN: ld.lld -e A %t -o %t2
# RUN: llvm-readobj --symbols %t2 | FileCheck %s --check-prefix=NOSORT

# RUN: echo "A B 10" > %t.call_graph
# RUN: echo "A B 10" >> %t.call_graph
# RUN: echo "Aa B 80" >> %t.call_graph
# RUN: echo "A C 40" >> %t.call_graph
# RUN: echo "B C 30" >> %t.call_graph
# RUN: echo "C D 90" >> %t.call_graph
# RUN: echo "PP TS 100" >> %t.call_graph
# RUN: echo "_init2 _init 24567837" >> %t.call_graph
# RUN: echo "TS QC 9001" >> %t.call_graph
# RUN: echo "TooManyPreds0 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds1 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds2 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds3 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds4 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds5 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds6 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds7 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds8 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds9 TooManyPreds 10" >> %t.call_graph
# RUN: echo "TooManyPreds10 TooManyPreds 11" >> %t.call_graph
# RUN: ld.lld -e A %t --call-graph-ordering-file %t.call_graph -o %t2
# RUN: llvm-readobj --symbols %t2 | FileCheck %s

    .section    .text.D,"ax",@progbits
D:
    retq

    .section    .text.C,"ax",@progbits
    .globl  C
C:
    retq

    .section    .text.B,"ax",@progbits
    .globl  B
B:
    retq

    .section    .text.A,"ax",@progbits
    .globl  A
A:
Aa:
    retq

    .section    .ponies,"ax",@progbits,unique,1
    .globl TS
TS:
    retq

    .section    .ponies,"ax",@progbits,unique,2
    .globl PP
PP:
    retq

    .section    .other,"ax",@progbits,unique,1
    .globl QC
QC:
    retq

    .section    .other,"ax",@progbits,unique,2
    .globl GB
GB:
    retq

    .section    .init,"ax",@progbits,unique,1
    .globl _init
_init:
    retq

    .section    .init,"ax",@progbits,unique,2
    .globl _init2
_init2:
    retq

    .section    .text.TooManyPreds,"ax",@progbits
TooManyPreds:
    retq
	retq
	retq
	retq
	retq
	retq
	retq
	retq
	retq
	retq

    .section    .text.TooManyPreds0,"ax",@progbits
TooManyPreds0:
    retq

    .section    .t


-weight:300;margin-bottom:5px;z-index:1}.social-box .header .subtitle{font-size:14px;line-height:1.1;font-weight:500;margin:0;z-index:1}.social-box .skills{margin:0;padding:40px 0 0 0;list-style:none inside;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.social-box .skills li{padding:8px 16px;font-size:14px;text-align:center;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0}.social-box .skills li a{text-decoration:none;color:inherit}.social-box .skills li+li{border-left:1px solid #dfdfdf}.more-info-box{height:128px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap;background-color:#fff}.more-info-box .content,.more-info-box .icon{position:relative}.more-info-box .icon{height:64px;width:64px;-ms-flex-negative:0;flex-shrink:0;text-align:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-ordinal-group:3;-ms-flex-order:2;order:2;margin-left:auto;margin-right:16px;margin-top:16px;-webkit-transition:-webkit-transform .3s ease;transition:-webkit-transform .3s ease;transition:transform .3s ease;transition:transform .3s ease,-webkit-transform .3s ease}.more-info-box .icon>*{font-size:64px;width:64px;height:64px;line-height:1;color:rgba(0,0,0,.15)}.more-info-box .content{line-height:1.2;display:block;-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1;padding:8px;max-width:calc(100% - 106px)}.more-info-box .more{width:100%;-ms-flex-negative:0;flex-shrink:0;text-align:right;background:rgba(0,0,0,.1);text-decoration:none;position:relative;display:block;padding:8px 8px 0;margin:0;-webkit-box-ordinal-group:4;-ms-flex-order:3;order:3;color:rgba(255,255,255,.8);font-size:12px}.more-info-box .more:hover{color:#fff;background:rgba(0,0,0,.15)}.more-info-box:hover .icon{-webkit-transform:scale(1.2);transform:scale(1.2);-webkit-transition:-webkit-transform .3s ease;transition:-webkit-transform .


file);
	    	System.out.println(file);
	    	CFG icfg = ICFGBuilder.extractICFG(sdg);
	    	CFGChopper chopper = new CFGChopper(icfg);
	    	LinkedList<SDGNode> sources = new LinkedList<SDGNode>();
	    	LinkedList<SDGNode> sinks = new LinkedList<SDGNode>();
	    	sources.addAll(icfg.getNRandomNodes(5));
	    	sinks.addAll(icfg.getNRandomNodes(5));

	    	Collection<SDGNode> chop = null;
	    	chop = chopper.chop(sources.get(0), sinks.get(0));
	    	System.out.println(chop.size());
	    	chop = chopper.chop(sources.get(1), sinks.get(1));
	    	System.out.println(chop.size());
	    	chop = chopper.chop(sources.get(2), sinks.get(2));
	    	System.out.println(chop.size());
	    	chop = chopper.chop(sources.get(3), sinks.get(3));
	    	System.out.println(chop.size());
	    	chop = chopper.chop(sources.get(4), sinks.get(4));
	    	System.out.println(chop.size());
    	}
    }
}
/**
 * This file is part of the Joana IFC project. It is developed at the
 * Programming Paradigms Group of the Karlsruhe Institute of Technology.
 *
 * For further details on licensing please read the information at
 * http://joana.ipd.kit.edu or contact the authors.
 */
package edu.kit.joana.ifc.sdg.graph.slicer;

import java.util.Collection;

import edu.kit.joana.ifc.sdg.graph.SDG;
import edu.kit.joana.ifc.sdg.graph.SDGEdge;
import edu.kit.joana.ifc.sdg.graph.SDGNode;

/**
 *
 * @author  Dennis Giffhorn
 * @deprecated  see IncrementalSummarySlicer
 */
@Deprecated
public class IncrementalSummaryBackward extends IncrementalSummarySlicer {

    /**
     * Creates a new instance of IncrementalSummaryBackward
     */
    public IncrementalSummaryBackward(SDG g) {
        super(g);
    }

    protected boolean isTransitiveStart(SDGNode n) {
		return n.getKind() == SDGNode.Kind.FORMAL_OUT;
	}

    protected Collection<SDGEdge> edgesToTraverse(SDGNode node) {
        return graph.incomingEdgesOf(node);
    }

    protected SDGNode reachedNode(SDGEdge edge) {
        return edge.getSource();
    }

    protected SDGNode startedNode(SDGEdge edge) {
        return edge.getTarget();
    }

    protected boolean downwardsEdge(SDGEdge edge) {
        return edge.getKind() == SDGEdge.Kind.PARAMETER_OUT;
    }

    protected boolean phase2Edge(SDGEdge edge) {
        return edge.getKind().isSDGEdge()
                && edge.getKind() != SDGEdge.Kind.PARAMETER_IN
                && edge.getKind() != SDGEdge.Kind.CALL
                && !omittedEdges.contains(edge.getKind());
    }

    protected boolean summaryFound(SDGNode reached) {
    	return reached.getKind() == SDGNode.Kind.FORMAL_IN;
    }
}
/**
 * This file is part of the Joana IFC project. It is developed at the
 * Programming Paradigms Group of the Karlsruhe Institute of Technology.
 *
 * For further details on licensing please read the information at
 * http://joana.ipd.kit.edu or contact the authors.
 */
package edu.kit.joana.ifc.sdg.graph.slicer;

import java.util.Collection;
import java.u


3.equalsMultiDimMapsLists(multiDimMapsLists, multiDimMapsLists_1);
		assertTrue(equals);

		return;
	}

	@Test
	public void testMultiList() {
		List<JcError> errors;
		IDomainAccess da = DomainAccessFactory.createDomainAccess(dbAccess, domainName);
		IDomainAccess da1;
		MultiDimMapsLists multiDimMapsLists = new MultiDimMapsLists();
		MultiDimMapsLists multiDimMapsLists_1;
		boolean equals;
		Address first = new Address();
		DistrictAddress second = new DistrictAddress();
		Address third = new Address();
		Address first_1 = new Address();
		DistrictAddress second_1 = new DistrictAddress();
		Address third_1 = new Address();
		Address first_2 = new Address();
		DistrictAddress second_2 = new DistrictAddress();
		Address third_2 = new Address();

		buildMapTestAny2Any(first, second, third);
		buildMapTestAny2Any(first_1, second_1, third_1);
		buildMapTestAny2Any(first_2, second_2, third_2);

		// init multiDimList
		List<Object> multiDimList = new ArrayList<Object>();
		List<Object> multiDimList_1 = new ArrayList<Object>();
		List<Object> multiDimList_2 = new ArrayList<Object>();
		List<Object> multiDimList_3 = new ArrayList<Object>();

		multiDimList_1.add(first_1);
		multiDimList_1.add(second_1);
		multiDimList_1.add(third_1);
		multiDimList_2.add("first");
		multiDimList_2.add("second");
		multiDimList_2.add("third");
		multiDimList_3.add(100);
		multiDimList_3.add(200);
		multiDimList_3.add(300);

		multiDimList.add(first);
		multiDimList.add(multiDimList_1);
		multiDimList.add(multiDimList_2);
		multiDimList.add(multiDimList_3);

//		multiDimMapsLists.setMultiDimList(multiDimList_3);
		multiDimMapsLists.setMultiDimList(multiDimList);

		errors = dbAccess.clearDatabase();
		if (errors.size() > 0) {
			printErrors(errors);
			throw new JcResultException(errors);
		}

		errors = da.store(multiDimMapsLists);
		if (errors.size() > 0) {
			printErrors(errors);
			throw new JcResultException(errors);
		}

		SyncInfo syncInfo_1 = da.getSyncInfo(multiDimMapsLists);

		da1 = DomainAccessFactory.createDomainAccess(dbAccess, domainName);
		multiDimMapsLists_1 = da1.loadById(MultiDimMapsLists.class, -1, syncInfo_1.getId());
		equals = CompareUtil_3.equalsMultiDimMapsLists(multiDimMapsLists, multiDimMapsLists_1);
		assertTrue(equals);

		multiDimList_3.clear();
		multiDimList_3.add(second_1);

		errors = da.store(multiDimMapsLists);
		if (errors.size() > 0) {
			printErrors(errors);
			throw new JcResultException(errors);
		}

		da1 = DomainAccessFactory.createDomainAccess(dbAccess, domainName);
		multiDimMapsLists_1 = da1.loadById(MultiDimMapsLists.class, -1, syncInfo_1.getId());
		equals = CompareUtil_3.equalsMultiDimMapsLists(multiDimMapsLists, multiDimMapsLists_1);
		assertTrue(equals);

		boolean identical = ((List<?>)multiDimMapsLists_1.getMultiDimList().get(1)).get(1) ==
				((List<?>)multiDimMapsLists_1.getMultiDimList().get(3)).get(0);
		assertTrue(identical);

		multiDimList_3.clear();
		multiDi