text:
/*************************************************************************/
/*  export_plugin.cpp                                                    */
/*************************************************************************/
/*                       This file is part of:                           */
/*                           GODOT ENGINE                                */
/*                      https://godotengine.org                          */
/*************************************************************************/
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur.                 */
/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md).   */
/*                                                                       */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the       */
/* "Software"), to deal in the Software without restriction, including   */
/* without limitation the rights to use, copy, modify, merge, publish,   */
/* distribute, sublicense, and/or sell copies of the Software, and to    */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions:                                             */
/*                                                                       */
/* The above copyright notice and this permission notice shall be        */
/* included in all copies or substantial portions of the Software.       */
/*                                                                       */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,       */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF    */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY  */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE     */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.                */
/*************************************************************************/

#include "export_plugin.h"

Error EditorExportPlatformWindows::sign_shared_object(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path) {
	if (p_preset->get("codesign/enable")) {
		return _code_sign(p_preset, p_path);
	} else {
		return OK;
	}
}

Error EditorExportPlatformWindows::export_project(const Ref<EditorExportPreset> &p_preset, bool p_debug, const String &p_path, int p_flags) {
	Error err = EditorExportPlatformPC::export_project(p_preset, p_debug, p_path, p_flags);

	if (err != OK) {
		return err;
	}

	_rcedit_add_data(p_preset, p_path);

	if (p_preset->get("codesign/enable") && err == OK) {
		err = _code_sign(p_preset, p_path);
	}

	return err;
}

bool EditorExportPlatformWindows::get_export_option_visibility(const String &p_option, const Map<StringName, Variant> &p_options) const {
	// This option is not supported by "osslsigncode", used on non-Windows host.
	if (!OS::get_singleton()->has_feature("windows") && p_option == "codesign/identity_type") {
		return false;
	}
	return true;
}

void EditorExportPlatformWindows::get_export_options(List<ExportOption> *r_options) {
	EditorExportPlatformPC::get_export_options(r_options);

	r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "codesign/enable"), false));
	r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "codesign/identity_type", PROPERTY_HINT_ENUM, "Select automatically,Use PKCS12 file (specify *.PFX/*.P12 file),Use certificate store (specify SHA1 hash)"), 0));
	r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "codesign/identity", PROPERTY_HINT_GLOBAL_FILE, "*.pfx,*.p12"), ""));
	r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "codesign/password"), ""));
	r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "codesign/timestamp"), true));
	r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "codesign/timestamp_server_url"), ""));
	r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "codesign/digest_algorithm", PROPERTY_HINT_ENUM, "SHA1,SHA256"), 1));
	r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "codesign/description"), ""));
	r_options->push_back(ExportOption(PropertyInfo(Variant::PACKED_STRING_ARRAY, "codesign/custom_options"), PackedStringArray()));

	r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/icon", PROPERTY_HINT_FILE, "*.ico"), ""));
	r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/file_version", PROPERTY_HINT_PLACEHOLDER_TEXT, "1.0.0.0"), ""));
	r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/product_version", PROPERTY_HINT_PLACEHOLDER_TEXT, "1.0.0.0"), ""));
	r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/company_name", PROPERTY_HINT_PLACEHOLDER_TEXT, "Company Name"), ""));
	r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/product_name", PROPERTY_HINT_PLACEHOLDER_TEXT, "Game Name"), ""));
	r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/file_description"), ""));
	r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/copyright"), ""));
	r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "application/trademarks"), ""));
}

void EditorExportPlatformWindows::_rcedit_add_data(const Ref<EditorExportPreset> &p_preset, const String &p_path) {
	String rcedit_path = EditorSettings::get_singleton()->get("export/windows/rcedit");

	if (rcedit_path.is_empty()) {
		WARN_PRINT("The rcedit tool is not configured in the Editor Settings (Export > Windows > Rcedit). No custom icon or app information data will be embedded in the exported executable.");
		return;
	}

	if (!FileAccess::exists(rcedit_path)) {
		ERR_PRINT("Could not find rcedit executable at " + rcedit_path + ", no icon or app information data will be included.");
		return;
	}

#ifndef WINDOWS_ENABLED
	// On non-Windows we need WINE to run rcedit
	String wine_path = EditorSettings::get_singleton()->get("export/windows/wine");

	if (!wine_path.is_empty() && !FileAccess::exists(wine_path)) {
		ERR_PRINT("Could not find wine executable at " + wine_path + ", no icon or app information data will be included.");
		return;
	}

	if (wine_path.is_empty()) {
		wine_path = "wine"; // try to run wine from PATH
	}
#endif

	String icon_path = ProjectSettings::get_singleton()->globalize_path(p_preset->get("application/icon"));
	String file_verion = p_preset->get("application/file_version");
	String product_version = p_preset->get("application/product_version");
	String company_name = p_preset->get("application/company_name");
	String product_name = p_preset->get("application/product_name");
	String file_description = p_preset->get("application/file_description");
	String copyright = p_preset->get("application/copyright");
	String trademarks = p_preset->get("application/trademarks");
	String comments = p_preset->get("application/comments");

	List<String> args;
	args.push_back(p_path);
	if (!icon_path.is_empty()) {
		args.push_back("--set-icon");
		args.push_back(icon_path);
	}
	if (!file_verion.is_empty()) {
		args.push_back("--set-file-version");
		args.push_back(file_verion);
	}
	if (!product_version.is_empty()) {
		args.push_back("--set-product-version");
		args.push_back(product_version);
	}
	if (!company_name.is_empty()) {
		args.push_back("--set-version-string");
		args.push_back("CompanyName");
		args.push_back(company_name);
	}
	if (!product_name.is_empty()) {
		args.push_back("--set-version-string");
		args.push_back("ProductName");
		args.push_back(product_name);
	}
	if (!file_description.is_empty()) {
		args.push_back("--set-version-string");
		args.push_back("FileDescription");
		args.push_back(file_description);
	}
	if (!copyright.is_empty()) {
		args.push_back("--set-version-string");
		args.push_back("LegalCopyright");
		args.push_back(copyright);
	}
	if (!trademarks.is_empty()) {
		args.push_back("--set-version-string");
		args.push_back("LegalTrademarks");
		args.push_back(trademarks);
	}

#ifdef WINDOWS_ENABLED
	OS::get_singleton()->execute(rcedit_path, args);
#else
	// On non-Windows we need WINE to run rcedit
	args.push_front(rcedit_path);
	OS::get_singleton()->execute(wine_path, args);
#endif
}

Error EditorExportPlatformWindows::_code_sign(const Ref<EditorExportPreset> &p_preset, const String &p_path) {
	List<String> args;

#ifdef WINDOWS_ENABLED
	String signtool_path = EditorSettings::get_singleton()->get("export/windows/signtool");
	if (!signtool_path.is_empty() && !FileAccess::exists(signtool_path)) {
		ERR_PRINT("Could not find signtool executable at " + signtool_path + ", aborting.");
		return ERR_FILE_NOT_FOUND;
	}
	if (signtool_path.is_empty()) {
		signtool_path = "signtool"; // try to run signtool from PATH
	}
#else
	String signtool_path = EditorSettings::get_singleton()->get("export/windows/osslsigncode");
	if (!signtool_path.is_empty() && !FileAccess::exists(signtool_path)) {
		ERR_PRINT("Could not find osslsigncode executable at " + signtool_path + ", aborting.");
		return ERR_FILE_NOT_FOUND;
	}
	if (signtool_path.is_empty()) {
		signtool_path = "osslsigncode"; // try to run signtool from PATH
	}
#endif

	args.push_back("sign");

	//identity
#ifdef WINDOWS_ENABLED
	int id_type = p_preset->get("codesign/identity_type");
	if (id_type == 0) { //auto select
		args.push_back("/a");
	} else if (id_type == 1) { //pkcs12
		if (p_preset->get("codesign/identity") != "") {
			args.push_back("/f");
			args.push_back(p_preset->get("codesign/identity"));
		} else {
			EditorNode::add_io_error("codesign: no identity found");
			return FAILED;
		}
	} else if (id_type == 2) { //Windows certificate store
		if (p_preset->get("codesign/identity") != "") {
			args.push_back("/sha1");
			args.push_back(p_preset->get("codesign/identity"));
		} else {
			EditorNode::add_io_error("codesign: no identity found");
			return FAILED;
		}
	} else {
		EditorNode::add_io_error("codesign: invalid identity type");
		return FAILED;
	}
#else
	if (p_preset->get("codesign/identity") != "") {
		args.push_back("-pkcs12");
		args.push_back(p_preset->get("codesign/identity"));
	} else {
		EditorNode::add_io_error("codesign: no identity found");
		return FAILED;
	}
#endif

	//password
	if (p_preset->get("codesign/password") != "") {
#ifdef WINDOWS_ENABLED
		args.push_back("/p");
#else
		args.push_back("-pass");
#endif
		args.push_back(p_preset->get("codesign/password"));
	}

	//timestamp
	if (p_preset->get("codesign/timestamp")) {
		if (p_preset->get("codesign/timestamp_server") != "") {
#ifdef WINDOWS_ENABLED
			args.push_back("/tr");
			args.push_back(p_preset->get("codesign/timestamp_server_url"));
			args.push_back("/td");
			if ((int)p_preset->get("codesign/digest_algorithm") == 0) {
				args.push_back("sha1");
			} else {
				args.push_back("sha256");
			}
#else
			args.push_back("-ts");
			args.push_back(p_preset->get("codesign/timestamp_server_url"));
#endif
		} else {
			EditorNode::add_io_error("codesign: invalid timestamp server");
			return FAILED;
		}
	}

	//digest
#ifdef WINDOWS_ENABLED
	args.push_back("/fd");
#else
	args.push_back("-h");
#endif
	if ((int)p_preset->get("codesign/digest_algorithm") == 0) {
		args.push_back("sha1");
	} else {
		args.push_back("sha256");
	}

	//description
	if (p_preset->get("codesign/description") != "") {
#ifdef WINDOWS_ENABLED
		args.push_back("/d");
#else
		args.push_back("-n");
#endif
		args.push_back(p_preset->get("codesign/description"));
	}

	//user options
	PackedStringArray user_args = p_preset->get("codesign/custom_options");
	for (int i = 0; i < user_args.size(); i++) {
		String user_arg = user_args[i].strip_edges();
		if (!user_arg.is_empty()) {
			args.push_back(user_arg);
		}
	}

#ifndef WINDOWS_ENABLED
	args.push_back("-in");
#endif
	args.push_back(p_path);
#ifndef WINDOWS_ENABLED
	args.push_back("-out");
	args.push_back(p_path + "_signed");
#endif

	String str;
	Error err = OS::get_singleton()->execute(signtool_path, args, &str, nullptr, true);
	ERR_FAIL_COND_V(err != OK, err);

	print_line("codesign (" + p_path + "): " + str);
#ifndef WINDOWS_ENABLED
	if (str.find("SignTool Error") != -1) {
#else
	if (str.find("Failed") != -1) {
#endif
		return FAILED;
	}

#ifndef WINDOWS_ENABLED
	DirAccessRef tmp_dir = DirAccess::create_for_path(p_path.get_base_dir());

	err = tmp_dir->remove(p_path);
	ERR_FAIL_COND_V(err != OK, err);

	err = tmp_dir->rename(p_path + "_signed", p_path);
	ERR_FAIL_COND_V(err != OK, err);
#endif

	return OK;
}

bool EditorExportPlatformWindows::can_export(const Ref<EditorExportPreset> &p_preset, String &r_error, bool &r_missing_templates) const {
	String err = "";
	bool valid = EditorExportPlatformPC::can_export(p_preset, err, r_missing_templates);

	String rcedit_path = EditorSettings::get_singleton()->get("export/windows/rcedit");
	if (rcedit_path.is_empty()) {
		err += TTR("The rcedit tool must be configured in the Editor Settings (Export > Windows > Rcedit) to change the icon or app information data.") + "\n";
	}

	String icon_path = ProjectSettings::get_singleton()->globalize_path(p_preset->get("application/icon"));
	if (!icon_path.is_empty() && !FileAccess::exists(icon_path)) {
		err += TTR("Invalid icon path:") + " " + icon_path + "\n";
	}

	// Only non-negative integers can exist in the version string.

	String file_version = p_preset->get("application/file_version");
	if (!file_version.is_empty()) {
		PackedStringArray version_array = file_version.split(".", false);
		if (version_array.size() != 4 || !version_array[0].is_valid_int() ||
				!version_array[1].is_valid_int() || !version_array[2].is_valid_int() ||
				!version_array[3].is_valid_int() || file_version.find("-") > -1) {
			err += TTR("Invalid file version:") + " " + file_version + "\n";
		}
	}

	String product_version = p_preset->get("application/product_version");
	if (!product_version.is_empty()) {
		PackedStringArray version_array = product_version.split(".", false);
		if (version_array.size() != 4 || !version_array[0].is_valid_int() ||
				!version_array[1].is_valid_int() || !version_array[2].is_valid_int() ||
				!version_array[3].is_valid_int() || product_version.find("-") > -1) {
			err += TTR("Invalid product version:") + " " + product_version + "\n";
		}
	}

	if (!err.is_empty()) {
		r_error = err;
	}

	return valid;
}


text:
Edgar Berlanga: I desire Rounds, more suitable competition in 2021
MGM Grand convention core, Las Vegas – In a super middleweight contest, Edgar Berlanga (16-0, 16 KOs) persisted his streak of first round knockouts as he blasted out Ulises Sierra (15-2-2, 9 KOs) in lower than three minutes. (photo by means of Mikey Williams)
Berlanga landed some heavy punches from the birth. by using the midway point he dropped Sierra down after a few complicated hooks. Sierra changed into stumbling round and flew into the ropes, which counted as a knockdown.
Sierra made it up, he was attempting his most appropriate to survive, but he became decked for a 3rd time with a hook – and the combat was waved off by way of the referee.
Berlanga isn't focused on his streak of knockouts in one. He truly wants to face more desirable opponents who will take him some rounds.
He needs to face a higher degree of opposition and the Puerto Rican puncher expects to face better opponents in 2021.
Berlanga won even further motivation for his future after recently spending time along with his idol, former three division world champion Felix "Tito" Trinidad.
"[I want] rounds. The better competition, the superior opposition we battle, I believe we're going to get these rounds in. We ended 2020 with a bang. 2021 is a big yr for us, and i'm longing for it," Berlanga observed.
"Tito Trinidad changed into my idol. He still is. just being with him unfolded my eyes as to what boxing is about, the dedication, the focus, leaving the streets and the dangerous individuals alone."
Eddie Hearn Hits back at Tyson Fury: we are going to See Who Sh-ts Himself!
Oscar Duarte Blasts Out Avila, Lourdes Juarez Captures WBC Title

redpajama_set_name: RedPajamaCommonCrawl


KNOXVILLE, Tenn. (AP) This year is proving doubly rewarding for Lisa Leslie.
The three-time WNBA most valuable player and four-time Olympic gold medalist will enter the Women's Basketball Hall of Fame on Saturday. Three months later, the former Southern California and Los Angeles Sparks star will enter the Naismith Memorial Basketball Hall of Fame in Springfield, Massachusetts.
Although dozens of people are members of both halls of fame, Leslie is the first player to get inducted to each of them in the same calendar year. The only others were former UCLA and Cal State Fullerton coach Billie Moore in 1999, former Louisiana Tech coach Leon Barmore in 2003 and Connecticut coach Geno Auriemma in 2006.
Leslie is the WNBA's all-time leader in rebounds (3,307) and ranks second in blocks (822) and fifth in points (6,263). She was named the WNBA's MVP in 2001, 2004 and 2006, and she led the Sparks to consecutive titles in 2001-02.
This year's induction class for the Women's Basketball Hall of Fame also includes former Houston Comets and Brazilian national team star Janeth Arcain, former Louisiana Tech and Oklahoma State coach Kurt Budke, former Duke and Texas coach Gail Goestenkors, former Georgia star Janet Harris and former Oregon high school coach Brad Smith.
Arcain is a four-time Olympian who played on four WNBA championship teams with the Comets. Goestenkors, currently an assistant with the WNBA's Indiana Fever, owns a 498-163 college head coaching record that includes four Final Four appearances. Harris was the first NCAA women's basketball player to combine for 2,500 career points and 1,250 rebounds.
Budke, who was killed in a plane crash in 2011, is the first person to be inducted posthumously since Ora Washington in 2009. Budke led Trinity Valley to four national junior-college championships before posting a combined 192-99 record at Louisiana Tech and Oklahoma State.
Smith, who won 10 state championships in 27 seasons at Oregon City High School, is the first high school coach to get inducted since Leta Andrews in 2010.
On the eve of Saturday's induction, the Hall of Fame held an afternoon ceremony to name its south rotunda after former Tennessee coach Pat Summitt, who played an instrumental role in bringing this facility to Knoxville. This marks the first time the Hall of Fame has named a section of its building after anyone.
Summitt, a member of the Hall of Fame's inaugural class in 1999, won eight national titles and 1,098 games - the most of any men's or women's college coach - in 38 seasons at Tennessee. She stepped down as the Lady Vols' coach in 2012, one year after announcing she had early-onset dementia, Alzheimer's type.
Summitt didn't attend Friday's ceremony, but Lady Vols coach Holly Warlick spoke on her behalf. Warlick, who played for Summitt and worked as her assistant for 27 seasons, said she spoke to Summitt while visiting her home on Thursday.
Dana Hart, the Women's Basketball Hall of Fame president, said the hall's board of directors originally wanted to name the whole building after Summitt, but the former Lady Vols coach didn't want that because she believed ''the Hall of Fame is for all women - all women and men who have coached or played basketball.'' Hart said Summitt preferred the idea of having the rotunda named in her honor.


text:
This folder contains lint scripts.

check-doc.py
============
Check for missing documentation of command line options.

commit-script-check.sh
======================
Verification of [scripted diffs](/doc/developer-notes.md#scripted-diffs).
Scripted diffs are only assumed to run on the latest LTS release of Ubuntu. Running them on other operating systems
might require installing GNU tools, such as GNU sed.

git-subtree-check.sh
====================
Run this script from the root of the repository to verify that a subtree matches the contents of
the commit it claims to have been updated to.

```
Usage: test/lint/git-subtree-check.sh [-r] DIR [COMMIT]
       test/lint/git-subtree-check.sh -?
```

- `DIR` is the prefix within the repository to check.
- `COMMIT` is the commit to check, if it is not provided, HEAD will be used.
- `-r` checks that subtree commit is present in repository.

To do a full check with `-r`, make sure that you have fetched the upstream repository branch in which the subtree is
maintained:
* for `src/secp256k1`: https://github.com/bitcoin-core/secp256k1.git (branch master)
* for `src/leveldb`: https://github.com/bitcoin-core/leveldb-subtree.git (branch bitcoin-fork)
* for `src/univalue`: https://github.com/bitcoin-core/univalue-subtree.git (branch master)
* for `src/crypto/ctaes`: https://github.com/bitcoin-core/ctaes.git (branch master)
* for `src/crc32c`: https://github.com/bitcoin-core/crc32c-subtree.git (branch bitcoin-fork)
* for `src/minisketch`: https://github.com/sipa/minisketch.git (branch master)

To do so, add the upstream repository as remote:

```
git remote add --fetch secp256k1 https://github.com/bitcoin-core/secp256k1.git
```

lint-all.sh
===========
Calls other scripts with the `lint-` prefix.

redpajama_set_name: RedPajamaGithub


A. Mono for Android is a software development kit that allows developers to use the C# language to create mobile applications for Android-based devices.Mono for Android …... Please click button to get basic programming android for beginners book now. All books are in clear copy here, and all files are secure so don't worry about it. This site is like a library, you could find million book here by using search box in the widget.
B4A includes all the features needed to quickly develop any type of Android app. B4A is used by tens of thousands of developers from all over the world, including companies such as …... Please click button to get basic programming android for beginners book now. All books are in clear copy here, and all files are secure so don't worry about it. This site is like a library, you could find million book here by using search box in the widget.
Please click button to get basic programming android for beginners book now. All books are in clear copy here, and all files are secure so don't worry about it. This site is like a library, you could find million book here by using search box in the widget.


text:
Museveni Declared Winner in Uganda; Military Blocks Opposition Candidate's Home
KAMPALA, UGANDA – Uganda's electoral commission on Saturday declared President Yoweri Museveni the winner of the 2021 general elections. Meanwhile, Ugandan military and police surrounded the home of opposition leader and presidential candidate Robert K…
UN Says Breakthrough Achieved in Libya Transition Talks
CAIRO – The top U.N. official for Libya said Saturday that an advisory committee for representatives of Libya's different regions has proposed a way forward for choosing a transitional government that would lead the war-torn country to elections late t…
UN Rushing to Relocate Ethiopian Refugees Away From Sudanese Border
GENEVA – The United Nations and other agencies are rushing to relocate thousands of refugees camped out along the disputed Sudan-Ethiopia border to safer areas further away.Tensions along the border region between Sudan and Ethiopia have grown since th…


Best lip balm Ive tried!
This is hands down the best lip balm I have ever tried!
I work outdoors and need a lot of lip balm. I tried Ramona's lip balm and almost immediately felt the difference!
Cant and wont be without this!!


Superior Grip wet or dry. Coolmax lycra back for improved fit, flexibility and moisture management for warmer weather wear. Aquasuede Plus Palm for feather touch, durability and breathability. Key Area reinforcement.


Cooking Up A Storm offers fun-filled cooking demonstrations on a variety of themes and topics. Whether you're a beginner or a seasoned cook, join us for a learning experience where you won't have to lift a finger! See the Gallery for photo's to give you an idea what it entails. NEW!!!!! Kitchen accessory, bakeware and gadget demonstrations Invite a few friends for tea and host a demonstration. Includes a gift for the hostess, refreshments, and a demonstration of a variety of accessories, bakeware and gadgets. A cooking demonstration can be conducted at one of Cooking Up A Storm's venue's in Randburg or at a venue of your choice. The choice of venue is determined by the size of the group.


Hello from Pa. I need some advise on my OTA set-up. I have a Winegard Freevision antenna mounted about 15 ft AGL. According to tv fool most of my broadcast towers are within 15 miles in a westerly direction. ( 260-262 degrees ). For the most part reception is good except for occasional pixeling mostly on WHP 21. I ordered a EZHD antenna from Dennys Antennas in Michigan. I will be looking to relocate this antenna hoping for better outcome. I live outside Harrisburg in a rual setting with trees and hills around. Thanks for any help, here is my TV Fool info looking to get channels in the green zone. Jim.
Something more to add, I have about 50ft. of coax from antenna to a splitter then about 20 ft. to each of two tv's. On one tv I get 15 channels all very good reception. The other tv I only get 11 channels and the CBS is usually good during the day and gets worse at night. If I eliminate the splitter the tv that gets 11 will usually get 15, do I need an amplifier or preamp? Thanks, Jim.
Put up new antenna in a different location got all 15 channels on both tv's. Had some minor pixeling at times so I replaced rg 59 coax with rg 6. Now I get all 15 channels on one tv and only 14 on the other. I have tried rescanning and eliminate the splitter nothing helped. Why would I lose one channel?
Update Feb. 6, 2019. Erratic reception, I go days where all 15 channels are fine, then I start getting pixeling on a couple channels then one channel becomes unavailable can not rescan and get it back. Need help from someone.


text:
Rwandan court denies 'Hotel Rwanda' hero Rusesabagina bail, extends detention
Reuters | Posted: Oct. 23, 2020, 1:49 a.m. | Updated: Oct. 23, 2020, 1:22 p.m. | 2 Min Read
By Clement Uwiringiyimana
KIGALI (Reuters) - A Rwandan court extended the detention of "Hotel Rwanda" hero Paul Rusesabagina on Friday pending trial on terrorism charges and denied him bail, the judge hearing the case said.
Rusesabagina, a political dissident who has lived in exile in Belgium and the United States, was arrested in August after returning to the country and subsequently charged with terrorism and other offences.
"The fact that he is sick is not alone a ground to release him on bail," Theodosie Mukarugira said in a ruling via Skype.
She said the detention would be extended by 30 days starting from Friday so that the prosecution can do more investigations.
At his first court appearance in September, Rusesabagina declined to take a plea on all 13 charges facing him, saying he wanted to plead on a charge by charge basis.
In the past hearings, he admitted sponsoring FLN, a rebel group that wanted to oust Kagame, but denied any wrongdoing.
Early this month, Rwanda's top prosecutor said he would seek to merge the case of Paul Rusesabagina, with that of former rebels in state custody.
Rusesabagina, who says he was tricked into returning to Rwanda from abroad, has been denied his choice of defence lawyers, his family and their lawyer said in early October.
His defence team was appointed by the government of Rwanda, his family said.
(Reporting by Clement Uwiringiyimana; writing by George Obulutsa; Editing by Gareth Jones, William Maclean)
BOLD AND BEAUTIFUL BETTY WHITE: Co-stars remember the icon on her 100th birthday
City of Charlottetown expects to have all that snow cleaned up by Jan. 19
Annapolis County man gets bail on sexual interference, child porn charges
P.E.I. reports 231 new COVID-19 cases on Jan. 17, 2022
Deep Freeze Festival temporarily shuttered by unseasonably warm temperatures
Inverness County calls on province to provide Port Hastings roundabout update
Holiday Inn Express in Stellarton temporarily closed because of flooding


Sizes from 4'x4' to 8'x12'. These great value sheds feature strong 2" thick planed framing with shiplap cladding and a tongued and grooved floor and roof. The floor joists are spaced close together for strength. Other quality features include a strong door with a key lock fitted and glass windows fitted with beads. Pressure treated timber is available as an option.


text:
London Bridge est une station de la Jubilee line du métro de Londres, en zone 1. Elle est située sur la Duke St Hill, à proximité du Pont de Londres, sur le territoire du borough londonien de Southwark.

Station de correspondances, elle est incluse dans le complexe de la gare de London Bridge.

Situation sur le réseau

Histoire

Services aux voyageurs

Accès et accueil
La station est située Tooley street. Il y a également une entrée au 31 Borough High street.

La station est accessible aux handicapés depuis la rue jusqu'aux trains.

Desserte

Le week-end la station est ouverte 24 heures sur 24.

Intermodalité

Projets

À proximité
 Cathédrale de Southwark
 Pont de Londres
 London Dungeon
 The Shard.

Notes et références

Voir aussi

Articles connexes
 Métro de Londres (London Underground)
 Transport for London
 Liste des stations du métro de Londres
 Liste des stations fermées du métro de Londres
 Jubilee line
 Northern line

Liens externes
 .

Jubilee line
Northern line
Southwark (borough londonien)
Station du métro de Londres
Station de métro mise en service en 1900

redpajama_set_name: RedPajamaWikipedia


text:
The burden likely to come with LNG imports
Posted on February 27, 2018 May 24, 2018
Thal Sandy Tun considers the high risk of the government's new energy plan.
Recently, Frontier ran a news item on the revelation of the Myanmar government's plan to meet growing domestic electricity demand in 2021 by allowing private investors to import LNG (liquefied natural gas). The Ministry for Electricity and Energy said the four gas-fired power plant projects, the very first of their kind, with their investment values totaling approximately US$5 billion, will add more than 3,000 megawatts of capacity to the national grid. This would double the current output in the country, a significant development where coal and hydropower generation have been confronted by widespread protests on the grounds of negative environmental and social impacts.
Only one third of the population in the country now has access to electricity and Myanmar needs to boost its electricity production in order to meet domestic demand as well as to attract foreign investment. The government sees LNG imports as the answer which I think should only be an interim solution.
Although it is still unclear at what prices the LNG will be bought by the government or how long the purchasing contracts will run or what the financing scheme will be, experts have warned that the projects are highly ambitious and costly and there are examples of such projects having failed to come to fruition in the past.
If imported LNG would be replacing (or supplementing) domestic sources, such as new natural gas development projects in the Rakhine Offshore Basin, the new plan can only be evaluated by understanding the nature of the current global LNG import regime currently being practiced.
LNG, simply, is natural gas which is turned into a liquid form for easy storage and transportation using ocean crossing vessels. In liquid form, natural gas will generally take up about 600 times less space than it will in its gaseous state, making it possible and commercially viable to transport over long distances.
Traditionally, gas pipelines are used to transport the gas to a market where it is needed. However, countries which cannot transport it in such a traditional way due to technical and financial challenges turn natural gas into LNG and transport it in dedicated LNG tankers across oceans.
Basically, there are suppliers and buyers in the LNG import market. A supplier of LNG brings natural gas from an oil and gas field to an LNG plant where it is converted into LNG through processes like purification and liquefaction. Then the LNG is transported in dedicated LNG carrier vessels using ocean routes to key markets and areas of demand worldwide. Fundamentally, LNG projects require construction of an LNG plant, sometimes called an LNG train, and key marine infrastructure such as an LNG terminal to load the LNG onto the vessels. These elements could cost millions of US dollars, in addition to the project development costs of a conventional upstream natural gas project.
On the buyer's side, there is a need to ensure proper facilities exist where the imported LNG can be landed, offloaded, re-gasified and turned back into its original gaseous state, in order that the natural gas can be used for electricity production purposes. There are two main types of LNG landing facilities to choose from. The first one is called a Floating Storage and Regasification Unit (FSRU) which is a floating marine facility where LNG vessels can dock and offload LNG. The second type is an LNG receiving terminal which includes a marine jetty to offload LNG from vessels. The proposed projects in Myanmar are said to be furnished with a floating terminal to accept deliveries.
The difference is that an FSRU is used to import smaller volumes of LNG over a shorter period of time whereas an LNG receiving terminal is used to import larger volumes over a longer period of time. The FSRU option is generally a quicker option in terms of time to engineer, construct and commission it. In terms of cost, the FSRU ranges in hundreds of millions of US dollars although an LNG receiving terminal can cost in the billions. One thing to note is that the buyer of the LNG has to pay for these costs.
Therefore, if a project involving engineering, building and operating LNG receiving facilities is to be developed, the buyer of LNG, in this case the Myanmar government, will have to commit to buying the LNG over a longer period of time, more than 15 years generally. The reason is due to the high investment expenses linked with instituting LNG receiving facilities, with private companies wanting to ensure an attractive return on investment and sustainability of their projects. In addition, the prices of imported LNG will be future prices, which are more expensive than LNG spot prices and domestic natural gas prices. As a rough current comparison, the LNG spot price is approximately US$9.50/MMBtu while the price of domestic natural gas is about US$6/MMBtu.
Today, Myanmar has the capacity to generate about 3,000 megawatts of electricity. Hydropower accounts for about 60%, while thermal stations consuming domestic gas make up 40%, which is considered as both a balanced and a sustainable energy mix because of the fact that Myanmar has an abundance of rivers and natural gas reserves. Myanmar has four commercial offshore gas fields, of which 80% of the extracted gas is sent to Thailand, China and other countries. This arrangement was a critical source of foreign currency for the previous military government, back when domestic need for natural gas was low.
The Myanmar government is considering using liquefied natural gas (LNG) to generate power and meet the current shortage of electricity in Myanmar. It aims to procure more gas for developing new gas-fired power plants. At present, state-owned and privately run gas-fired plants are operating with limited natural gas supply.
From the point of view of time, using LNG to produce electrical power is currently the quickest option that is available because the engineering, construction, and commissioning of an FSRU to receive LNG from a supplier abroad can be achieved within about 3 years.
The main issue that using LNG to generate electricity will present to both the government and the general public is related to the very expensive price of LNG. This is particularly apparent when LNG is compared to other alternatives such as domestically available natural gas. Unless the most cost-effective LNG supply and most competitive LNG purchase prices are secured before entering into an LNG purchase agreement or electricity purchase deal, the government would likely have to bear the strain of heavy electricity subsidies. Most importantly, the growing cost of large amounts of LNG imports over a long period of time is likely to raise the prices of power and consumer goods which will hurt the general public the most, who are end users.
At the same time, the country risks ending up in a situation where we are inundated with electricity from imported LNG and the opportunity to use cheaper domestic natural gas effectively for power generation is diminished. In order to avert such a situation, domestic sources of natural gas, which are projected to become potentially available in 2023, should always be made a priority for the country in terms of future electrical power supply setup. It is locally available and cheaper, with a discount enjoyed by the government thanks to the nature of the prevailing production sharing mechanism.
To resolve the pressing power crisis, limited, short-term LNG imports are reasonable. However, the government should carefully weigh the costs of large-scale, long-term LNG imports, especially when domestic sources should be more readily available.
Thal Sandy Tun works for the Corporate Social Responsibility & Communications Department of MPRL E&P Pte Ltd. in Yangon. She has a B.A. in English from Yangon University of Foreign Languages and has also studied in Japan.
Posted in OpinionTagged electricity, energy, sustainable development, technology
Prev Lahu stories across borders
Next How Myanmar's ruling party keeps its lawmakers under control


I am thrilled to be a stop on the book tour for Fractured Beauty: The Fairy Tale Five by Adrienne Monson, Lehua Parker, Angela Corbett, Angela Brimhall, and Angela Hartley, hosted by JeanBookNerd! Be sure to click the banner above for more!
communication and sociology. She started working as a reporter for her local newspaper when she was sixteen and won awards for feature, news, and editorial writing. She has also done freelance writing. In addition to being an author, she works as a director of communications and marketing. She loves classic cars, traveling, and listening to U2. She lives in Utah with her extremely supportive husband and their five-pound Pomeranian, Pippin, whose following of fangirls could rival Justin Bieber's.
best. She graduated college with a BS degree in health, but decided she'd much rather experience the drama of life through her characters. She received an MFA in English and creative writing from Southern New Hampshire University and is a member of the Sigma Tau Delta English Honors Society, Romance Writers of America and Horror Writers Association. She lives in the heart of a city between two mountains with her husband, son and four dogs where spired castles dot every hill and fairy tales really do come true.


text:
Who Do You Think You Are? Magazine Subscription | History Magazines | Buysubscriptions
Next Issue: 11 Feb 2020
Who Do You Think You Are? Magazine Subscription
Build your family tree and discover your ancestry with Britain's best selling family history publication
Build your family tree and discover your ancestors with Britain's best-selling family history publication.
When you subscribe to Who Do You Think You Are? Magazine, each month we will provide you with:
Practical genealogy advice from leading experts
Features on what life was like in the past and how historic events affected our ancestors
Coverage of the latest online record releases and family history resources
PLUS behind-the-scenes stories from the Who Do You Think You Are? television series
Subscribe today for yourself – or as a gift – and enjoy the convenience of having Who Do You Think You Are? Magazine delivered directly to your door!
Savings calculated against the Normal Shop Price
Who Do You Think You Are? Magazine is packed with practical advice, from getting started in genealogy to expert tips, we show you how to build your family tree using online resources, such as the census and parish registers, as well as where to find more unusual documents. As the official companion to the successful BBC TV series, you can discover more about how the celebrity stories are researched and enjoy a range of features from military to social history.
"Who Do You Think You Are? Magazine is Britain's best-selling family history title. Blending practical genealogy advice with social history, it's packed with all the information you will need to build your family tree. Whether you're looking for guidance about DNA testing or trying to trace an elusive military forebear, our panel of expert contributors will help you break down your brick walls. We also provide up-to-date coverage of the genealogy industry, including news about the latest online record releases and the tools that will take your research further. There's never been a better time to start discovering your past!" - Jon Bauckham, Features Editor.
Q. When will my subscription start?
A. You can choose the first issue of your subscription during the checkout, so if you are buying as a gift you can make sure their first magazine does not arrive before a certain date. You will also receive a welcome letter stating the date of your first issue.
Q. My subscription includes an Added Extra product. When will this arrive?
A. Our Added Extras are sent separately from your first magazine, and should arrive within 28 days of your order date. If you do not receive your Added Extra in this time, please contact us.
Q. How can keep track of my subscription or change my delivery address?
A. By creating an account on buysubscriptions.com you are able to see when your next issue is due, change your delivery address, and renew your subscription.
A Who Do You Think You Are? Magazine subscription is the perfect gift for anyone who has a deep interest in ancestry. Each issue will help your giftee build their family tree, get started in genealogy and uncover the history behind where they live.
Every month the subscription will be delivered to direct to their door so you know they'll continue enjoying your gift with no fuss.
Ordering online is easy – during checkout you can:
Select the gift option at checkout and choose any delivery address in your chosen country
Select the start issue of the subscription – to ensure they get the next available issue after the special occasion
Set up BuySubscriptions account and you can manage your gift subscription online – where you can easily renew it over and over again and ensure your loved one never misses an issue
Give a loved one a gift they can enjoy every month, buy a Who Do You Think You Are gift subscription today!
Take a look inside Who Do You Think You Are? Magazine...


I am working with Windows 7 64 bits and 0.47 osmosis. I am interested in extract some countries from old planet.osm but my osmosis doesn´t work properly with planet.osm older than 2010. It seems it is a problem about the XML format. From 2010 all the files are in 0.6 XML format but older files are in 0.5 XML format or even 0.4 or 0.3.
"Warning: Expected version 0.6 but received 0.5 ... Thread for task 1-read-xml failed ... Node 2 does not have a version attribute as OSM 0.6 are required to have. Is this a 0.5 file? ... the execution is aborted"
Convert osm from 0.5 XML format to 0.6: I have no idea if this is possible. I found an old link about this (https://mapguy.wordpress.com/2009/11/06/how-to-make-your-own-movie-with-osm-evolution-part-i/ ) but it´s about converting from 0.4 to 0.5. Besides it works in Linux that It´s something I am not able to use.
Does anybody know how to fix this problem? Is it available in somewhere an older version of osmosis which allows to work with 0.5 XML format? Does anybody hear about a tool which converts XML formats?
Problem solved!!! I have tried the SimonPoole´s idea and it works perfectly.
I used osmosis 0.35 to migrate from 0.5 to 0.6: osmosis --read-xml-0.5 enableDateParsing=no file="input_0.5.osm" --migrate --write-xml file="output_0.6.osm"
After that I was able to extract my AOI with osmosis 0.47.
that would add the new required attributes and work as long as you're just processing the data for reading.
Having said that, the Osmosis version 0.35 should indeed work with the old files - what exactly is the error message, and are you sure that you've called 0.35 and not accidentally used the newer version?
I have tried to edit the XML but notepad ++ says that It is a too big file. Could you recommend me a programme which could manage files with the size of a planet.osm?
INFORMACIËN: Pipeline executing, waiting for completion.
ADVERTENCIA: Expected version 0.6 but received 0.5.
org.openstreetmap.osmosis.core.OsmosisRuntimeException: Node 2 does not have a version attribute as OSM 0.6 are required to have. Is this a 0.5 file?
If you need a to perform line-by-line changes to large files on Windows, try "sed" from http://unxutils.sourceforge.net/ .


Intertwining golden scrolls, bright silver beads, and a vibrant blue turquoise unite for a look you'll adore in the RimRock Turquoise Ring.
Sterling Silver & 1/10th 10k Yellow Gold and an Oval 10 mm x 14 mm Genuine Blue Turquoise Cabochon in a Bezel Setting.
*Natural Stones may vary in color and matrix.