text:
Beyond the Bush agenda
Opinion » Columnists
During pre-computer days, politicians, commentators, news writers, and business leaders could easily circumvent the absolute truth on the subject of their choice, without the fear of inflaming hordes of offended truth mongers. Computers and its offspring, the Internet, has seriously dampened this potential for seasoning the truth.
The Internet and its simplistic universal access to anyone with minimum dexterity, has compelled perpetrators of slanted thought to resort to spinning their thoughts, a less obvious manner of relaying what are reasonably accepted facts, but with sufficient orientation added or deleted to have those facts fall where the speaker or writer intends. At the top of our own hidden agenda list, is our intellectually perverted belief that most people seldom reveal the whole truth about their reasons for their actions and statements, and this makes for an interesting game of adult hide and seek, which occurs daily during politician interview time on TV.
Needless to say the 2004 presidential election had kept us very busy and provided a wealth of real and potential unseen agendas for agile minds to enjoy. Though we reserve our "exposé" of major serious hidden agendas for the body of this article, these are an on-going daily part of our lives, and we accept their presence as we do breathing and eating.
It is perhaps an unfortunate fact of modern times that we so easily accept that hidden agendas are now widely tolerated in the political arena displacing the trusted old saying of the Walter Cronkites of this world:" Telling it like it is " and replacing it with "Buyer beware". Since politicians are capable of any ploy to garnish votes, most citizen/voters have long ago reduced their expectations of integrity in politics to that which exists today.
The national media professionals and the games they play in trying to help the side which they agree with without being overtly obvious, are perhaps the hidden agenda exponents where our expectations of ethical conduct are the highest, and oddly enough we are not generally disappointed. This does not mean that sides are not adopted. It underlines the fact that both the National Print and the National TV media, allow their bias to occasionally manifest itself when it exists, and when they opt for deceit, they use frequency rather than passion, thereby avoiding self-evident attestations of duplicity.
Politics, at the highest level, is where we find the most serious deviations from the straight and narrow, though politicians at the lower levels do not waste those early years as they hone their art in anticipation of greater opportunities. The war in Iraq has reinvented the words hidden agenda but we would like to look beyond the many popular reasons, which are said to have provided the true motivation for this war. For the record, however, it is thought that G.W. Bush "would have wanted to improve on his father's performance, or "wished to complete his Dad's unfinished business", or "wanted to secure a piece of the Arabic Oil patch", or "preemptively protect the U.S. friends in the area, Saudi Arabia and Israel". No one really believed the official Government guaranteed reasons and they of course merit little attention.
The U.S. military is continuously at war in a manner that escapes public attention, since it generates few explosions on color TV screens. The details of its theatre of war are a closely guarded secret to all but the highest echelons of government hierarchy and we speak of no less than the U.S. Government spending paradise, the Defense budget. In the mid-eighties Ronald Reagan theorized that he could scare the Soviet Union out of their foxholes by increasing the U.S. military spending. He assumed that by spending $486.5 billion on military requisites, as he did in 1985, the Soviet thinkers who possess a sufficient grasp of mathematics to have been first to occupy space, would surely realize that since they were spending only a minor fraction of that as a counter measure, there would be no place for them to hide. Obviously, as with Federal elections, whoever spends the most money wins, right?
Eventually, President Bill Clinton, having no war to needlessly spend money on, and striving to attain that political illusion, a balanced budget, caused the pace of military spending to regress and diminish to the consternation of the generals, the appointed administrators of wars, whose military potential can be severely hampered by peace. The considerations of the military establishment are not limited to military strength and involvement. The entire system of war cannot survive without a strong back-up structure commonly known as the league of Defense Contractors, and a made to order philosophy called Military Preparedness. By 1999 U.S. military spending had shrunk to a mere $261 billion, barely 3 times that of China, and 8 times that of Russia, perhaps too close for comfort for followers of the Reagan doctrine.
Enter George W. Bush, the savior of the military and a man who believes that hidden agendas are what governing is all about. The U.S. will be saved whether they like it or not. There is nothing like a war to bolster military strength, and he found one. The point to be appreciated here is that the War in Iraq is more likely to have been initiated by the U.S. military establishment's need for a strong Defense Industry, than any other hidden agenda being attributed to captain G.W. Bush and his band of pirates.
It is probable that to the military establishment, the price paid in fatalities and casualties, as well as a severely wounded economy at a time when China, India, and Europe are making giant international strides, were believed to be a small price to pay, for a critical resurgence of US military power. In 2006 U.S. Defense spending, including non-budgeted items, is expected to approximate $525 billion, which hopefully should be sufficient to offset the total spending of the categorized "Potential Enemy Nations" of the U.S. whose total military budgets are expected to surge to $19 billion.
The perception that the Iraq disaster may possibly have had as its roots in the future well-being of the U.S. military apparatus must surely offend a great number of people. The worst is still ahead however, the war premise being but a part of a more grandiose hidden agenda which the far right reserves for an unsuspecting America .
When the fiery legend of Quebec politics, Rene Levesque, originally an extreme left socialist, was asked how far he was prepared to go towards communism, he answered: "I am a socialist with a direction. It is up to my opponents to stop me." When William Zeckendorf elaborated plans to add size to New York City, he was also asked how far he intended to go, and his answer was: "The ultimate maximum". Would these answers not serve George W. Bush if asked the question: "How far to the right would you take the United States of America if given the opportunity?
The radical right philosophy by its nature is quite simple and consists of the dominance of the few over the many, within the confines of the political U.S.A. Their struggle should not be confused with the hidden agenda of the neo-conservatives, a movement created by Irving Krystol in the 1950s and whose stalwart proponents today include Paul Wolfowitz, Richard Perle, Frank Gaffney, and the charming John Bolton. Their motivation for getting up in the morning is to create an all-powerful USA capable of dominating the world and therefore be able to assist their friends who are equally to the right of right and may need assistance to fulfill their agendas.
George W. Bush has invited these specialists to assist him in his enterprise and has provided them with an open road for their own narrow objectives. Together they have failed miserably and only succeeded in bankrupting the federal budget, alienating traditional friends of the U.S. and creating a gamut of new enemies. Despite these results, they have now talked themselves into positions where they have now infiltrated and infected the World Bank and United Nations organizations, and continue their mindless interferences, with little true regard for the well being of the real people of the U.S. For anyone wishing to fully understand the neocons and their true agenda, a good place to start is by clicking on their pictures on the Christian Science Monitor site: "Empire Builders".
George W. Bush is not a neo-conservative. He surrounded himself with these parasites in the hope that their agenda of dominance through power would be invaluable in the pursuit of his own prized goal which is: To help perpetuate a wealth based aristocratic class of families, companies and individuals of which he believes himself to be part. His program he assumes could be achieved by favoring the powerful in all ways possible and since the formula entails disadvantaging the lesser classes, so be it. At every turn, every opportunity he has proposed legislation and taken decision with that orientation as a constant. Since it is apparent that this stratagem in a free society cannot be realized in only two Presidential tenures, effort is being made to extend its influence beyond the hidden agendas for current implementation. His Social Security reform package is the ultimate reflection of that effort.
His roots are from a family deeply embedded in old money going back generations, and involved in financings ably described in the movie Fahrenheit 911, which details some of his family's international financial dealings.
He chose a Vice-President whose sole interest is the accumulation of wealth, and whose life is intertwined with wealthy individuals and companies.
He, and his likes, designed a taxation system favoring the wealthy, while depriving the country and its average people of sufficient revenues to maintain a stable economy.
He stood by while American companies outsourced jobs to developing countries thereby encouraging this process, and at the same time eroding labor union powers, an important hidden subagenda.
He reduced the budget designed to monitor and prevent illegal immigration, surely with the thought in mind that he will thereby, help to lower working class costs and favor employers.
He created the reasons for a war that in a few years inflicted a direct cost to the economy, therefore to everyone, of more than $400 billion, most of which will find its way to benefit the few, the defense contractors and their controlling interests. As wehave previously noted, under President Clinton, this spending was severely constrained and the war industry overlords in their view, were deprived of anywhere from one half to one trillion dollars of revenues during those eight years, and the Bush administration wasted no time in initiating the process for making that up.
The proposed Social Security Reform is receiving little public support and, if anyone wishes to know why that is, a good place to start is on the Century Foundation site: (www.socsec.org/), and they should read the article "The Point of No Return", among others. We are in our analysis more interested in the reasons for this project, in the light of the G.W. Bush agenda for the furtherance of a society class based on status through wealth. We note that the White House's promotion of this Social Security reform is based on a potential crisis that would occur by the year 2017. Does this not remind us of another crisis? Does Weapons of Mass Destruction ring a bell?
Why is this project so important to the ultimate right wing proponents? Could it be that privatizing Social Security even partially, would create a massive amount of revenues for the controlling interests of Insurance Companies, Investment Dealers and other Financial Institutions in the act of providing Annuities, Stocks and Bonds, and charging unregulated commissions for these transactions. Additional revenues would accrue from hidden costs, such as Safekeeping and Administrative charges, Bond spreads, New Issues, and the perennial Stockbroker inducements to trade? It is clear that even this project presented as a Godsend for the young who would otherwise suffer the agonies of a moneyless retirement, even that is in reality a nefarious scam designed to enable the powerful to get richer on the backs of the deprived.
Meanwhile, in the background looms a formidable adversary who was deeply admired as a first lady and who is now a respected Senator from the State of New York. To them, she stands as tall as the Statue of Liberty as a future deterrent to their social revolution. Nowhere does the horizon provide us from either side with any other public figure who could enter the next presidential nomination or election contest against her and seriously expect to win. It is not a wild assumption to believe that her agenda must surely involve matters, orientations that are in serious conflict with the Radical Right and the Neo Conservative's master plan for a docile society.
All our attention for the coming years should be riveted on the intrigues which they will undoubtedly unleash to perpetuate their designs on a society which they repudiate, since it is a society based on the principles of equality. Our question therefore should be: They who display so little social morality and do not enforce laws that are inconvenient to them, how far will their basic instincts lead them to perpetuate their ultimate hidden agenda?
Paul Forest
PolForest@aol.com
Discuss this article on Pravda.Ru English Forum


The 30-2nd Deceive based on how to Head University or college Old fashioned paper Improbable, you intend to have the ability to begin creating your report particularly away from you. When you don't discover how to start out your essay or wherever to find helping facts, we'll be thrilled to be of assistance. Best suited, it is really about figuring out easy methods to prepare an application essay. The greater you advise us about your requirements, the better essay assistance we'll be able to supply. Get in touch with us and find out the most beneficial essay report. University students have an awful lot of essays and explore documents to compose, so there's virtually nothing unusual within the simple undeniable fact that specialized freelance writers largely tackle these sort of tasks. After you compose the essay yourself, plan to working experience numerous pressure, especially if you ever do not have the creating skillsets and comprehension about scholastic essay producing. It's the impression dissertation help london that sums the total essay. The title is required to be clean and enjoyable consequently making you prefer to look at essay. Learning to write a fantastic essay going is necessary. It actually is about selecting techniques to make sure that it's realistic that you simply finished look your university or college training, a very expensive excitement, while using the optimum rate of success for several of this school duties. 1 strategy is which should they may be often worrying out about loosing their scholarship they won't play the game in addition to they need to. Undertaking to concentrate on a game whereas developing to ensure that your marks are awesome consequently the sportsperson doesn't eliminate the scholarship is reasonably neurological-wracking.
If there's a technique to publishing a process paper, it's to select the possibility to take into consideration the ways you may have noted like you hadn't experienced them just before. Only simple green collections which may come to be used by blended purpose. Just look for the time once you get your document! To run, you would like to contemplate quite a few parts. Don't makes use of the margins or compose a modification within the line it affects. In cases where a individual buys this kind of items, he's gotten the most effective to utilize it just like a resource for one various old fashioned paper, or maybe just present it as a his individual. Ways to Go University Pieces of paper – Introduction Consequently, it's needed to appreciate about composing the moving. You need to understand only a few primary rules and then the moment in time you have mastered the design, then composing that progressing will probably be simply a cakewalk! The going should explain the topic of the paragraph.
By way of example, if the key phrases are usually brief keyword phrases, make each one of the headings small words ( as an alternative to, to illustrate, comprehensive lines ). An appropriate heading on an essay is developed in the best a portion of the section which it's which represents. Contemplate http://colegioebenezer.edu.co/?essay=essay-good-sites-any-there-are-writing.html how you'd adore to get into the matter that will create your disputes purposeful. Some sample Part Headings The second test headings usually are meant to be applied only as a blueprint. Then you need to change the words with regards to the criticism. The principle moving from any write-up is really the most important and crucial area of the documents. Towards the top correctly-fingers corner of this specific webpage, placed the article variety, which is only one. Carrying on considering the MLA formatting, the likely must be put in the most beneficial rendered spot area about this site. This web site details several of the levels linked to composing a collection-located investigation papers.


text:
Eric Firstman
Firm Spotlight
Employers' Dilemma: Comply Now with New Employment Laws or Wait Out Court Challenges?
Meyers Nave Elevates Three Attorneys to Principal
Jose Sanchez Selected Among Sacramento's "Best of the Bar"
Housing Law Update: A Summary of California's New Housing Laws
Infrastructure in LA: Why is the Solution so Difficult?
Construction Law Attorneys Who Actually Try Cases
Meyers Nave Proudly Serves as Go-To Land Use and Environmental Counsel on High-Profile, Large-Scale Projects Throughout California
Women's Initiative: Meet Our Women Practice Group Leaders
Principal Eric Casher and Diversity Fellow Victoria Ayeni Recognized as "Gamechangers"
Meyers Nave Lands Top Construction Law Specialist, Eric Firstman
OAKLAND, CA – Meyers Nave has landed top Northern California construction trial attorney Eric Firstman to further secure its position as the preeminent construction law practice in the state. In making this announcement, the firm also named Firstman the Practice Group Chair of the firm's restructured Construction and Facilities law practice. The Practice Group was restructured to emphasize its specialization and full service support of large scale construction project management, litigation and trial practice. Firstman is joining the firm as a partner in its Oakland office.
With over 30 years of experience in construction law, Eric represents public entities and private companies in large, complex construction projects from project development and contract negotiation, to project administration, dispute resolution and complex trials. His experience includes billion dollar and larger projects for cities, counties and municipalities as well as hospitals, school and special districts, seaports, airports and other commercial facilities in both bond funded projects, individual projects and capital improvement programs.
Eric's complex trial practice has included verdicts, final awards and judgments in cases involving power facilities, irrigation facilities, colleges, libraries and wastewater treatment plants, state court and federal court jury verdicts and court trials and arbitrations. He has been named a Fellow of the Litigation Counsel of America, a prestigious trial lawyer honorary society whose membership represents less than one-half of one percent of all lawyers in the U.S. Fellows are selected after being rigorously evaluated on their effectiveness and accomplishments in litigation and trial work, along with the attorney's reputation for exceeding the highest ethical standards. Eric also regularly serves as guest faculty in the trial advocacy program at Stanford Law School and several continuing education programs.
Formerly a name principal of Wulfsberg Reese Colvig & Firstman located in Oakland, Eric's most notable projects and clients include major hospital and healthcare construction and renovation programs, two major airport expansion projects, a seaport expansion, stadiums and municipal event center projects, and multiple city, county, school district and college facilities bond programs, water district and waste water district expansion programs.
The Construction and Facilities Practice Group is one of the area's preeminent construction law practices and offers complete construction and facilities law services to public agencies, private owners, hospitals, developers, and subcontractors during all stages of construction projects. Some of the notable projects the practice has handled include one of the largest class action disability lawsuits in the state in response to claims of violations of both the ADA and Section 504 on behalf of a major city as well as lead construction counsel for one of the largest school districts in the nation, helping the client complete over $1 billion in construction work without any litigation since 2005.
"This is a strategic merger which affords us competitive advantage and will complement our robust land use, real estate and environmental practices," said Meyers Nave Managing Principal David Skinner. "With Eric and his over 30 years of construction litigation experience, Meyers Nave is the preeminent law firm for large scale, complex construction projects in the state", Skinner added.
"Joining Meyers Nave gives the firm and me the opportunity to attract Fortune 1000 corporations and large scale projects and cases to our already impressive list of public and private projects. These clients are seeking more value in their legal representation and, I believe, Meyers Nave offers the greatest value in the state considering the top notch trial experience and deep litigation support the firm now offers," Firstman said. "We're positioned well to meet the needs of value conscious, results-oriented clients and it should help fuel this firm's growth for years to come," he added.
Eric is AV rated by Martindale Hubble, Martindale Hubble's highest peer review rating, honored by Northern California Superlawyers in construction litigation for 2007-2013, and placed on Corporate Counsel's list of Superlawyers from 2008-2013. Eric received his B.A. at the University of California, Los Angeles in 1980 and his J.D. from the University of California, Hastings College of Law in 1983.
About Meyers Nave: Founded in 1986, the law firm of Meyers Nave is recognized for its work with all types of public entities and non-profit entities in California. The firm provides the full scope of legal services to cities, counties, successor agencies, school districts and special districts statewide, as well as to all types of non-profit entities. Meyers Nave's areas of practice include labor and employment, torts, economic development, city attorney and general counsel representations, first amendment, eminent domain, litigation, writs & appeals, public contracts, construction & facilities, healthcare, land use, public finance, crisis management, education and environmental law.

redpajama_set_name: RedPajamaCommonCrawl


You probably noticed that Drawing the Times looks a bit different. We made some necessary changes: instead of showcasing the current special on the homepage we now feature new and relevant stories. The overview of the different elements of Drawing the Times on the homepage are more balanced. You can share each story now. And to be able to continue working on this great platform you can find information about supporting us and working with us.


text:
'use strict';

const RSVP = require('rsvp');
const app = require('../app');

const postJSON = require('./ajax/post_json');

const {
  setPath
} = require('./helpers');

module.exports = () => {
  return new RSVP.Promise((resolve, reject) => {

    const {
      dataEditor,
      codeEditor
    } = app.getEditor();

    const gist = {
      'description': 'temp',
      'public': true,
      'files': {
        'data.js': {
          'content': dataEditor.getValue()
        },
        'code.js': {
          'content': codeEditor.getValue()
        }
      }
    };

    postJSON('https://api.github.com/gists', gist).then(({
      id
    }) => {
      app.setLoadedScratch(id);
      setPath('scratch', id);
      const {
        href
      } = location;
      $('#algorithm').html('Shared');
      resolve(href);
    });
  });
};

redpajama_set_name: RedPajamaGithub


text:
States Start Shoring Up Rainy Day Funds
States are taking funds that could be used to avert cuts and instead putting them in the bank. Is that the right move?
By Ryan Holeywell, Ryan Holeywell | November 1, 2011
The budget Rhode Island Gov. Lincoln Chafee signed earlier this year includes something for just about everybody to dislike: a bevy of new taxes and fees; $100 million in state spending cuts; increases in premiums for families using Medicaid; and a hiatus on new school construction.
Yet at the same time Rhode Island officials were also putting money into the state's rainy day fund where, for at least the immediate future, it likely won't be spent. The move may seem counterintuitive, but it's not unusual. As state lawmakers nationwide are making difficult decisions about what programs to cut, they're simultaneously storing away millions of dollars that could be used to help ease the pain.
"There was zero debate about putting it back in," says Jerry McDaniel, director of Florida Gov. Rick Scott's policy and budget office, referring the restoration of its rainy day fund. This fiscal year, Florida put $213 million back into its rainy day fund after pulling more than $1 billion from it in the 2009 fiscal year. It was the first time money's been added to the fund since that withdrawal. "Everybody's for it. Everybody's in favor of it."
In the wake of the recession, more than 70 percent of states used their rainy day funds to help plug budget gaps, and some states completely exhausted those funds. Using those reserves helped reduce the need for big tax hikes and likely made spending cuts smaller than they would have otherwise been, according to the Center for Budget and Policy Priorities (CBPP).
Those actions reduced the value of state balances – which include both rainy day funds and other reserves – from $69 billion in FY 2006 to $31.5 billion in FY 2010, according to the National Association of State Budget Officers.
But now a growing number of states are shoring up their reserves and restoring the money they pulled out, even though the economy hasn't fully rebounded. While revenue for states has been improving, in many places, it's still not back to its pre-recession peak. States collectively faced a $103 billion budget gap as they approached the current fiscal year, according to CBPP.
In some cases, the decision to pump money into reserves is largely out the control of state legislators, with constitutions and statutes governing when the money must be paid back and in what quantity. But in many cases, state lawmakers and budget officials are actively appropriating those funds, reasoning that as rough as the economy is right now, a double-dip recession could be worse -- and they want to be prepared.
"Having gone through this great recession, and these huge cuts, I think there's a mindset of not knowing what's coming," says Scott Pattison, executive director NASBO. "If we have a double-dip, it makes them really uncomfortable to have rain day funds close to zero."
States also pump up the funds to please ratings agencies, which want to see that states have a cushion in case of the unexpected. A downgrade would increase the cost of borrowing for states.
In a sense, making transfers to the rainy day fund is a gamble. If the economy worsens, states will indeed have reserves available to help mitigate cuts. But if the economy improves, they'll have been storing away resources at a time when they may have been cutting programs and personnel unnecessarily.
For Rhode Island's leaders, the decision to put $22 million it borrowed two years ago back into the reserves was driven largely by the state's existing laws. The state is only allowed to spend 97 percent of its revenue, with the rest going to the rainy day and capital funds. Another state law requires Rhode Island to quickly repay the money it borrows from the rainy day fund. And a constitutional amendment passed in 2006 – shortly before the recession – raised the minimum balance of the rainy day fund from 3 percent of the budget to 5 percent. "It happened when things were looking a little better," says Thomas Mullaney, the state's budget officer. "Then all of a sudden, you're getting less revenue in, and you can spend less of it."
As a result, the state has increased its reserves, even as it continues to make painful budget decisions.
Such moves are becoming more prevalent. Projections made by NASBO earlier this year, based on governors' budget recommendations for the current fiscal year, showed 18 states on pace to increase their rainy day balances, compared to just 5 that would further deplete them. Another 27 were on pace to have an unchanged balance. At the same time, many of the same states building up their reserves were also cutting spending in a variety of areas. NASBO is currently compiling data based on enacted budgets.
This fiscal year, North Carolina legislators gave a $150 million infusion to their rainy day fund, bringing its total to nearly $300 million – the first time the fund has gotten money since 2007, said state budget director Andy Willis. State law requires a portion of the surplus to go to the fund, but a newly-elected conservative legislature went well beyond the requirement.
The move came in midst of steep layoffs of state workers, including more than 3,000 University of North Carolina system employees who lost their jobs due to cuts. Willis acknowledges that it can be difficult to explain layoffs when there's being money added to the bank, but rainy day funds likely couldn't have spared those jobs.
"Would that $150 million have eliminated our $2.6 billion in cuts?" Willis says. "Yeah –by $150 million. It's very small, compared to what we had to do."
With uncertainty facing the state – include the ever-present risk of a hurricane; a possible double-dip recession; and looming federal spending cuts – Willis says elected officials are planning for the worse, even if things already seem bad.
Meanwhile, voters across the country seem to be signaling support for building up reserves. A year ago, voters in four states – Hawaii, Oklahoma, South Carolina and Virginia –approved ballot measures that would expand rainy day funds. Next week, voters in Washington state will decide whether to put a larger portion of future surpluses into the rainy day fund during unusually bountiful times.
At the end of last fiscal year, Oklahoma was able to make a $249 million deposit into a rainy day fund that had previously been completely depleted. Oklahoma legislators didn't make a special appropriation. The funds came as a result of state law that automatically sends a portion of the surplus into reserves, and those surpluses haven't existed in recent years.
"The part that gets hard is coming out of budget cuts and still doing this," says Brandy Manek, director of budget and policy for Oklahoma. But, she notes, the rainy day fund has helped the state weather difficult times in the past, so she's glad the fund is being replenished.
"If we had not had these rainy day funds over the past two or three years, the furloughs and the cuts would have been much more severe," Manek says. "We need to have that there in order to give us stability across those years."
Not every state is taking that approach. Washington's rainy day fund was created in 2007, just as the economy began its nosedive, and the fund has essentially remained perpetually empty. The funds it has are expected to be tapped yet again this budget cycle. "In these years, when we've been down, nobody's complained about taking it out," says Marty Brown, director of the state financial management office. "They know that's what it's there for."
And some experts don't think it's prudent to shore up rainy day funds right now, since the recession is still affecting state revenue.
Elizabeth McNichol, a senior fellow at the Center for Budget and Policy Priorities, emphasizes the importance of building up reserves, but she also believes it's important that states use those reserves during hard times. A report by her colleagues found that there were seven states that entered this fiscal year with large reserves that they could have used to help lessen the size of spending cuts. Just two did so: Nebraska and Iowa.
The poster child for the debate is Texas, which faced an $18 billion shortfall as it approached the current two-year budget cycle but failed to tap its $6 billion in reserves. Residents there are now enduring deep cuts to education programs and health care in particular.
What may really be happening is fiscally conservative legislators trying to shrink government to what they view as a more sustainable size in the long-term. If that's the case, then trying to mitigate those cuts with funds that could otherwise go in the bank would be counterproductive to their goals.
"If you're making structural adjustments, and you have money left over it, you can put it in a rainy day fund," says William Fox, director of the Center for Business and Economic Research at the University of Tennessee. "It's not a bad plan."
Still, Fox says states should establish detailed rules ahead of time that dictate, based on fiscal conditions, when they'll shrink rainy day funds and when they'll grow them. That way, these types of decisions don't have to be made annually.
Michigan Gov.'s Plan to Increase Savings Draws Mixed Reaction
Michigan Gov. Rick Snyder's $50.9 billion budget proposal this week included stocking away more savings while spending more on education, roads and heath care.
Washington, D.C., Not Spending $417 Million Budget Surplus
The District of Columbia announced a $417 million surplus for its 2012 fiscal year, the highest surplus in recent memory and setting up an immediate fight between leaders on saving versus spending the money.
States Inch Closer to 2008 Budget Levels
A new report shows state revenue and spending still hasn't returned to pre-recession levels. But it's getting close.
In Texas, Prop. 6 Would Tap Trust Fund for Education
Facing $4 billion in education cuts over the next two years, voters will decide whether to authorize dipping deeper into the state's $25 billion education trust fund to make up some of the difference.


text:
Q: Search Menus in R Markdown? Using a loop in R, I generated 100 random datasets and made a plot for each of these 100 datasets:
library(ggplot2)

results = list()

for (i in 1:100)

{

my_data_i = data.frame(var_1 = rnorm(100,10,10), var_2 = rnorm(100,10,10))

plot_i = ggplot(my_data_i, aes(x=var_1, y=var_2)) + geom_point() + ggtitle(paste0("graph", i))

results[[i]] = plot_i

}

list2env(setNames(results,paste0("plot",seq(results))),envir = .GlobalEnv)

What I am now trying to do, is make a Rmarkdown/flexdashboard that can be saved as an HTML file, and:

*

*Contains all these plots

*Allows the user to search for these plots (e.g. type in "plot76")

In a previous question (How to create a dropdown menu in flexdashboard?) I learned how to do something similar.
But I am still trying to figure out how I can get something like this to work. I would like there to be a single page with a search bar, and you can type in which graph you want to see.
Can someone please help me out with this? Are there any online tutorials that someone could recommend?

Thank you!

A: This is a close solution depending on how much you need the type feature. First in the YAML  specify toc and theme as below. This will create a table of contents and allow the users to click each anchor in the list and it will bring them to the appropriate figure. Second use knit_expand() and knit() to dynamically create html blocks in your code. I did 5 plots here but it should scale to 100.
---
title: "plots"
author: "Michael"
output:
  html_document:
    toc: true
    theme: united
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)

library(ggplot2)
library(glue)
library(knitr)

```

```{r,echo=FALSE, results = 'asis'}

my_data_i = data.frame(var_1 = rnorm(100,10,10), var_2 = rnorm(100,10,10))

out = NULL
out2 = NULL
plot_i = NULL
for (i in 1:5)
{
cat('\n## Plot = ', i, '\n')
plot_i = ggplot(my_data_i, aes(x=var_1, y=var_2)) + geom_point() + ggtitle(paste0("graph", i))

out2 = c(out2, knit_expand(text = "{{print(plot_i)}}" ))

cat('\n')

}

```

`r knit(text = out2)`

redpajama_set_name: RedPajamaStackExchange


I apologize for not having posted anything for awhile but I finished 30 Owl Hats in three weeks! Not bad, right?! So now I'm on a project to make three tote bags, super excited because I'm making them in different colors 🙂 Will post when done.
So I made this purse with a matching necklace for a three year old, I was told it kind of looks like a claw, lol 😋 I guess I need to keep working more at it!


Copyright© 2018 | MYConference Suite Registration | D.E. Systems | All Right Reserved.
Or any other creative idea you have!
The main stipulation is that the special be available only to those attending the CRA Regional Trade Show in which you are exhibiting.
When you decide to offer a Show-Only Special for a CRA Show, we will support your program participation extensively before and during the show.
The deadline to be included on the printed handout at each show will be 30 days prior to the show: February 9, 2018.


text:
Indie Weekly (Week 28, 2018)
POST | Indie Weekly
By Richard Alvarez
Here are the top indies you might have missed from last week! Let us know your favorites on Twitter.
8. Escape from Tethys
7. Mars or Die!
6. Mindball Play
5. The Spiral Scouts
4. Pato Box
3. Danger Zone 2
2. Indie Pogo
1. The Spectrum Retreat
Escape from Tethys is a pretty unforgiving Metroid-alike. Save points are rare, your health is low and combat is difficult – in part due to the lack of 8-way shooting. In a sense, it maintains the toughness of the original Metroid despite a full mini-map. The difficulty didn't turn me off, but there is an Easy mode I'm considering. More importantly, while the combat is a challenge, it's certainly not poorly designed. The first boss makes that immediately clear. As you watch and listen for cues, you'll learn the points at which you need to jump around hazards, before closing in on him to drain some life.
The upgrades seem to be more combat-focused as well. My first unlocks were a powerful secondary weapon and then, more ammo for that weapon. There are mobility upgrades as well but I haven't gotten to those just yet. As for presentation, the music and pixel art are well done though, not particularly memorable. In short, if you're looking for a more combat-oriented Metroid, consider Escape from Tethys.
Steam ($4.99)
We are fans of 34bigthings here at Notable Releases. Redout is a force unto itself and I enjoyed my review copy of the more recent Super Inefficient Golf. Naturally, I was excited to see what was in store for their latest entry. Billed as a mix between tower defense and roguelite, Mars or Die! has you conquering Mars on behalf of an absurd fascist idealgue. You start as Scout Bean, an engineer with a shield to withstand attacks. You later get the ability to also control Major Bob who carries a firearm instead of shield.
The central loop starts you off with gathering resources and building. You can build towers like auto-miners which extract resources from crystal depots. In turn, these resources can be used to build more towers: like armories, turrets and oxygen tanks (remember, you're on Mars). Once the ambush begins, you'll need to be ready to fight and survive. With Scout Bean, turrets are that much more important since you have no means of offense.
This loop is engaging and I like having active control of an avatar on the battlefield. Furthermore, the bonus goals felt just out of reach in a way that offered a challenge and kept pulling me back in for one more try. To that end, I'm very surprised at the negative user reception thus far. I thoroughly enjoyed my time and am looking forward to grabbing the bonus goals and unlocking Endless. With that, Mars or Die! slides into my recommendations for the week.
Steam ($19.99)
As a fan of Super Monkey Ball and Marble Blast Ultra, it would appear that 3D marble platformers never quite hit like I would have liked. Mindball Play enters the fray with a Mario Kart meets Marble Madness entry. While this makes a great local and online multiplayer game with friends, the story mode is surprisingly well-considered here.
Each race has a fun intro blurb that tells a story while introducing mechanics: like McCheaty finding an illegal stash of pickups. On this level, McCheaty litters the track with oil slicks before you get access to pickups. I love this example because it's a showcase of clever objective design. With no offensive tools, it behooves the player to get ahead of McCheaty before he can do too much damage.
The handling itself feels good, especially once you get a handle for how to use brake, jump, and spin. And while I didn't get a chance to go online, I'm happy to report my son and I enjoyed a few local games. Mindball Play is an easy recommend for people that may be in search of a novel take on kart racers or marble platformers.
The Spiral Scouts is a potty-mouthed puzzle adventure in the graphical styling of Paper Mario. Given the cutesy art style, the unabashed butt juice jokes can be jarring and honestly, they remained pretty obnoxious to me. My personal tastes notwithstanding, the writers are clearly talented and the story remained entertaining. Moreover, the puzzles were expertly crafted.
The cold open into a puzzle with no instructions sets the tone. The puzzle room is bare and everything you need is within. After your eureka moments lock into place, the solution becomes clearer and before you know it - you're onto the introductory portion of the story. The message this sends is that while the puzzles may offer some challenges and there's little in the way of hand holding, the game is self contained and the puzzles should be fair. Interestingly, the trials are very diverse: they range from decoding sigils to matching a pattern of colors on a tiled floor. I found that a paper and pen helped as they got more complex.
In addition to the fun art and the well-designed puzzles, the music is excellent as well. Given the quality of presentation and gameplay, I'd argue that the asking price of $10 is on the low side for The Spiral Scouts. Even if you're worried about length, the 50 puzzles should take somewhere between 8-10 hours. If you're into puzzles, this might be for you.
Pato Box was released on PC back in March. Most recently however, it was ported to the Switch and in an effort to offer more Switch coverage, I've given it a try for this Weekly. It quickly revealed itself as "extremely my shit".
This game is part Punch-Out!! influenced boxing and part interactive graphic novel. It's all rendered in a beautiful black and white 3D world that feels reminiscent of Platinum's Madworld. And the soundtrack is a haunting fusion of hip hop and synthwave. Did I say this game was my jam? Oh and by the way, your avatar is a boxer with the body of a man and face of a duck, hence Pato Box (pato is Spanish for duck).
The boxing gameplay emphasizes pattern memorization like Punch-Out!!, but turns the silly up to 11 by incorporating lasers, electric charges, axes, and food. This made each fight novel – I looked forward to each encounter and it ensured pattern discovery a continuous effort. Meanwhile, the story is a Kill Bill style revenge tale where you take on everybody responsible for your downfall. You make your way up the gang's headquarters, exploring the casino, laboratory and other unique areas. These sections are fairly rich and provide story bits and mini games.
If you just want the fights, there is an arcade mode that lets you get right down to business. You'll get graded on your performance for that true arcade experience. In all, Pato Box is a robust offering that makes something new out of its influences. Whether Steam or Switch, be sure to check it out.
Criterion is well known for its now-legendary Burnout series. With a physics engine that gloriously models destruction, crash mode became a fan favorite of the series. Now, Three Fields Entertainment, a brainchild of Criterion founders, has been specializing in this love for destruction since 2014. Danger Zone 2 is the second entry in a series that builds on the crash mode created for Burnout 3, specifically.
This game lacks a bit of polish: there's no music and just a bare bones UI. But I found the gameplay to be exciting, varied, and challenging. The main goal is to cause as much monetary damage as possible. You can get major bonuses by grabbing the icons scattered about at the destination. The explosion icons, for example, will grant you an extra Smashbreak – the opportunity to explode your car for some more hangtime. Given that you have control of your car in the air, you can use a Smashbreak to redirect your car to a busier part of the road or towards missed bonus icons. The run up objectives similarly add flavor to the formula. You might be asked to check all the taxis, or chain boosts together, or take all the ramps in a level.
These variables ensure that the levels have been authored in such a way that each can have something that makes it unique. Whether it's the car you're driving, the secondary objectives, the track or the layout of the bonuses. This variety of gameplay and exhilarating driving reminded me of my favorite driving games: Burnout 2, Driver, and Stuntman. I can't wait to dig back in and grab some platinum medals.
Trying to get my non-fighter friends into traditional fighting games is a nonstarter. Thankfully, games like Divekick and Lethal League offer an on-ramp by removing the need for high level execution and reducing the number of systems to consider. Indie Pogo is the latest entry in this low-barrier subgenre. In Indie Pogo, your character auto-jumps every time you land. Landing on your foe's noggin is a Pogo Attack and it's key to staying airborne longer as it resets your other abilities (i.e. air attack, dodge, air jump). As a platform fighter, you can have up to 4 players on screen and keeping your opponents from making it back to the playzone is a valid way to score.
While Indie Pogo does have a lower barrier to entry, each character in this mega cross-over event is incredibly unique – ensuring a high skill ceiling. My favorite, Penelope, is all about fierce stage control. Her neutral air attack is a mine that can hurt your opponent but gives you back some HP as well. Viridian, from VVVVVV, is a simpler character. His gimmick, however, is that he can flip gravity for himself by holding the jump button. This can make for some tricky movement and longer hangtime.
There are 14 characters in all (and more on the way), but you only start with 5. You have to unlock the others in the shop. While it takes some time to rack up coins, the intent is clear – lock away more complex characters until players have had a chance to get more familiar with the game. This is evocative of how designers, Lowe Bros, have incorporated a low skill floor and a high skill ceiling for a game that people can enjoy at various levels. This makes Indie Pogo one of my top picks for the week.
What happens when a superintelligence takes on hospitality? In the Netflix series, Altered Carbon, AI hotels have not seen a single customer in half a century. Why? They're "too clingy". The Spectrum Retreat's narrative revolves around this central question and comes to a similar conclusion. If an AI's goal is to get a patron to stay as long as possible, how far will they go to meet that objective? This games spins a beautiful and mysterious tale about a guest, unwittingly kidnapped by the hotel, as they struggle to recollect their past – warts and all.
The game takes on two fairly disparate modes: a light quest framework within the hotel where the mystery is slowly uncovered and Portal-like "authentication chambers" in which you must best a series of puzzle trials in order to proceed. These two complement each other and indeed, even coalesce in ways I won't spoil. Navigating the hotel is a pleasure thanks to the intricate art deco trappings. The puzzles have you extracting color from rectangular prisms: you can extract one color at a time and then place it on a blank prism. This mechanism will toggle blockades, hopefully opening up a new path and getting you closer to the exit. Naturally, more mechanics are introduced and the trials get more complex.
I tend to be a bit aloof when it comes to game narratives, but this one pulled me in. So far, the sci-fi mystery sits alongside Black Mirror and Ex Machina as a gripping exposition on the "be careful what you wish for fable. Between this and the well designed puzzles, The Spectrum Retreat is more than my top pick for the week – it's on my games of the year list.
45 More Posts
Timespinner Review
Detective Case and Clown Bot in: Murder in the Hotel Lisbon Review
A Rite from the Stars Review
Lumines Remastered Review
Space Captain McCallery Episode 1 Review
Protolife Review
Yuso Review
Yoku's Island Express Review
Cultist Simulator Review
Quantum Replica Review
Hex Two Review
Ni No Kuni II: Revenant Kingom | Review
Solo Review
What is Vectorium? (+ Giveaway)
Super Daryl Deluxe Review
We're on Youtube!
Sacred Stones Review
Super Inefficient Golf Review
The Infectious Madness of Doctor Dekker Review
Swarmlake Review
Bird Game Review
Into the Breach Review
Hexvade Review
March Impressions
Tinywar highspeed Review
Dissembler Review
We're Live
© 2019 Notable Releases


text:
#include "battery.h"
#include "charge_state.h"
#include "charger.h"
#include "chipset.h"
#include "common.h"
#include "console.h"
#include "extpower.h"
#include "gpio.h"
#include "hooks.h"
#include "host_command.h"
#include "printf.h"
#include "system.h"
#include "task.h"
#include "timer.h"
#include "util.h"

/* Console output macros */
#define CPUTS(outstr) cputs(CC_CHARGER, outstr)
#define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args)

/* Voltage debounce time */
#define DEBOUNCE_TIME (10 * SECOND)

#define LOW_BATTERY_SHUTDOWN_TIMEOUT_US (LOW_BATTERY_SHUTDOWN_TIMEOUT * SECOND)

#ifndef BATTERY_AP_OFF_LEVEL
#define BATTERY_AP_OFF_LEVEL 0
#endif

static const char * const state_name[] = CHARGE_STATE_NAME_TABLE;

static int state_machine_force_idle;

static unsigned user_current_limit = -1U;

static int fake_state_of_charge = -1;

/* Current power state context */
static struct charge_state_context task_ctx;

static inline int is_charger_expired(
	struct charge_state_context *ctx, timestamp_t now)
{
	return now.val - ctx->charger_update_time.val > CHARGER_UPDATE_PERIOD;
}

static inline void update_charger_time(
	struct charge_state_context *ctx, timestamp_t now)
{
	ctx->charger_update_time.val = now.val;
}

/**
 * Update memory-mapped battery information, used by ACPI _BIF and/or _BIX.
 */
static void update_battery_info(void)
{
	char *batt_str;
	int batt_serial;

	/* Design Capacity of Full */
	battery_design_capacity((int *)host_get_memmap(EC_MEMMAP_BATT_DCAP));

	/* Design Voltage */
	battery_design_voltage((int *)host_get_memmap(EC_MEMMAP_BATT_DVLT));

	/* Last Full Charge Capacity */
	battery_full_charge_capacity(
		(int *)host_get_memmap(EC_MEMMAP_BATT_LFCC));

	/* Cycle Count */
	battery_cycle_count((int *)host_get_memmap(EC_MEMMAP_BATT_CCNT));

	/* Battery Manufacturer string */
	batt_str = (char *)host_get_memmap(EC_MEMMAP_BATT_MFGR);
	memset(batt_str, 0, EC_MEMMAP_TEXT_MAX);
	battery_manufacturer_name(batt_str, EC_MEMMAP_TEXT_MAX);

	/* Battery Model string */
	batt_str = (char *)host_get_memmap(EC_MEMMAP_BATT_MODEL);
	memset(batt_str, 0, EC_MEMMAP_TEXT_MAX);
	battery_device_name(batt_str, EC_MEMMAP_TEXT_MAX);

	/* Battery Type string */
	batt_str = (char *)host_get_memmap(EC_MEMMAP_BATT_TYPE);
	battery_device_chemistry(batt_str, EC_MEMMAP_TEXT_MAX);

	/* Smart battery serial number is 16 bits */
	batt_str = (char *)host_get_memmap(EC_MEMMAP_BATT_SERIAL);
	memset(batt_str, 0, EC_MEMMAP_TEXT_MAX);
	if (battery_serial_number(&batt_serial) == 0)
		snprintf(batt_str, EC_MEMMAP_TEXT_MAX, "%04X", batt_serial);

	/* Battery data is now present */
	*host_get_memmap(EC_MEMMAP_BATTERY_VERSION) = 1;
}

/**
 * Prevent battery from going into deep discharge state
 */
static void low_battery_shutdown(struct charge_state_context *ctx)
{
	if (chipset_in_state(CHIPSET_STATE_ANY_OFF)) {
		/* AP is off, so shut down the EC now */
		CPRINTS("charge force EC hibernate due to low battery");
		system_hibernate(0, 0);
	} else if (!ctx->shutdown_warning_time.val) {
		/* Warn AP battery level is so low we'll shut down */
		CPRINTS("charge warn shutdown due to low battery");
		ctx->shutdown_warning_time = get_time();
		host_set_single_event(EC_HOST_EVENT_BATTERY_SHUTDOWN);
	} else if (get_time().val > ctx->shutdown_warning_time.val +
		   LOW_BATTERY_SHUTDOWN_TIMEOUT_US) {
		/* Timeout waiting for AP to shut down, so kill it */
		CPRINTS("charge force shutdown due to low battery");
		chipset_force_shutdown();
	}
}

int charge_keep_power_off(void)
{
	int charge;

	if (BATTERY_AP_OFF_LEVEL == 0)
		return 0;

	if (battery_remaining_capacity(&charge))
		return charge_get_state() != PWR_STATE_ERROR;

	return charge <= BATTERY_AP_OFF_LEVEL;
}

#ifdef CONFIG_CHARGER_EN_GPIO
#ifdef CONFIG_CHARGER_EN_ACTIVE_LOW
static void charge_set_charger_en_gpio(int level)
{
	gpio_set_level(GPIO_CHARGER_EN_L, !level);
}

static int charge_get_charger_en_gpio(void)
{
	return !gpio_get_level(GPIO_CHARGER_EN_L);
}
#else
static void charge_set_charger_en_gpio(int level)
{
	gpio_set_level(GPIO_CHARGER_EN, level);
}

static int charge_get_charger_en_gpio(void)
{
	return gpio_get_level(GPIO_CHARGER_EN);
}
#endif
#endif

/**
 * Enable or disable charging, and set requested voltage and current. If either
 * of voltage and current is set to 0, charging is disable.
 *
 * @param voltage   Requested voltage in mV. Set -1 to preserve current value.
 * @param current   Requested current in mA. Set -1 to preserve current value.
 */
static int charge_request(int voltage, int current)
{
	int rv = EC_SUCCESS;

	if (voltage == -1 && current == -1)
		return EC_SUCCESS;

#ifdef CONFIG_CHARGER_EN_GPIO
	if (voltage == 0 || current == 0) {
		charge_set_charger_en_gpio(0);
		return EC_SUCCESS;
	} else {
		charge_set_charger_en_gpio(1);
	}
#endif

	if (voltage != -1)
		rv |= charger_set_voltage(voltage);
	if (current != -1)
		rv |= charger_set_current(current);

	return rv;
}

/**
 * Common handler for charging states.
 *
 * This handler gets battery charging parameters, charger state, ac state, and
 * timestamp. It also fills memory map and issues power events on state change.
 */
static int state_common(struct charge_state_context *ctx)
{
	int rv, d;

	struct charge_state_data *curr = &ctx->curr;
	struct charge_state_data *prev = &ctx->prev;
	struct batt_params *batt = &ctx->curr.batt;
	uint8_t *batt_flags = ctx->memmap_batt_flags;

	/* Copy previous state and init new state */
	ctx->prev = ctx->curr;
	curr->ts = get_time();
	curr->error = 0;

	/* Detect AC change */
	curr->ac = charge_get_flags() & CHARGE_FLAG_EXTERNAL_POWER;
	if (curr->ac != prev->ac) {
		if (curr->ac) {
			/* AC on
			 *   Initialize charger to power on reset mode
			 */
			rv = charger_post_init();
			if (rv)
				curr->error |= F_CHARGER_INIT;
		}
	}

	if (curr->ac) {
		*batt_flags |= EC_BATT_FLAG_AC_PRESENT;
		if (charger_get_voltage(&curr->charging_voltage)) {
			charge_request(0, 0);
			curr->error |= F_CHARGER_VOLTAGE;
		}
		if (charger_get_current(&curr->charging_current)) {
			charge_request(0, 0);
			curr->error |= F_CHARGER_CURRENT;
		}
#ifdef CONFIG_CHARGER_EN_GPIO
		if (!charge_get_charger_en_gpio()) {
			curr->charging_voltage = 0;
			curr->charging_current = 0;
		}
#endif
	} else {
		*batt_flags &= ~EC_BATT_FLAG_AC_PRESENT;
		/* AC disconnected should get us out of force idle mode. */
		state_machine_force_idle = 0;
	}

#if defined(CONFIG_BATTERY_PRESENT_CUSTOM) || \
	defined(CONFIG_BATTERY_PRESENT_GPIO)
	if (battery_is_present() == BP_NO) {
		curr->error |= F_BATTERY_NOT_CONNECTED;
		return curr->error;
	}
#endif

	/* Read params and see if battery is responsive */
	battery_get_params(batt);
	if (!(batt->flags & BATT_FLAG_RESPONSIVE)) {
		/* Check low battery condition and retry */
		if (curr->ac && ctx->battery_responsive &&
		    !(curr->error & F_CHARGER_MASK)) {
			ctx->battery_responsive = 0;
			/*
			 * Try to revive ultra low voltage pack.  Charge
			 * battery pack with minimum current and maximum
			 * voltage for 30 seconds.
			 */
			charge_request(ctx->battery->voltage_max,
				       ctx->battery->precharge_current);
			for (d = 0; d < PRECHARGE_TIMEOUT; d++) {
				sleep(1);
				battery_get_params(batt);
				if (batt->flags & BATT_FLAG_RESPONSIVE) {
					ctx->battery_responsive = 1;
					break;
				}
			}
		}

		/* Set error if battery is still unresponsive */
		if (!(batt->flags & BATT_FLAG_RESPONSIVE)) {
			curr->error |= F_BATTERY_UNRESPONSIVE;
			return curr->error;
		}
	} else {
		ctx->battery_responsive = 1;
	}

	/* Translate flags */
	if (batt->flags & BATT_FLAG_BAD_ANY)
		curr->error |= F_BATTERY_GET_PARAMS;
	if (batt->flags & BATT_FLAG_BAD_VOLTAGE)
		curr->error |= F_BATTERY_VOLTAGE;
	if (batt->flags & BATT_FLAG_BAD_STATE_OF_CHARGE)
		curr->error |= F_BATTERY_STATE_OF_CHARGE;

	*ctx->memmap_batt_volt = batt->voltage;

	/* Memory mapped value: discharge rate */
	*ctx->memmap_batt_rate = batt->current < 0 ?
		-batt->current : batt->current;

	/* Fake state of charge if necessary */
	if (fake_state_of_charge >= 0) {
		batt->state_of_charge = fake_state_of_charge;
		curr->error &= ~F_BATTERY_STATE_OF_CHARGE;
	}

	if (batt->state_of_charge != prev->batt.state_of_charge) {
		rv = battery_full_charge_capacity(&d);
		if (!rv && d != *(int *)host_get_memmap(EC_MEMMAP_BATT_LFCC)) {
			*(int *)host_get_memmap(EC_MEMMAP_BATT_LFCC) = d;
			/* Notify host to re-read battery information */
			host_set_single_event(EC_HOST_EVENT_BATTERY);
		}
	}

	/* Prevent deep discharging */
	if (!curr->ac) {
		if ((batt->state_of_charge < BATTERY_LEVEL_SHUTDOWN &&
		     !(curr->error & F_BATTERY_STATE_OF_CHARGE)) ||
		    (batt->voltage <= ctx->battery->voltage_min &&
		     !(curr->error & F_BATTERY_VOLTAGE)))
			low_battery_shutdown(ctx);
	}

	/* Check battery presence */
	if (curr->error & F_BATTERY_MASK) {
		*ctx->memmap_batt_flags &= ~EC_BATT_FLAG_BATT_PRESENT;
		return curr->error;
	}

	*ctx->memmap_batt_flags |= EC_BATT_FLAG_BATT_PRESENT;

	/* Battery charge level low */
	if (batt->state_of_charge <= BATTERY_LEVEL_LOW &&
	    prev->batt.state_of_charge > BATTERY_LEVEL_LOW)
		host_set_single_event(EC_HOST_EVENT_BATTERY_LOW);

	/* Battery charge level critical */
	if (batt->state_of_charge <= BATTERY_LEVEL_CRITICAL) {
		*ctx->memmap_batt_flags |= EC_BATT_FLAG_LEVEL_CRITICAL;
		/* Send battery critical host event */
		if (prev->batt.state_of_charge > BATTERY_LEVEL_CRITICAL)
			host_set_single_event(EC_HOST_EVENT_BATTERY_CRITICAL);
	} else {
		*ctx->memmap_batt_flags &= ~EC_BATT_FLAG_LEVEL_CRITICAL;
	}

#ifdef CONFIG_BATTERY_OVERRIDE_PARAMS
	/* Apply battery pack vendor charging method */
	battery_override_params(batt);
#endif

#ifdef CONFIG_CHARGER_CURRENT_LIMIT
	if (batt->desired_current > CONFIG_CHARGER_CURRENT_LIMIT)
		batt->desired_current = CONFIG_CHARGER_CURRENT_LIMIT;
#endif
	if (batt->desired_current > user_current_limit)
		batt->desired_current = user_current_limit;

	if (fake_state_of_charge >= 0)
		*ctx->memmap_batt_cap =
			fake_state_of_charge *
			*(int *)host_get_memmap(EC_MEMMAP_BATT_LFCC) / 100;
	else if (battery_remaining_capacity(&d))
		ctx->curr.error |= F_BATTERY_CAPACITY;
	else
		*ctx->memmap_batt_cap = d;

	return ctx->curr.error;
}

/**
 * Init state handler
 *
 *	- check ac, charger, battery and temperature
 *	- initialize charger
 *	- new states: DISCHARGE, IDLE
 */
static enum charge_state state_init(struct charge_state_context *ctx)
{
	/* Stop charger, unconditionally */
	charge_request(0, 0);

	/* if battery was not detected initially, get battery info again */
	if (ctx->battery == NULL)
		ctx->battery = battery_get_info();

	/* Update static battery info */
	update_battery_info();

	/* Clear shutdown timer */
	ctx->shutdown_warning_time.val = 0;

	/* If AC is not present, switch to discharging state */
	if (!ctx->curr.ac)
		return PWR_STATE_DISCHARGE;

	/* Check general error conditions */
	if (ctx->curr.error)
		return PWR_STATE_ERROR;

	/* Send battery event to host */
	host_set_single_event(EC_HOST_EVENT_BATTERY);

	return PWR_STATE_IDLE0;
}

/**
 * Idle state handler
 *
 *	- both charger and battery are online
 *	- detect charger and battery status change
 *	- new states: CHARGE, INIT
 */
static enum charge_state state_idle(struct charge_state_context *ctx)
{
	struct batt_params *batt = &ctx->curr.batt;

	/* If we are forcing idle mode, then just stay in IDLE. */
	if (state_machine_force_idle)
		return PWR_STATE_UNCHANGE;

	if (!ctx->curr.ac)
		return PWR_STATE_REINIT;

	if (ctx->curr.error)
		return PWR_STATE_ERROR;

	/* Prevent charging in idle mode */
	if (ctx->curr.charging_voltage ||
	    ctx->curr.charging_current)
		return PWR_STATE_REINIT;

	if (batt->state_of_charge >= BATTERY_LEVEL_FULL)
		return PWR_STATE_UNCHANGE;

	/* Configure init charger state and switch to charge state */
	if (batt->flags & BATT_FLAG_WANT_CHARGE) {
		int want_current =
			charger_closest_current(batt->desired_current);

		CPRINTS("Charge start %dmV %dmA",
			batt->desired_voltage, want_current);

		if (charge_request(batt->desired_voltage, want_current))
			return PWR_STATE_ERROR;

		update_charger_time(ctx, get_time());

		if (ctx->curr.batt.state_of_charge < BATTERY_LEVEL_NEAR_FULL)
			return PWR_STATE_CHARGE;
		else
			return PWR_STATE_CHARGE_NEAR_FULL;
	}

	return PWR_STATE_UNCHANGE;
}

/**
 * Charge state handler
 *
 *	- detect battery status change
 *	- new state: INIT
 */
static enum charge_state state_charge(struct charge_state_context *ctx)
{
	struct charge_state_data *curr = &ctx->curr;
	struct batt_params *batt = &ctx->curr.batt;
	int debounce = 0;
	int want_current;
	int want_voltage;
	timestamp_t now;

	if (curr->error)
		return PWR_STATE_ERROR;

	/*
	 * Some chargers will reset out from underneath us.  If this happens,
	 * reinitialize charging.
	 */
	if (curr->charging_voltage == 0 ||
	    curr->charging_current == 0)
		return PWR_STATE_REINIT;

	if (!curr->ac)
		return PWR_STATE_REINIT;

	/* Stop charging if charging is no longer allowed */
	if (!(batt->flags & BATT_FLAG_WANT_CHARGE)) {
		if (charge_request(0, 0))
			return PWR_STATE_ERROR;
		return PWR_STATE_IDLE;
	}

	now = get_time();

	/*
	 * Adjust desired voltage to one the charger can actually supply
	 * or else we'll keep asking for a voltage the charger can't actually
	 * supply.
	 */
	want_voltage = charger_closest_voltage(batt->desired_voltage);

	if (want_voltage != curr->charging_voltage) {
		CPRINTS("Charge voltage %dmV", want_voltage);
		if (charge_request(want_voltage, -1))
			return PWR_STATE_ERROR;
		update_charger_time(ctx, now);
	}

	/*
	 * Adjust desired current to one the charger can actually supply before
	 * we do debouncing, or else we'll keep asking for a current the
	 * charger can't actually supply.
	 */
	want_current = charger_closest_current(batt->desired_current);

	if (want_current == curr->charging_current) {
		/* Tick charger watchdog */
		if (!is_charger_expired(ctx, now))
			return PWR_STATE_UNCHANGE;
	} else if (want_current > curr->charging_current) {
		if (!timestamp_expired(ctx->voltage_debounce_time, &now))
			return PWR_STATE_UNCHANGE;
	} else {
		debounce = 1;
	}

	if (want_current != curr->charging_current) {
		CPRINTS("Charge current %dmA @ %dmV",
			want_current, batt->desired_voltage);
	}

	if (charge_request(-1, want_current))
		return PWR_STATE_ERROR;

	/* Update charger watchdog timer and debounce timer */
	update_charger_time(ctx, now);
	if (debounce)
		ctx->voltage_debounce_time.val = now.val + DEBOUNCE_TIME;

	return PWR_STATE_UNCHANGE;
}

/**
 * Discharge state handler
 *
 *	- detect ac status
 *	- new state: INIT
 */
static enum charge_state state_discharge(struct charge_state_context *ctx)
{
	struct batt_params *batt = &ctx->curr.batt;
	int8_t bat_temp_c = DECI_KELVIN_TO_CELSIUS(batt->temperature);
	if (ctx->curr.ac)
		return PWR_STATE_REINIT;

	if (ctx->curr.error)
		return PWR_STATE_ERROR;

	/* Handle overtemp in discharging state by powering off host */
	if ((bat_temp_c >= ctx->battery->discharging_max_c ||
	     bat_temp_c < ctx->battery->discharging_min_c) &&
	    chipset_in_state(CHIPSET_STATE_ON)) {
		CPRINTS("charge force shutdown due to battery temp");
		chipset_force_shutdown();
		host_set_single_event(EC_HOST_EVENT_BATTERY_SHUTDOWN);
	}
	return PWR_STATE_UNCHANGE;
}

/**
 * Error state handler
 *
 *	- check charger and battery communication
 *	- log error
 *	- new state: INIT
 */
static enum charge_state state_error(struct charge_state_context *ctx)
{
	static int logged_error;

	if (!ctx->curr.error) {
		logged_error = 0;
		return PWR_STATE_REINIT;
	}

	charge_request(0, 0);

	/* Debug output */
	if (ctx->curr.error != logged_error) {
		CPRINTS("Charge error: flag[%08b -> %08b], ac %d, "
			" charger %s, battery %s",
			logged_error, ctx->curr.error, ctx->curr.ac,
			(ctx->curr.error & F_CHARGER_MASK) ? "(err)" : "ok",
			(ctx->curr.error & F_BATTERY_MASK) ? "(err)" : "ok");

		logged_error = ctx->curr.error;
	}

	return PWR_STATE_UNCHANGE;
}

/**
 * Print charging progress
 */
static void charging_progress(struct charge_state_context *ctx)
{
	int seconds, minutes;

	if (ctx->curr.batt.state_of_charge != ctx->prev.batt.state_of_charge) {
		if (ctx->curr.ac)
			battery_time_to_full(&minutes);
		else
			battery_time_to_empty(&minutes);

		CPRINTS("Battery %3d%% / %dh:%d",
			ctx->curr.batt.state_of_charge,
			minutes / 60, minutes % 60);
		return;
	}

	if (ctx->curr.charging_voltage != ctx->prev.charging_voltage &&
	    ctx->trickle_charging_time.val) {
		/* Calculate minutes by dividing usec by 60 million.  GNU
		 * toolchain generates architecture dependent calls instead of
		 * machine code when the divisor is large, so break the
		 * calculation into 2 lines.
		 */
		seconds = (int)(get_time().val -
				ctx->trickle_charging_time.val) / (int)SECOND;
		minutes = seconds / 60;
		CPRINTS("Precharge CHG(%dmV) BATT(%dmV %dmA) "
			"%dh:%d", ctx->curr.charging_voltage,
			ctx->curr.batt.voltage, ctx->curr.batt.current,
			minutes / 60, minutes % 60);
	}
}

enum charge_state charge_get_state(void)
{
	return task_ctx.curr.state;
}

uint32_t charge_get_flags(void)
{
	uint32_t flags = 0;

	if (state_machine_force_idle)
		flags |= CHARGE_FLAG_FORCE_IDLE;
	if (extpower_is_present())
		flags |= CHARGE_FLAG_EXTERNAL_POWER;

	return flags;
}

int charge_get_percent(void)
{
	return task_ctx.curr.batt.state_of_charge;
}

int charge_temp_sensor_get_val(int idx, int *temp_ptr)
{
	const struct batt_params *batt = &task_ctx.curr.batt;

	if (!(batt->flags & BATT_FLAG_RESPONSIVE))
		return EC_ERROR_UNKNOWN;

	*temp_ptr = C_TO_K(DECI_KELVIN_TO_CELSIUS(batt->temperature));
	return EC_SUCCESS;
}

int charge_want_shutdown(void)
{
	return (charge_get_state() == PWR_STATE_DISCHARGE) &&
		charge_get_percent() < BATTERY_LEVEL_SHUTDOWN;
}

static int charge_force_idle(int enable)
{
	if (enable) {
		/*
		 * Force-idle state is only meaningful if external power is
		 * present. If it's not present we can't charge anyway...
		 */
		if (!(charge_get_flags() & CHARGE_FLAG_EXTERNAL_POWER))
			return EC_ERROR_UNKNOWN;
		charger_post_init();
	}
	state_machine_force_idle = enable;
	return EC_SUCCESS;
}

const struct batt_params *charger_current_battery_params(void)
{
	return &task_ctx.curr.batt;
}

/**
 * Battery charging task
 */
void charger_task(void)
{
	struct charge_state_context *ctx = &task_ctx;
	timestamp_t ts;
	int sleep_usec = CHARGE_POLL_PERIOD_SHORT, diff_usec, sleep_next;
	enum charge_state new_state;
	uint8_t batt_flags;

	while (1) {
		state_common(ctx);

#ifdef CONFIG_CHARGER_TIMEOUT_HOURS
		if (ctx->curr.state == PWR_STATE_CHARGE &&
		    ctx->charge_state_updated_time.val +
		    CONFIG_CHARGER_TIMEOUT_HOURS * HOUR < ctx->curr.ts.val) {
			CPRINTS("Charge timed out after %d hours",
				CONFIG_CHARGER_TIMEOUT_HOURS);
			charge_force_idle(1);
		}
#endif /* CONFIG_CHARGER_TIMEOUT_HOURS */

		switch (ctx->prev.state) {
		case PWR_STATE_INIT:
		case PWR_STATE_REINIT:
			new_state = state_init(ctx);
			break;
		case PWR_STATE_IDLE0:
			new_state = state_idle(ctx);
			/* If still idling, move from IDLE0 to IDLE */
			if (new_state == PWR_STATE_UNCHANGE)
				new_state = PWR_STATE_IDLE;
			break;
		case PWR_STATE_IDLE:
			new_state = state_idle(ctx);
			break;
		case PWR_STATE_DISCHARGE:
			new_state = state_discharge(ctx);
			break;
		case PWR_STATE_CHARGE:
			new_state = state_charge(ctx);
			if (new_state == PWR_STATE_UNCHANGE &&
			    (ctx->curr.batt.state_of_charge >=
			     BATTERY_LEVEL_NEAR_FULL)) {
				/* Almost done charging */
				new_state = PWR_STATE_CHARGE_NEAR_FULL;
			}
			break;

		case PWR_STATE_CHARGE_NEAR_FULL:
			new_state = state_charge(ctx);
			if (new_state == PWR_STATE_UNCHANGE &&
			    (ctx->curr.batt.state_of_charge <
			     BATTERY_LEVEL_NEAR_FULL)) {
				/* Battery below almost-full threshold. */
				new_state = PWR_STATE_CHARGE;
			}
			break;
		case PWR_STATE_ERROR:
			new_state = state_error(ctx);
			break;
		default:
			CPRINTS("Charge state %d undefined",
				ctx->curr.state);
			ctx->curr.state = PWR_STATE_ERROR;
			new_state = PWR_STATE_ERROR;
		}

		if (state_machine_force_idle &&
		    ctx->prev.state != PWR_STATE_IDLE0 &&
		    ctx->prev.state != PWR_STATE_IDLE &&
		    ctx->prev.state != PWR_STATE_INIT &&
		    ctx->prev.state != PWR_STATE_REINIT)
			new_state = PWR_STATE_REINIT;

		if (new_state) {
			ctx->curr.state = new_state;
			CPRINTS("Charge state %s -> %s after %.6ld sec",
				state_name[ctx->prev.state],
				state_name[new_state],
				ctx->curr.ts.val -
				ctx->charge_state_updated_time.val);
			ctx->charge_state_updated_time = ctx->curr.ts;
			hook_notify(HOOK_CHARGE_STATE_CHANGE);
		}

		switch (new_state) {
		case PWR_STATE_IDLE0:
			/*
			 * First time transitioning from init -> idle.  Don't
			 * set the flags or LED yet because we may transition
			 * to charging on the next call and we don't want to
			 * blink the LED green.
			 */
			sleep_usec = CHARGE_POLL_PERIOD_SHORT;
			break;
		case PWR_STATE_CHARGE_NEAR_FULL:
			/*
			 * Battery is almost charged.  The last few percent
			 * take a loooong time, so fall through and look like
			 * we're charged.  This mirrors similar hacks at the
			 * ACPI/kernel/UI level.
			 */
		case PWR_STATE_IDLE:
			batt_flags = *ctx->memmap_batt_flags;
			batt_flags &= ~EC_BATT_FLAG_CHARGING;
			batt_flags &= ~EC_BATT_FLAG_DISCHARGING;
			*ctx->memmap_batt_flags = batt_flags;

			/* Charge done */
			sleep_usec = (new_state == PWR_STATE_IDLE
				      ? CHARGE_POLL_PERIOD_LONG
				      : CHARGE_POLL_PERIOD_CHARGE);
			break;
		case PWR_STATE_DISCHARGE:
			batt_flags = *ctx->memmap_batt_flags;
			batt_flags &= ~EC_BATT_FLAG_CHARGING;
			batt_flags |= EC_BATT_FLAG_DISCHARGING;
			*ctx->memmap_batt_flags = batt_flags;
			sleep_usec = CHARGE_POLL_PERIOD_LONG;
			break;
		case PWR_STATE_CHARGE:
			batt_flags = *ctx->memmap_batt_flags;
			batt_flags |= EC_BATT_FLAG_CHARGING;
			batt_flags &= ~EC_BATT_FLAG_DISCHARGING;
			*ctx->memmap_batt_flags = batt_flags;

			/* Charging */
			sleep_usec = CHARGE_POLL_PERIOD_CHARGE;
			break;
		case PWR_STATE_ERROR:
			/* Error */
			sleep_usec = CHARGE_POLL_PERIOD_CHARGE;
			break;
		case PWR_STATE_UNCHANGE:
			/* Don't change sleep duration */
			break;
		default:
			/* Other state; poll quickly and hope it goes away */
			sleep_usec = CHARGE_POLL_PERIOD_SHORT;
		}

#ifdef CONFIG_EXTPOWER_FALCO
		watch_adapter_closely(ctx);
		sleep_usec = EXTPOWER_FALCO_POLL_PERIOD;
#endif

		/* Show charging progress in console */
		charging_progress(ctx);

		ts = get_time();
		diff_usec = (int)(ts.val - ctx->curr.ts.val);
		sleep_next = sleep_usec - diff_usec;

		if (ctx->curr.state == PWR_STATE_DISCHARGE &&
		    chipset_in_state(CHIPSET_STATE_ANY_OFF |
				     CHIPSET_STATE_SUSPEND)) {
			/*
			 * Discharging and system is off or suspended, so no
			 * need to poll frequently.  charge_hook() will wake us
			 * up if anything important changes.
			 */
			sleep_next = CHARGE_POLL_PERIOD_VERY_LONG - diff_usec;
		} else if (sleep_next < CHARGE_MIN_SLEEP_USEC) {
			sleep_next = CHARGE_MIN_SLEEP_USEC;
		} else if (sleep_next > CHARGE_MAX_SLEEP_USEC) {
			sleep_next = CHARGE_MAX_SLEEP_USEC;
		}

		task_wait_event(sleep_next);
	}
}

/*****************************************************************************/
/* Hooks */

/**
 * Chipset notification hook.
 *
 * This is triggered when the system boots or resumes, so that we can update
 * our charging state.
 */
static void chipset_hook(void)
{
	/* Wake up the task now */
	task_wake(TASK_ID_CHARGER);
}
DECLARE_HOOK(HOOK_CHIPSET_RESUME, chipset_hook, HOOK_PRIO_DEFAULT);

/**
 * AC change notification hook.
 *
 * This is triggered when the AC state changes, so that we can update the
 * memory-mapped AC status and our charging state.
 */
static void ac_change_hook(void)
{
	/**
	 * Update the memory-mapped AC_PRESENT flag immediately so the
	 * state is correct prior to the host being notified of the AC
	 * change event.
	 */
	if (extpower_is_present())
		*task_ctx.memmap_batt_flags |= EC_BATT_FLAG_AC_PRESENT;
	else
		*task_ctx.memmap_batt_flags &= ~EC_BATT_FLAG_AC_PRESENT;

	/* Wake up the task now */
	task_wake(TASK_ID_CHARGER);
}
DECLARE_HOOK(HOOK_AC_CHANGE, ac_change_hook, HOOK_PRIO_DEFAULT);

static void charge_init(void)
{
	struct charge_state_context *ctx = &task_ctx;

	ctx->prev.state = PWR_STATE_INIT;
	ctx->curr.state = PWR_STATE_INIT;
	ctx->trickle_charging_time.val = 0;
	ctx->battery = battery_get_info();
	ctx->charger = charger_get_info();
	/* Assume the battery is responsive until proven otherwise */
	ctx->battery_responsive = 1;

	/* Set up LPC direct memmap */
	ctx->memmap_batt_volt =
		(uint32_t *)host_get_memmap(EC_MEMMAP_BATT_VOLT);
	ctx->memmap_batt_rate =
		(uint32_t *)host_get_memmap(EC_MEMMAP_BATT_RATE);
	ctx->memmap_batt_cap =
		(uint32_t *)host_get_memmap(EC_MEMMAP_BATT_CAP);
	ctx->memmap_batt_flags = host_get_memmap(EC_MEMMAP_BATT_FLAG);
}
DECLARE_HOOK(HOOK_INIT, charge_init, HOOK_PRIO_DEFAULT);

static void charge_shutdown(void)
{
	/* Hibernate immediately if battery level is too low */
	if (charge_want_shutdown()) {
		CPRINTS("charge force EC hibernate after "
			"shutdown due to low battery");
		system_hibernate(0, 0);
	}
}
/*
 * Run the charge shutdown hook last, since when it hibernates no subsequent
 * hooks would be run.
 */
DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, charge_shutdown, HOOK_PRIO_LAST);

/*****************************************************************************/
/* Host commands */

static int charge_command_charge_control(struct host_cmd_handler_args *args)
{
	const struct ec_params_charge_control *p = args->params;
	int rv;

	if (system_is_locked())
		return EC_RES_ACCESS_DENIED;

	rv = charge_force_idle(p->mode != CHARGE_CONTROL_NORMAL);
	if (rv != EC_SUCCESS)
		return rv;

#ifdef CONFIG_CHARGER_DISCHARGE_ON_AC
	rv = board_discharge_on_ac(p->mode == CHARGE_CONTROL_DISCHARGE);
	if (rv != EC_SUCCESS)
		return rv;
#endif

	return EC_RES_SUCCESS;
}
/*
 * TODO(crbug.com/239197) : Adding both versions to the version mask is a
 * temporary workaround for a problem in the cros_ec driver. Drop
 * EC_VER_MASK(0) once cros_ec driver can send the correct version.
 */
DECLARE_HOST_COMMAND(EC_CMD_CHARGE_CONTROL, charge_command_charge_control,
		     EC_VER_MASK(0) | EC_VER_MASK(1));

static void reset_current_limit(void)
{
	user_current_limit = -1;
}
DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, reset_current_limit, HOOK_PRIO_DEFAULT);
DECLARE_HOOK(HOOK_CHIPSET_SHUTDOWN, reset_current_limit, HOOK_PRIO_DEFAULT);

static int charge_command_current_limit(struct host_cmd_handler_args *args)
{
	const struct ec_params_current_limit *p = args->params;

	user_current_limit = p->limit;

	return EC_RES_SUCCESS;
}
DECLARE_HOST_COMMAND(EC_CMD_CHARGE_CURRENT_LIMIT, charge_command_current_limit,
		     EC_VER_MASK(0));

/*****************************************************************************/
/* Console commands */

static int command_battfake(int argc, char **argv)
{
	char *e;
	int v;

	if (argc == 2) {
		v = strtoi(argv[1], &e, 0);
		if (*e || v < -1 || v > 100)
			return EC_ERROR_PARAM1;

		fake_state_of_charge = v;
	}

	if (fake_state_of_charge < 0)
		ccprintf("Reporting real battery level\n");
	else
		ccprintf("Reporting fake battery level %d%%\n",
			 fake_state_of_charge);

	/* Wake charger task immediately to see new level */
	task_wake(TASK_ID_CHARGER);

	return EC_SUCCESS;
}
DECLARE_CONSOLE_COMMAND(battfake, command_battfake,
			"percent (-1 = use real level)",
			"Set fake battery level",
			NULL);


Most businesses today cannot function without using the internet on a daily basis. Whether you are in the business of marketing or even in the education industry, the use of an internet connection will be required frequently in order to accomplish certain tasks. And if you always want to be one step ahead of your competitors, then a high-speed internet connection with a large bandwidth will help you with this objective.
All of the leading global corporations of the world have a strong business network, which is support by a high speed internet system. With this system they are able to perform their activities more efficiently and provide the best service to their customers. So if you want to take your business to a whole different level, then you can start by getting an internet connection, which is able to provide you with any desired information online and at a very high-speed. Moreover, there are many other useful advantages that you can derive from a fast speed internet connection. Apart from getting certain desired business-related information quickly, it can also help you to stay in touch with your clients who are residing at another end of the globe. And if your business has a well-established website in place, then you can keep updating it with information of the latest activities being conducted by your business through newsletters.
The other benefits of getting high speed internet are that you can now receive any important documents from your clients anytime and from anywhere. If your smartphone has access to the internet, then you can receive and send emails from anyplace, even while travelling. You don't have to depend on lengthy phone conversations between you and your clients to understand their requirements. This task can easily be handled online via the internet, as you can interact with multiple clients through emails or through video conversations online. Thus, you will be able to reduce time taken for certain tasks to be completed thereby improving your businesses proficiency and reputation.
Another interesting aspect of getting the best internet connectivity for your business is that it actually helps you sell your products and services better. Your potential customers can now get an easy access to your business by posting queries and other questions on your businesses official website. This is definitely more favorable than the previous method of sending your sales personnel to the customers' location to check their requirements and answer their questions. In other words, a high speed internet connection saves your business time and resources by connecting you directly to those customers through an online medium.
So if you are searching for a way to improve your businesses growth pattern then first upgrade your business network to high-speed internet. By installing this type of internet connection your business will always be supplied with the best connectivity, allowing you to take your business to the international stage very soon.


Hello out there!!. If you love steak your going to really love this recipe as you sprinkle bacon and cheese on the potatoes. Who doesn't love nice and crispy bacon and cheese smothered potatoes, especially potatoes that have been grilled or roasted in the oven or in a cast iron skillet on the stove. Make sure you use a cast iron skillet for this and depending on size of skillet you may only be able to cook 2 foil packs at a time. Makes me hungry right now just thinking about how good this dish is. Yummy !!
I like to use a good cut of meat for this meal such as porter house steak or even a nice filet-mignon cut from Costco is my shopping place. Be sure to cut up the meat into 2 inch pieces. If you use a nice steak for this you will have a good tender meat and not a tough chewy meat. I also love to marinate this meat in Dales steak seasoning which I purchase from Walmart or Amazon. Only marinate for 10 minutes. Hope you enjoy this meal like we do!
Please bookmark this page and share it to your social media sites so your friends can enjoy this meal as well.
Make a batch of garlic butter (butter-garlic-parsley) combined. Cut in half melting one half in the microwave for 20-30 seconds. Combine the potatoes and the onions in a bowl. Pour the melted garlic butter over the top and set aside.
Spread the remaining non-melted butter over the steak you chose to evenly coat.
If you want a medium or rare steak -cut your fillet into 4-inch long pieces The bigger you cut them, the more juicy the steak will be once its done. For even rarer steaks, cut them even bigger (5 or 6 inch pieces).
Place foil packets on the preheated grill or oven , cover and cook for 7 to 8 minutes on one side. Flip and cook on the other side for a further 7 to 8 minutes, until potatoes are cooked through, (If cooking in oven don't have to flip.) Take out the foil packs and be careful to not get burned when opening. Sprinkle the cheese over the potatoes, and fold the foil back up to allow the cheese to melt through for a further few minutes while still on the grill or oven.
Top the potatoes with the cooked crispy bacon, garnish with more green onions, and season with extra salt and pepper if needed.


text:
3esipztvd78
How To Beat The Figure Roblox Doors
How To Beat The Figure Roblox Doors. There are plenty intriguing Roblox games available. The most well-known of these include horror games like Roblox Doors. You have to navigate through a variety of levels in this game. You will be pursued by different entities that want to kill you at every level. Additionally, we'll explain how to defeat the Figure in Roblox Doors and getting Roblox Items in this guide.
How to beat level 50 in Roblox Doors?
It is necessary to take into account that we must take into account that it is vital to avoid the figure all the time, this is usually done while we are collecting the books, when entering level 50 we will see a library that usually has two floors and this makes it necessary to embark on a Search for the books on the lower floor.
When entering the library we will get a desk that is usually located on the left side of the room, we must enter it a little later on the desk where the sheet for the lock solution is usually, so that we know how to overcome the level 50 in Roblox Doors makes it necessary to take care of collecting the sheet, at the end after having collected all the books, we must search the shelves for any book that stands out and when passing by them where we must obtain the sparkling or brilliant sound.
Once we manage to collect the books it is crucial to hide them in the cabinets, every time we feel that the Figure may be close, being inside the cabinet it is necessary to play a minigame while the Figure passes out of the cabinet, so that you know How to overcome level 50 in Roblox Doors involves taking care of other activities, in the case of this minigame we must click with the left and right mouse buttons or on the Q and E keys on the keyboard.
In case of making a mistake, here we will be expelled from the closet twice and in doing so we will be caught by the Figure, on the other hand, it is possible to wait some time after the minigame while the Figure avoids leaving immediately, to go to the top floor where we must collect the remaining books.
Our task to know How to overcome level 50 in Roblox Doors implies having all the books and the sheet that we will use to learn the solution, it should be noted that each book usually has a number and a symbol, that is, 8 books that usually have 8 symbols, these can be found in the bottom corner on the left side of our screen and they are:
Circle.
It is necessary to take into account that the sheet usually tells us the pattern with Roman numerals and symbols until we get the sequence 52, the real solution here consists of 5 numbers, when getting the solution from the list it is vital to hide somewhere that is close to the exit and wait for the Figure to be removed from the lock, once we see him far away and out of sight we will enter the code to exit the library and thus achieve level 50, when playing in multiplayer mode we must make sure that all players are at the exit when entering the codes and avoid making noise.
How to Survive the Figure
In Roblox Doors, you not only need to run and hide from the entities but also solve different puzzles. And some of them can be quite complex. And once on the 50th floor, players often cannot understand what they need to do to escape from this floor.
The 50th floor is a library with a Figure that will hunt for you. This entity is blind, but it can hear you. The only way to survive is to listen carefully to the sounds of the Figures and hide in the closets. Moreover, when the Figure approaches the closet in which you hid, a mini-game begins. You will need to press the Q and E keys or the left and right mouse buttons in time. And if you miss twice, you will be thrown out of the closet into the hands of the Figure. We also recommend after winning the mini-game, wait for the Figure to move a little further away, and only then exit.
In case you are playing this game multiplayer then make sure all the players are near the exit while entering the codes. Looking for more Roblox content? Check out our webiste https://www.igv.com/Roblox-Robux you also can Buy Roblox Gold from us.
How to buy legal SWTOR Credits?
How to participate at the Guild Raid Match
Ostarine how to cycle, 10mg ostarine cycle


Barbie™ and her sisters set off on a Swiss adventure to the majestic Alps, where they're excited to spend the summer at a fun-filled riding academy! Barbie™ can't wait to find a new horse to bring back to Malibu. Stacie™ is super excited to prove she's an amazing equestrian. All Chelsea™ wants to do is ride the big horses, and Skipper™…well let's just say she's more interested in writing about the great outdoors than experiencing it. The sisters' vacation gets off to a rocky start, but when Barbie™ discovers a mysterious wild horse in the woods, their visit becomes truly magical.
© 2013 Mattel Inc. All Rights Reserved.
Barbie and her sisters have sweet, magical, Swiss adventure.


are there any svn snapshots that are fairly stable?
is there already a date for the next "stable"?
nope. Go to trac.roundcube.net to see the development timeline.
SVN snaps are to NEVER be considered stabe. They're working code, so not everything is going to work, nor will everything work together. While it may actually be stable, it can't be guaranteed stable.


text:
class Gateway::Beanstream < Gateway
  preference :login, :string
  preference :user, :string
  preference :password, :string
  preference :secure_profile_api_key, :string

  def provider_class
    ActiveMerchant::Billing::BeanstreamGateway
  end

  def payment_profiles_supported?
    true
  end

  def create_profile(creditcard, gateway_options)
    if creditcard.gateway_customer_profile_id.nil?
      options = options_for_create_customer_profile(creditcard, gateway_options)
      verify_creditcard_name!(creditcard)
      result = provider.store(creditcard, options)
      if result.success?
        creditcard.update_attributes(:gateway_customer_profile_id => result.params["customerCode"], :gateway_payment_profile_id => result.params["customer_vault_id"])
      else
        raise "Error creating profile: #{result.message}"
      end
    end
  end
  private
  def verify_creditcard_name!(creditcard)
    bill_address = creditcard.payments.first.payable.bill_address
    creditcard.first_name = bill_address.firstname unless creditcard.first_name?
    creditcard.last_name = bill_address.lastname   unless creditcard.last_name?
  end

  def options_for_create_customer_profile(creditcard, gateway_options)
    checkout = creditcard.payments.first.payable
    address = checkout.bill_address
    { :email=>checkout.email,
      :billing_address=>
      { :name=>address.full_name,
        :phone=>address.phone,
        :address1=>address.address1,
        :address2=>address.address2,
        :city=>address.city,
        :state=>address.state_name || address.state.abbr,
        :country=>address.country.iso,
        :zip=>address.zipcode
      }
    }.merge(gateway_options)
  end

  SECURE_PROFILE_URL = 'https://www.beanstream.com/scripts/payment_profile.asp'
  SP_SERVICE_VERSION = '1.1'
  PROFILE_OPERATIONS = {:new => 'N', :modify => 'M'}

  ActiveMerchant::Billing::BeanstreamGateway.class_eval do

    def store(credit_card, options = {})
      post = {}
      add_address(post, options)
      add_credit_card(post, credit_card)
      add_secure_profile_variables(post,options)
      commit(post, true)
    end

    #can't actually delete a secure profile with the supplicaed API. This function sets the status of the profile to closed (C).
    #Closed profiles will have to removed manually.
    def delete(vault_id)
      update(vault_id, false, {:status => "C"})
    end

    #alias_method :unstore, :delete

    # Update the values (such as CC expiration) stored at
    # the gateway.  The CC number must be supplied in the
    # CreditCard object.
    def update(vault_id, credit_card, options = {})
      post = {}
      add_address(post, options)
      add_credit_card(post, credit_card)
      options.merge!({:vault_id => vault_id, :operation => secure_profile_action(:modify)})
      add_secure_profile_variables(post,options)
      commit(post, true)
    end

    # CORE #

    def secure_profile_action(type)
      PROFILE_OPERATIONS[type] || PROFILE_OPERATIONS[:new]
    end

    def add_credit_card(post, credit_card)
      if credit_card
        if credit_card.has_payment_profile?
          post[:customerCode] = credit_card.gateway_customer_profile_id
        else
          post[:trnCardOwner] = credit_card.name
          post[:trnCardNumber] = credit_card.number
          post[:trnExpMonth] = format(credit_card.month, :two_digits)
          post[:trnExpYear] = format(credit_card.year, :two_digits)
          post[:trnCardCvd] = credit_card.verification_value
        end
      end
    end

    def add_secure_profile_variables(post, options = {})
      post[:serviceVersion] = SP_SERVICE_VERSION
      post[:responseFormat] = 'QS'
      post[:cardValidation] = (options[:cardValidation].to_i == 1) || '0'

      post[:operationType] = options[:operationType] || options[:operation] || secure_profile_action(:new)
      post[:customerCode] = options[:billing_id] || options[:vault_id] || false
      post[:status] = options[:status]
    end

    def commit(params, use_profile_api = false)
      post(post_data(params,use_profile_api),use_profile_api)
    end

    def post(data, use_profile_api)
      response = parse(ssl_post((use_profile_api ? SECURE_PROFILE_URL : ActiveMerchant::Billing::BeanstreamGateway::URL), data))
      response[:customer_vault_id] = response[:customerCode] if response[:customerCode]
      build_response(success?(response), message_from(response), response,
        :test => test? || response[:authCode] == "TEST",
        :authorization => authorization_from(response),
        :cvv_result => ActiveMerchant::Billing::BeanstreamGateway::CVD_CODES[response[:cvdId]],
        :avs_result => { :code => (ActiveMerchant::Billing::BeanstreamGateway::AVS_CODES.include? response[:avsId]) ? ActiveMerchant::Billing::BeanstreamGateway::AVS_CODES[response[:avsId]] : response[:avsId] }
      )
    end

    def message_from(response)
      response[:messageText] || response[:responseMessage]
    end

    def success?(response)
      response[:responseType] == 'R' || response[:trnApproved] == '1' || response[:responseCode] == '1'
    end

    def add_source(post, source)
      if source.is_a?(String) or source.is_a?(Integer)
        post[:customerCode] = source
      else
        source.type.to_s == "check" ? add_check(post, source) : add_credit_card(post, source)
      end
    end

    def post_data(params, use_profile_api)
      params[:requestType] = 'BACKEND'
      if use_profile_api
        params[:merchantId] = @options[:login]
        params[:passCode] = @options[:secure_profile_api_key]
      else
        params[:username] = @options[:user] if @options[:user]
        params[:password] = @options[:password] if @options[:password]
        params[:merchant_id] = @options[:login]
      end
      params[:vbvEnabled] = '0'
      params[:scEnabled] = '0'

      params.reject{|k, v| v.blank?}.collect { |key, value| "#{key}=#{CGI.escape(value.to_s)}" }.join("&")
    end

  end

end


text:
Here's How the Trump Administration Will End the DACA Program
By Maya Rhodan
Updated: September 5, 2017 12:37 PM ET | Originally published: September 5, 2017 12:26 PM EDT
The White House hinted for days that it would end the Deferred Action for Childhood Arrivals program, but on Tuesday it began to sketch out exactly how that will work.
Speaking at the Department of Justice, Attorney General Jeff Sessions said that he because he does not believe DACA would have been able to withstand a pending legal challenge from a group of Republican attorneys general, he recommended that the Department of Homeland Security take steps to phase it out.
"To have a lawful system of immigration that serves the national interest, we cannot admit everyone who would like to come here," he said.
Here's an outline of those steps and what it all means for so-called Dreamers:
Under the phase-out plan outlined on Tuesday, current DACA recipients whose benefits—work permits and reprieve from deportation–are set to expire by or before March 5, 2018, will have until Oct. 5 to apply for renewals.
Initial requests for DACA that were submitted by Sept. 5, 2017, will be adjudicated on a case-by-case basis, but any request submitted after that date will not be accepted.
If a person has already submitted a request for renewal, even if their DACA is not set to expire before March 5, they will be considered on a case-by-case basis.
Generally, DACA benefits will not be revoked or terminated under the memo, but once documents expire, that's it. DACA benefits are valid for two years after they are issued.
Advanced parole benefits, under which some DACA recipients have been permitted to travel abroad, are no longer available. DHS says that existing benefits will be generally be honored, but Customs and Border Protection has the right to determine whether or not someone should be admitted to the U.S. and Citizenship and Immigration Services is free to revoke or terminate advanced parole as it sees fit.
When a person's DACA expires, they will no longer be shielded from deportation nor will they be eligible for work permits. The Department of Homeland Security says, generally, it will not be sharing information DACA recipients have provided to USCIS with immigration enforcement. That can change if a person presents a threat to national security or public safety.
If a current DACA beneficiary has his or her valid employment authorization lost or stolen, they will still be permitted to have those documents replaced.
According to the Department of Homeland Security, there were 106,341 pending DACA renewals and initial requests as of Aug. 20, 2017. Of the 201,678 individuals whose DACA and employment authorization is set to expire by Dec. 2017, 55,258 have already submitted renewal requests.
Although Department of Homeland Security Secretary Elaine Duke revoked the 2012 memo from former DHS Secretary Janet Napolitano that established DACA, pending applications will be reviewed under the same parameters outlined in the previous policy.
In order to qualify for DACA a person is still required to have been under the age of 16 when they came to the U.S. and be under age 31 by June 2012, been in the U.S. continuously since June 2007, and have not been convicted of a felony or serious misdemeanor. Those eligible are also required to either be in school, have graduated from high school, obtained a GED, or be an honorably discharged Coast Guard or Armed Services veteran.
More information can be found at DHS, which has provided answers to some frequently asked questions about the Trump Administration's decision.
Read a Transcript of Jeff Sessions Remarks on Ending the DACA Program
What America's Richest Ski Town's Handling of COVID-19 Shows