Therapeutic boarding schools in North Smithfield, Rhode Island. Free help finding the best boarding school in Rhode Island.
Is your teenager spinning out of control? Looking for a Christian boarding school for him or her near North Smithfield, Rhode Island?
Let us assist you in finding the best program near North Smithfield, Rhode Island. We've made it our life goal to know all we can about every program, so we can help parents (without cost) find the best possible option for their troubled teen. We want to help parents avoid the same mistake we did.
Now, every day we hear from scores of frustrated parents in towns like North Smithfield, Rhode Island, who share how their once normal and happy child has become dangerously out of control — just like our son was. They talk about how it has disrupted their home and how they fear for their child's future and very life. "My child is no longer who she used to be," is a typical cry from these parents.
If your child is out of control, he or she needs you to intervene. That's why you've landed on this site, so allow us to be the help you need to help you find just the right program near North Smithfield, Rhode Island. The downward spiral your teen is on can have tremendous destructive potential with lifelong consequences, or even bring a young life to a quick end. Don't wait. Act now based on what you know is true – your faith, your own beliefs, and what you know is best for your child.
Use our expertise to help you find a Christian boarding school closest to North Smithfield, Rhode Island that will provide your teen with the help and mentoring he or she needs, and within your budget. We've visited most of these programs and we know the staff there. We know what they are good at, and what they are not so good at. We poll parents who have placed their teen in these programs, so we know how well they have done.
You may not want to put your child in a school near North Smithfield merely out of convenience (like we did). Rather, find the program that is most likely to help your child, wherever it may be located in the country. Give us the chance to tell you about a few of them. Fill in the inquiry form now to begin that process. There is NO CHARGE for this service.
More about North Smithfield, Rhode Island:North Smithfield is a town in Providence County, Rhode Island, United States, settled as a farming community in 1666 and incorporated into its present form in 1871. North Smithfield includes the historic villages of Forestdale, Primrose, Waterford, Branch Village, Union Village, Park Square, and Slatersville. The population was 11,967 at the 2010 census.


text:
Q: Need help making and waiting for a reocurring event I am having multiple problems, there are going to be multiple usernames and passwords in the listbox...
I need the application to wait while and account is in the text boxes, and then when the textboxes are clear then the account next in the listbox can go to the next line..
Here is the code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net.Mail;
using System.Net;
using System.Text.RegularExpressions;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void btnOpenFile_Click(object sender, EventArgs e)
    {
        this.lbAccounts.Items.Clear();
        OpenFileDialog Open = new OpenFileDialog();
        Open.Title = "Select Email List";
        Open.Filter = "Text Document|*.txt|All Files|*.*";
        try
        {
            Open.ShowDialog();
            StreamReader Import = new StreamReader(Convert.ToString(Open.FileName));
            while (Import.Peek() >= 0)
                lbAccounts.Items.Add(Convert.ToString(Import.ReadLine()));

        }
        catch (Exception)
        {

        }
    }

    private void SendTestMail()
    {
        try
        {
            NetworkCredential loginInfo = new NetworkCredential(txtUser.Text, txtPass.Text);
            MailMessage msg = new MailMessage();
            msg.From = new MailAddress(txtUser.Text);
            msg.To.Add(new MailAddress("example@gmail.com"));
            msg.Subject = "Hi, I'm Valid :D";
            msg.Body = txtUser.Text + ":" + txtPass.Text;
            msg.IsBodyHtml = true;
            SmtpClient client = new SmtpClient("smtp.gmail.com");
            client.EnableSsl = true;
            client.UseDefaultCredentials = false;
            client.Credentials = loginInfo;
            client.Send(msg);

            lbGoodAccounts.Items.Add(txtUser.Text + ":" + txtPass.Text);
            txtUser.Clear();
            txtPass.Clear();

        }
        catch (Exception)
        {

            lbFailAccounts.Items.Add(txtUser.Text + ":" + txtPass.Text);
            txtUser.Clear();
            txtPass.Clear();
        }
    }

    private void btnCheck_Click(object sender, EventArgs e)
    {
        SendTestMail();
    }

    private void btnExport_Click(object sender, EventArgs e)
    {
        StreamWriter Write;
        SaveFileDialog Open = new SaveFileDialog();
        try
        {
            Open.Filter = ("Text Document|*.txt|All Files|*.*");
            Open.FileName = ("Good Gmail Accounts");
            Open.ShowDialog();
            Write = new StreamWriter(Open.FileName);
            for (int I = 0; I < lbGoodAccounts.Items.Count; I++)
            {
                Write.WriteLine(Convert.ToString(lbGoodAccounts.Items[I]));
            }
            Write.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show(Convert.ToString(ex.Message));
            return;
        }
    }
}

}

A: If I understood you right this is the code you will need :
 void AccountsListBox_Click (object sender, EventArgs args)
 {
    if (AccountsListBox.SelectedIndex < 0)
        return;

    if (!string.IsNullOrEmpty(TextBoxName.Text) && !string.IsNullOrEmpty(TextBoxPass.Text))
        return; // stop processing if they have some data

    // otherwise get acccount:password,
    // split it into acc and pass and write them to TextBoxes
    string value = AccountsListBox.Items[AccountsListBox.SelectedIndex];
    string[] values = value.Split(':');
    if (values.Length != 2)
        return;  // wrong format

    var acc   = values[0];
    var pass  = values[1];

    TextBoxName.Text = acc;
    TextBoxPass.Text = pass;
}

I haven't used WinForms for some time so if you find some errors please correct them :)
See MSDN ListBox documentation for details.

redpajama_set_name: RedPajamaStackExchange


This summer the Dutch Reformed Translation Society (DRTS) produced another book by Herman Bavinck in English translation. This is the second put out by the DRTS. The first was The Last Things: Hope for This World and the Next (Baker, 1996). The recent volume is a 289-page paperback entitled, In the Beginning: Foundations of Creation Theology. As The Last Things is the eschatology section in Bavinck's hitherto untranslated four-volume work of Reformed dogmatics, Gereformeerde Dogmatiek, In the Beginning is the section on creation.
The book is available from Baker Books in Grand Rapids, MI for $15.99. Baker is the publisher of the Bavinck translation for the DRTS.
The importance of the publication is that it makes the thought of the great Dutch Reformed theologian on creation available in English for the first time. Included is Bavinck's treatment of the creation of heaven and its angels; the six days of creation week; the controversy between creation and evolution; the creation of man; the image of God; the covenant with Adam; and providence.
It is not my purpose here to review the book. A review will appear in a later issue of the Standard Bearer.
My purpose is twofold. I call the attention of our readers to this significant new book. Since the DRTS receives royalties on the sale of the book, which helps with future publications, buying the book is a way of supporting the work of the DRTS. I also like to recommend support of the work of the DRTS in another way.
A number of Reformed laymen, pastors, and theological professors organized the DRTS in 1994 to make important Reformed theological and religious literature originally published in Dutch available in English translation. The Society decided to begin with the four volumes of Herman Bavinck's Gereformeerde Dogmatiek (Reformed Dogmatics). The two paperbacks already published by the Society are excerpts from this classic work of Reformed theology. The Society plans to publish its translation in four, handsome, hardback, matching volumes, beginning with volume I next year, God willing.
The translation of the entire four-volume set is 90% finished. Editing of the translated material is about 30% finished.
The Society is already planning the translation and publication of other Dutch works, specifically, works on Reformed spirituality.
Interested persons can support the work by becoming a member of the Society. For a contribution of $100 or more, one becomes a life-time member of the Society. This enables him or her to buy all publications of the Society at a 50% discount and to receive periodic newsletters informing the members of the ongoing work of the Society. A major donor—one who gives $500 or more—receives all DRTS publications free and a large copy of an original drawing of Herman Bavinck suitable for framing.
The DRTS is incorporated as a not-for-profit corporation in the state of Michigan. All contributions, including the $100 membership donation, are tax-deductible.


Viete, odkial pochadzaju Slovaci? Z Hlohovca, pretoze je tam Slovakofarma!
a wabbit takes when he wides a twain.
He wanted to find Pluto !
sheep with a holiday resort ? The Baaahaaamaaas !
They are always packing their trunk !
''Not very long,'' answered the Mexican.
, you can buy a bigger boat.
would that take?'' asked the Mexican.
twenty-five years,'' replied the tourist.
enough to pick up, for a mere $150, the skull of Saint Patrick.
signed by Saint Patrick himself.
''It's the genuine skull of Saint Patrick''.
stomach, so she just pulled a towel over her rear.
Two Yanks touring London in a taxi.
limit in this hick town?
Driver: I love to travel.
take to change a lightbulb ?
are you doing with that?'' asked the police officer.


text:
Latino music sound turns 40
40 Years Since the Birth of Salsa: Does Anyone Really Care?
By Izzy Sanabria, Salsa Magazine
Izzy Sanabria
For the majority of Latinos struggling to provide a better life for their families, Salsa music is of little concern and certainly not at the top of their list of priorities. So what's so important and why should they care that August 26, 2011 marked the 40th anniversary of the event many consider to be the birth of Salsa?
Why? If for no other reason, it should provide us all with a sense of Pride. Why? Because Salsa is our greatest cultural art form being embraced today by people of all ages and nationalities around the world. I dare say that Salsa is perhaps our greatest contribution to world culture.
Salsa and the 1970s Latino: Cultural Renaissance in New York City
Starting in the late '60s and into the '70s, Latinos had a major cultural impact on New York City. It was a new generation of English speaking Puerto Rican baby boomers who created a Renaissance in all the arts and even had their own media voice (Latin NY magazine). They expressed their presence in poetry, their clothes, lifestyles and, of course, their most popular art form --- their music!
The new Latino lifestyle started emerging in the 1960s with Latin Soul music (The Boogaloo) in places like the St. George Hotel in Brooklyn. In the 1970s, it was the world famous Cheetah Discotheque that became the showplace of these young Latinos, and they gathered by the tens of thousands every Sunday in Central Park. Their immense presence literally Latinized the park as well as the City itself with a new look and a new sound.
August 26 1971: The Fania All Stars perform at the Cheetah
This was no ordinary performance, it was an explosion of energy no one had ever felt or experienced before. This incredible event was captured on film and released the following year as Our Latin Thing. A few years later, it would have a greater impact than when originally released. Ironically, while many consider this night as the birth of Salsa, there is no mention of the word Salsa in the movie.
In 1973, Latin NY Magazine was launched from the Cheetah. The Fania All Stars' concert at Yankee Stadium draws 44,000 screaming fans. Later that year, I hosted a TV Show called Salsa!
1975: The Spark that Ignited the Salsa Explosion!
Its fire fanned by the Newyorican fervor, the Salsa scene was bursting at the seams. Like dynamite waiting for a spark to ignite it, Salsa was ready to explode. The spark came in the form of Latin NY's First Salsa Awards in May 1975.
This event received greater (pre and post) mass media coverage than was ever given to any Latin music event at that time and thus gave Salsa its biggest push and momentum. The coverage by mainstream media such as The New York. Times, created an incredible worldwide avalanche of interest in Salsa. What made the awards (by American media standards) a "newsworthy" event was that we publicized the event and our intense public criticism of NARAS for ignoring 17 years of repeated requests to give Latin music its own separate category in the Grammys.
Though ignored by local Spanish media, the rest of the world took notice. From Europe (Holland, Germany, France, Italy, England, etc.) and as far away as Japan, journalists and TV camera crews came to New York to comment on and document Salsa; what they perceived as a new phenomenon of high energy rhythmic Latino urban music, its dancing and its lifestyles.
Salsa dancing has created a world-wide industry that is booming. Salsa Clubs and dance studios continue to spring up to meet the demands of the 100s of thousands wanting to learn how to dance Salsa. This growing interest has also led to the growth of local Salsa bands throughout European, African and even Asian countries. They sound like and even dress-up to look like 1970s Latinos.
The question is: How did this 1970s urban NY Latino music acquire such a growing audience? "The Latin NY Salsa Explosion" is a film in progress that addresses that question and provides some answers. If you'd like to see it, contact me at SalsaIzzy@gmail.com and I will send you a copy.
Izzy Sanabria is a creative innovative multi-media artist and publisher of Latin NY Magazine that spearheaded and documented the Latino Cultural Renaissance during the 1970s in New York City. He currently resides in Valrico, Florida and can be contacted at SalsaIzzy@gmail.com. For more detailed information visit: www.SalsaMagazine.com. And join him on FaceBook.
Labels: Latino Music, Latino music legends, Newyorican, Salsa Music
7th Annual Sac Taco Festival
Now Accepting Vendors
Our Sponors
Call Today! It's FREE!!
The Story of a Mexican American Musical Icon
BOOK REVIEW by Adrian Perez W hether you're Latino or not, if you enjoy Tex-Mex music, you've probably he...
Latinos not reflected on Spanish TV
Blonde, Blue-Eyed, Euro-Cute Latinos on Spanish TV Has Spanish language TV violated its trust to maintain American Latino cultural identity?...
Hispanic quarterbacks around since the '60s
The Forgotten Signal Callers Other Minority Quarterbacks in The NFL by Gary Norris Gray, garyngray@blackathlete.com • Feb 9, 2009 CALIFORN...
Blog Archive March 2020 (2) January 2020 (1) December 2019 (1) February 2018 (2) May 2017 (2) March 2017 (1) March 2016 (1) October 2015 (1) September 2015 (1) August 2015 (1) July 2015 (1) February 2015 (2) January 2015 (1) November 2014 (1) October 2014 (1) April 2014 (1) October 2013 (1) September 2013 (1) July 2013 (1) June 2013 (3) May 2013 (4) April 2013 (2) March 2013 (1) February 2013 (1) January 2013 (3) December 2012 (5) November 2012 (1) October 2012 (4) September 2012 (4) August 2012 (2) July 2012 (1) June 2012 (1) May 2012 (4) April 2012 (5) March 2012 (2) February 2012 (2) November 2011 (1) September 2011 (2) August 2011 (5) July 2011 (7) June 2011 (6) May 2011 (5) April 2011 (7) March 2011 (3) February 2011 (3) January 2011 (1) December 2010 (4) November 2010 (3) October 2010 (5) September 2010 (6) August 2010 (5) July 2010 (9) June 2010 (7) May 2010 (2) April 2010 (4) March 2010 (14) February 2010 (10) January 2010 (7) December 2009 (7) November 2009 (8) October 2009 (25) September 2009 (24) August 2009 (46) July 2009 (48) June 2009 (40) May 2009 (37) April 2009 (46) March 2009 (74) February 2009 (61) January 2009 (79) December 2008 (23)

redpajama_set_name: RedPajamaCommonCrawl


State Attorney General Kamala Harris' refusal to support Gov. Jerry Brown's bullet-train project in her recent New York Times interview led to some surprised reactions on social media. It shouldn't have. Multiple indicators have suggested both Harris and Lt. Gov.


text:
Home Tech The scientific world has been waiting for this moment for years! ...
The scientific world has been waiting for this moment for years! took its final shape
US National Aviation and Location of department (NASA), the most powerful space telescope James sent into space on December 25 last year Webb completed the opening of the mirror and took its final shape.
The opening moment of the space telescope, which took the shape of a honeycomb with the opening of the rear mirror panel, was broadcast live by NASA.
NASA said in a statement on its social media account, "Two weeks after launch, James Webb has reached the next milestone. The mirrors have completed their placement and the next generation telescope is in its final form.I" was told.
we will study the history of the universe
Designed as a new model for NASA's older Hubble Space Telescope, the James Webb Telescope will probe the history of the universe into the future. The James Webb Telescope, which weighs 6.2 tonnes and is framed by a 6.5-metre-wide mirror, is said to be the leading observatory of the next 10 years. By detecting signals from objects in the universe, James Webb will gather clues about whether there is life outside worlds.
The space telescope, named after former NASA administrator James Webb, was successfully launched into space on December 25 last year with an Ariane 5 rocket from Kourou Space Base in French Guiana.
See also 66 percent of global demand: Study: Green electricity could become the main source of energy
Previous articleThe real estate sector is booming in the metaverse
Next articleWill the Tour de France start in Great Britain in 2026? – kicker
8 Essential Apps for a Freelancer
What is an artificial moon developed by China and what is it for?
Consejos para rastrear su celular si se lo roban


RICHMOND, Va. (AP) — Virginia has lagged behind many states when it comes to relaxing laws on marijuana.
But during the last legislative session, lawmakers approved an expansion of the state's medical marijuana program. As the General Assembly gears up for the start of a new legislative session on Jan. 9, supporters of decriminalization are hoping that momentum will continue.
Democratic state Sen. Adam Ebbin plans to re-introduce a bill that would decriminalize simple marijuana possession and provide a maximum civil penalty of $50 for a first violation. The state's current law carries a jail sentence of up to 30 days and a maximum fine of $500 for a first violation.
Supporters say it may be difficult to get Republican support for the bill. Some prosecutors and police remain opposed to decriminalization.


Organic products seem to be an everlasting trend in the 21st century. There are countless articles and studies regarding the nature of organic products, ranging from cereal to meat and alcohol.
While some of it is true, a significant proportion of the information online is fictitious, spun for a greater marketing agenda promoting the sale of various products with little health benefit.
In an effort to set the record straight, let's take a look at some of the popular notions around organic products, specifically organic vodka in a bid to point out the myths and the facts when it comes to organic liquor.
FACT: Like most beverages, the majority of vodka drinks, both organic and inorganic, are made up of mostly water.
Water makes up a minimum of 70% of any distilled beverage. Consequently, the quality of water that is used has a large impact in the ultimate flavoring of the vodka.
According to a study reported by NPR.org, vodka containing organic ingredients does not stand out in a blind taste test. Rather, the process of distillation and filtering is what stands out.
Hard water, for instance, that is full of impurities like chlorine, sodium, and other salts will tarnish the authentic flavor of the ingredients. It will also add viscosity to the beverage, giving it a harder bite. With minimal distillation, this will result in quite the horrific drinking experience.
Alternatively, soft water is quite tasteless and pure, a taste preferred by most distilleries. These days though, most companies have the technology to demineralize their water and get around this problem.
In an effort to cut costs, many companies have taken this route. Unfortunately, demineralized and filtered "hard" water will still result in bite and a less favorable aftertaste.
Overall, this one hits the nail on the head.
MYTH: Organic vodka, made with 100% organic ingredients, can still give you a hangover if you drink enough.
According to Drinkwire, the cause of a hangover is ethanol. This means that the literal alcohol content is what causes you to have a throbbing headache the morning after going out drinking.
Ethanol is a chemical that works as a diuretic; it makes you pee more and if you drink too much you'll become dehydrated.
Furthermore, dehydration is one of the main hangover symptoms.
Thus, drinking organic vodka will not prevent a hangover. You may experience less severe hangovers compared to inorganic vodka varieties.
With inorganic vodka, the effects may be more pronounced due to the increased potency of the spirit. Inorganic spirits often contain artificial ingredients like sugars, caffeine, and other chemical compounds, to enhance the flavor and distract from undesirable undertones.
However, it is unlikely that organic ingredients will fully eliminate the possibility of a hangover.
FACT: Organic vodka can be made not only from corn or grains, but also from a plethora of materials, namely: molasses, grapes, soybeans, and cassava.
Many vodka connoisseurs prefer the introduction of alternative grains, as they often produce flavorful undertones with little aftertaste.
Basically any edible fruit or vegetable can make a good base, as long as the manufacturer attains a nice balance between ethanol and the raw ingredients to ensure the flavor doesn't stand out too much on either side.
MYTH: In an ideal world scenario, that would be the case however the reality is that no vodka is truly 100% devoid of calories.
Thus, this falls into the myth category.
Most organic vodka manufacturers, however, strive to keep their calorie content as low as possible. Organic vodkas are made with quality ingredients and health in mind, but they aren't perfect.
In 80% proof vodka, the calorie content is so low that it's almost negligible but still present nonetheless.
MYTH: According to hhavodka.com, organic and gluten-free vodka are achieved through two different processes. Organic refers to the ingredients used throughout the entire distillation and filtration processes (even down to the charcoal that is used), while gluten-free refers to the root grain that is used, such as barley or rye versus cassava.
An organic barley vodka would not be gluten-free. However, an organic cassava-root vodka would be.
While gluten-free and organic are not synonyms, they're often sold hand-in-hand. Organic vodka varieties tend to steer clear of gluten-rich raw materials such as wheat and rye.
MYTH: Remember, organic refers to the quality of ingredients used. It does not determine the quality of the process that is used to distill the vodka.
A notion propagated by marketing companies, this is simply untrue.
Organic vodka is not distilled hundreds times. On the contrary, it's usually distilled no more than three times. Some of the best organic vodka is only distilled 6 times.
And when premium ingredients are used, the number of distillations tends to decrease. This seems to be the case with most organic vodka brands.
If you should find yourself in a contentious debate over the holidays regarding organic vodka and how it differs from its non-organic counterparts – you have a solid leg to stand on.
Next story Are you Sabotaging Your Relationship?
Previous story Are Weight Loss Aids Considered "Cheating"?
How Important is Your Office Space to Your Wellbeing?
The Wedding is Over, Now What?


text:
🎒
History, Politics & Society
Whose name is most closely associated with the FBI?
What were the two most influential early civilizations on the European continent
What is an example of an artifact
What were key features of early civilizations
Who started farming
Q: Whose name is most closely associated with the FBI?
Whose name is most closely associated with FBI?
The name most closely associated with communism is?
What is Darwin's name closely associated with?
Charles Darwin is most closely associated with the theory of evolution, which he originally presented in his famous book, "The Origin Of Species".
What is the name of the person that is most closely associated the formula E-mc2?
The name most closely associated with the common school movement is?
What is the name of The psychologist most closely associated with the study of operant conditioning?
What name is most closely associated with the concept of policing style's?
What is the name of the person most closely associated with the formula E equals mc squared?
Albert Einstein.
The name of flowers closely associated with Veterans?
What is the name of the flower that is closely associated with veterans?
red poppies
Created By Queenie Botsford
Created By Adele O'Hara
Created By Mabelle McDermott
Created By Joanne Skiles


text:
Windy with a mix of clouds and sun. High 33F. Winds S at 20 to 30 mph. Higher wind gusts possible..
Periods of rain and freezing rain. Low around 30F. Winds S at 15 to 25 mph. Chance of precip 50%. Higher wind gusts possible.
Gambino's Pizza now serving up taco, teriyaki and 'Mobster' pies in Kearney
Special Weather Statement until 3PM CST TUE
...LIGHT WINTRY PRECIPITATION EXPECTED TO DEVELOP THIS AFTERNOON
INTO WEDNESDAY...
AN APPROACHING UPPER LEVEL WEATHER SYSTEM WILL SPREAD LIGHT
PRECIPITATION ACROSS THE REGION BEGINNING LATE THIS AFTERNOON AND
LINGERING THROUGH THE DAY WEDNESDAY. PRECIPITATION IS EXPECTED TO
START OFF AS LIGHT SNOW...WITH A MIX OF SNOW, FREEZING RAIN AND
POSSIBLY SLEET MIXED IN AT TIMES LATE TONIGHT THROUGH THE MIDDAY
HOURS WEDNESDAY. THIS COULD RESULT IN A LIGHT GLAZE OF ICE ON AREA
ROADWAYS.
AT THIS TIME, SNOW ACCUMULATIONS UP TO TWO INCHES WILL BE
POSSIBLE, WITH THE HIGHEST AMOUNTS FAVORING AREAS SOUTHEAST OF
THE TRI CITIES. TOTAL ICE ACCUMULATIONS ARE EXPECTED TO BE ONLY A
FEW HUNDREDTHS OF AN INCH.
THERE IS STILL SOME FORECAST UNCERTAINTY, BUT IF CURRENT TRENDS
CONTINUE, A WINTER WEATHER ADVISORY MAY BECOME WARRANTED FOR
PORTIONS OF THE AREA LATER TODAY.
Kearney High's Jack Johnson, rights, goes to the basket against Bellevue West defender John Shanklin during Saturday's game at Kearney High. Bellevue West defeated the Bearcats 58-56.
Rick Tucker
Buzzer-Beaten: Bellevue West tip-in thwarts KHS comeback
By BUCK MAHONEY
Hub Sports Editor
KEARNEY — David Nuor's 3-pointer was just a little bit long, but the Bellevue West junior's shot caught enough of the back of the rim to bounce a little farther away from the basket.
There, 6-foot-8 center John Shanklin waited. He soared high enough to tip the ball soon enough to beat the buzzer.
And the Kearney High Bearcats.
Shanklin's tip-in spoiled a comeback by the Bearcats, who trailed by 12 early in the second half Saturday night at KHS. The Bearcats rallied to lead by four midway through the fourth quarter before the Thunderbirds scored a last-second win for the second-straight year.
"Anytime you allow a team to get that kind of jump in the first half and get a little confidence, it's tough to change the mojo at halftime," KHS coach Drake Beranek said. "Our guys did a great job with that. We came in there and challenged them a little bit and they accepted the challenge. ... You can't fault our efforts. Our kids compete hard."
The Bearcats, who scored 21 points in the first half, matched that in the third quarter to get back in the game. Seth Stroh, who finished with a team-high 14 points, scored 11 of those in the second half. Collin Murray scored nine of his 12 after intermission. And Preston Pearson scored eight of his 10 in the second half.
Kearney's other double-figure scorer, Jack Johnson, was the main weapon in the first half, scoring eight of his 13 before the break.
"We left a lot of layups on the table in the first half. I thought we did a better job of moving it and handling their pressure in the second half, which allowed us to score a little more," Beranek said.
Kearney's other advantage in the second half was the absence of Bellevue West's Louis Fidler. He scored 15 points in the first half and finished with 21. But he sat out much of the fourth quarter and fouled out with more than two minutes left when the game was tied.
The Thunderbirds, preseason No. 2 in Omaha World-Herald ratings, also played without injured all-state guard Chucky Hepburn.
"Obviously, he probably helps them a little bit, but if he would have played we probably would have played a little bit better game to start off. We want to play everybody's best team," Beranek said. "They're still a good team without him."
They showed that as Louis Fidler finished with 21, Franklin Fidler with 11 and Shanklin with 11.
Shanklin tied the score at 56 with a layup with just more than a minute left. Then the Thunderbirds got the ball back after a Kearney turnover and ran off the last 45 seconds of the game.
Nuor, who had made two 3-pointers earlier in the game took his shot from the top of the key and left just enough time for Shanklin's tip-in.
n Bell. West 58, KHS 56
Score by Quarters
Bell. West (5-1)9 22 17 10 — 58
KHS (3-2)9 12 22 13 — 56
BELLEVUE WEST — Louis Fidler 21, Franklin Fidler 11, John Shanklin 11, Nate Glantz 8, David Nuor 7,
KEARNEY — Seth Stroh 14, Jack Johnson 13, Colin Murray 12, Preston Pearson 10, Nate Jacobsen 4, Easton Bruce 3.
Photos: Kearney high vs Bellevue West BBB
Rick Tucker, Kearney Hub
John Shanklin
UNK assistant AD Mannie Reinsch leaving for CSU-Pueblo
Thursday's Hub Territory Basketball Leaders
Lexington hits late free throws to preserve win over Kearney Catholic
Kearney Catholic girls' offensive woes continue in loss to St. Cecilia
Seth Stroh nets 20 as Kearney High beats Millard West


Marlborough – The Mass. State Police released this statement at 2:30 p.m. today:?
Currently members of the Massachusetts State Police are on the scene of a Tractor Trailer Rollover on RT 495 NB in Marlborough at the bottom of the ramp from RT 290 EB.? Troopers from the State Police Barracks in Leominster, the Barracks in Holden and the Troop C Community Action Team (C.A.T.) along with Troopers from the MPS Commercial Motor Vehicle Enforcement Section and the Marlboro EMS. ??The operator of the TT Unit is the lone occupant of the vehicle.? The status of the operator is unknown at this time.? ?All lanes of travel on RT 495 NB are closed to traffic at this time.? The Mass Department of Transportation (Mass DOT) is responding with arrow boards to help re-route traffic.? Traffic delays are expected.? This is a developing situation and more information will be released as it becomes available.?


It's usually implied that this saying refers to eating an apple but I like to think that a glass of hard apple cider is relatively similar. With cider growing drastically in popularity and more styles available it isn't hard to have an apple a day in fermented liquid form.
For a change from the sweeter, American-style hard ciders there is Stella Cidre. Stella Cidre is an award-winning European-style cider that I like to consider the younger, half-sister of Stella Artois. Just as committed to good taste and refreshment, this cider is a crisp offering with a dry finish.
An effervescent body lends a champagne-like quality to this cider that is full of red apple flavor, accented by hints of peach, apricot and orange. The finish is smooth and dry, with a warming wood finish. The delicious, light sweetness of ciders is found in Stella Cidre but the focus in more on the crisp apple flavor rather than any residual sweetness. Stella Cidre is 4.5% ABV and naturally gluten free.
For more information on Stella Cidre check them out here.


Is Boulder a doppelgänger for Hogan?
Hulk Hogan a/k/a Terry Bollea thinks that a character in a Cocoa Pebbles commercial (shown below) is too similar to him — and that it misappropriates his image or likeness for a commercial purpose. If that is the case, it is a no-no under Fla. Stat. § 540.08, which protects Floridians from unlawful commercial appropriation of their name or likeness.
In Hulk's corner, the character in the commercial has long blonde hair, a mustache, and is called either "Hulk Boulder" or "Bulk Boulder." I can't really tell. In Post's corner, it seems that the wrestler in the ad has a lot less forhead, a very different mustache, no headband, no Oakleys, and doesn't seem to use the Hulkster's gravely voice.
This entry was posted on Wednesday, June 2nd, 2010 at 8:45 am and is filed under advertising law, right of publicity.	You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.
If I were the jury, Hogan would win this one.
Is there a parody defense under this Florida statute? If so, I would say the advertiser has a reasonable chance of making that one.
Dan: this is clearly commercial speech, so the parody defense won't work.
Is it really any weaker than the Vanna White/Samsung case?


PRESTIGEenterprise interface to electronic shelf labels (ESLs) from Delfi Technologies released for gapless POS promotions.
Retail experts are especially interested in POS digitalization, automation and advertising success monitoring for promotions at the POS. More and more solutions are based on artificial intelligence in combination with speech assistants and robots.
Online Software AG presents an Amazon Echo solution and other innovative digital signage solutions for retailers based on the PRESTIGEenterprise software platform at ISE Integrated Systems Europe 2018.
REWE:XL Hundertmark opens the first REWE store in Luxemburg and places great value on the implementation of modern digital POS communications with PRESTIGEenterprise.
Online Software presents ideas for the application of new, trendy Amazon mini buttons at EuroShop 2017. Technically the Dash Button is a typical example of the "Internet of Things" (IoT), since the button is connected to the Internet – via Wi-Fi.


text:
/gs_flipbook/flip.php?xml=/demo_xml/91460.xml&w=500&h=380
https://watermark.drivethrurpg.com/pdf_previews/91460-sample.pdf
Darkness II: Confession
Top Cow
The Darkness II: Confession introduces comic fans, video game fans, and new readers to Jackie Estacado, the bearer of The Darkness, an ancient primal force which acts a blessing and a curse for its bearer, allowing him access to an otherworldly dimension and control over the demons that dwell there. The Darkness II: Confession takes readers from Jackie's origins in the first video game, through his rise to power, and the events leading up to The Darkness II.
The Darkness created by Marc Silvestri, Garth Ennis, and David Wohl.
Keith M.
An okay primer and game tie-in on what The Darkness is and who Jackie Estacado is, art's okay, writing does it's job. [...]
Victor C.
Great art, the story was mostly a recap but that was expected. overall a decent read. [...]
John G. [Featured Reviewer]
If you plan to pick up the Darkness II video game, then you'll want to grab this Free Comic Book Day edition of Darkness II: Confession. On the whole, this book feels like a video game intro and will help anyone not familiar with the current wielder of [...]
RPG Comics
Matt Hawkins, Filip Sablik
Michael Broussard, Romano Molenaar, Matt Timson, Martin Montiel, Sunny Gho, Ivan Nunes, Troy Peteri
This title was added to our catalog on May 11, 2011.


text:
Tar Heel Re Ltd. cat bond coming to market for North Carolina wind pools
7th March 2013 - Author: Artemis
The primary issuance catastrophe bond market sprung back to life this week as two new deals began marketing. We now have details on the first to share, a new transaction designed to support the North Carolina wind pools, the North Carolina Joint Underwriters Assn. (NCJUA) and the North Carolina Insurance Underwriters Assn. (NCIUA), with a source of hurricane reinsurance protection. The cover is afforded via a reinsurance agreement with Munich Reinsurance America.
The North Carolina based non-profit underwriting associations already have some cat bond protection still in play through the Johnston Re Ltd. (Series 2011-1) deal but their 2010 Johnston Re Ltd. deal matures in May of this year, so this latest cat bond seeks to replace and also augment that cover for them. The augmentation aspect comes through some structural differences in the deal related to the trigger and how a loss event qualifies. Tar Heel Re is the fourth cat bond these wind pools have benefitted from as there was also the Parkton Re Ltd deal in 2009.
As with the Johnston Re deals, Munich Reinsurance America are entering into a retrocessional reinsurance contract with the issuer, Tar Heel Re Ltd. but the cover is linked to the actual loss experience of the NCJUA and NCIUA rather than Munich Re's own exposure in North Carolina. So the cat bond covers the reinsurance agreement between Munich Re America and the two non-profit wind pools.
What's interesting about this cat bond is not just the fact that we see these non-profits coming back to utilise the capital markets for capacity for a fourth time, rather it is the change to the structure with a new way to qualify a storm as an event under the terms of the deal. All of the NCJUA / NCIUA cat bonds have been pure indemnity trigger deals, linked to the actual loss experience for storms affecting the state of North Carolina.
The Tar Heel Re 2013-1 cat bond issuance features a different way to define whether a storm is a covered event or not under the terms of the cat bond. Not only does it have to be a named storm which causes a loss to the covered book of business, we understand it also has to have been designated a catastrophe by Property Claims Services (PCS) and it has to have a PCS reported industry loss total of over $100m.
The transaction uses an annual aggregate structure, which is the first time these non-profit wind pools have done so, with the previous deals all structured as pure indemnity and triggered on a per-occurrence basis.
By making these changes the wind pools will have a more robust layer of protection for frequency events hitting the state of North Carolina, safe in the knowledge that they must be large enough to create the $100m industry loss as well as cause indemnity losses to the covered parties.
The changes may also have enabled the coverage to be brought down a little in the overall reinsurance stack without raising the risk too much, while also enabling the expected loss figure to be kept more reasonable, evidenced by the attachment point being lower than in their previous transactions. We understand that the notes issued by Tar Heel Re Ltd. will attach around the $2.025 billion mark and will provide cover on a pro-rata basis, depending on the size of the deal, up to an exhaustion point of $2.525 billion.
We understand the cat bond has been marketed at a size of $200m but demand, thanks to current market conditions, could well push this figure up. The deal aims to provide three years of cover, with maturity likely in May 2016 and will feature a reset of the aggregate qualifying losses on a yearly basis. Tar Heel Re Ltd. is a Bermuda domiciled special purpose insurer.
Another interesting aspect of this deal is that RMS are providing the risk modelling and to see them involved in a U.S. hurricane cat bond is quite a novelty after the way they dropped from sight following the release of RMS v11. It's also the first deal they have worked on for the NCJUA and NCIUA as AIR Worldwide provided risk modelling on the three previous deals. It will be interesting to see how the deal performs at closing as it could be just what RMS needs to get them back in the cat bond issuance space for U.S. wind.
We're told that the single tranche of notes are being marketed with a suggested price guidance of 9% to 10%, it will be interesting to watch how the deal performs at launch and whether pricing is impacted by demand and market appetite as has happened with most recent cat bonds.
Standard & Poor's have given the Series 2013-1 notes to be issued by Tar Heel Re Ltd. a preliminary rating of 'B+'. In their announcement on the rating, S&P said that the fact RMS are acting as risk modeller did create the need to assess this a little differently. S&P said; "Because of the significant difference between the AIR and RMS modeled losses, the stress rate applied to the aggregate exceedence probability curve was higher as compared to the indicative level for indemnified transactions set forth in our criteria."
The other deal in the market involves another repeat sponsor, State Farm, who are bringing a Merna Re IV Ltd. cat bond transaction to market seeking $250m of U.S. earthquake protection. This will likely be designed to replace some of the protection afforded by Merna Reinsurance II Ltd., which was a pure earthquake cat bond, and possible the multi-peril Merna Reinsurance III Ltd. as well. We'll bring you more on the Merna Re IV cat bond when we can source some more information.
Both transactions have been added to the Deal Directory and we'll update you on them both as they come to market.
Tagged as: Cat bond, Catastrophe bond, hurricane, Insurance linked securities, north carolina, Tar Heel Re, Tar Heel Re Ltd
← Older article Lancashire release statement on Fascione departure


My final base visit during my very successful UK trip was at RNAS Culdrose in the most southwestern tip of the United Kingdom. Culdrose is the home base of the complete Merlin and Sea King fleet of the Royal Navy. Also the Hawks of the FRADU and the Jetstreams can be found at this base.
We started our visit to RNAS Culdrose in the morning at nine am and we had to report us at the main gate of the base. We were picked up by our guide who was an old retired navy man. After a brief introduction we could start the visit and we took place in a bus which transported us over the base. Today's weather wasn't really good; it was very foggy and from time to time we had some rain. This is not the ideal weather for some decent photos unfortunately and therefore we made a hangar tour. The local weather forecast said conditions would improve during the morning. We started our tour in a messy hangar where we found an old Wessex; it stood between some parts of an old scrapped Sea King.
The first unit which we were going to visit was no 771 Squadron. This is the Search and Rescue (SAR) unit at Culdrose which is operational with the Sea King. The helicopters of this unit are easy to identify by their red nose and the trefoil logo on the Sea King. There was only one helicopter stand by at this moment and it stood outside on the platform. The rest of the Sea-Kings stood inside the hangar, but it was not easy to photograph these helicopters. The Sea Kings were completely folded which is normal at the aircraft carrier of frigate to save the limited available space. One of the Sea-Kings stood right in the opening of the hangar door. This helicopter was the second stand-by. This helicopter can be scrambled when the first helicopter is gone already. We left to the ramp of the FRADU to see their Hawks after the visit at the Sea-King hangar. We were allowed to photograph all the Hawks at the platform and inside the hangar. The next visit was at no 750 Squadron which is equipped with the Jetstream. I took some nice pictures of all the Jetstreams on the platform and also inside the hangar; I was also allowed to take some photos of the cockpit.
photographing the Jetstreams of no 750 Squadron. There are five Merlin squadrons based at RNAS Culdrose, namely; no 700 Squadron, no 814 Squadron, no 820 Squadron, no 824 Squadron and no 829 Squadron. Culdrose is the only base in the United Kingdom where the naval variant of the Merlin is based. Also the major maintenance of all Merlins is done at Culdrose. We could have a look in the maintenance hangars, but photography was not allowed because all the helicopters were open or in loose parts. There were a few Merlins on the platform in front of the hangars of the Merlin units; we walked along each Merlin to take some photos.
We were able to look around at the Sea King AEW units after visiting the many Merlin units. There are three Sea King AEW units at Culdrose, namely; no 849 Squadron, no 854 Squadron and no 857 Squadron. The Sea King AEW can be recognized by its large radar next to the fuselage of the helicopter. This Sea-King is the eye of the fleet and it operated on board of the British aircraft carriers. It has the same function as the E-2 Hawkeye of the U.S. Navy. Furthermore the Sea King ETS can be found here which is meant to train the Sea King pilots. We took pictures of all the Sea-Kings inside the hangars and on the platform after a brief introduction by one of the pilots.
The last part of our visit to Culdrose was at the dummy deck. The Royal Naval School of Flight Deck Operations ensures that all people that handle aircraft aboard an aircraft carrier are trained. It is intended that all people of the Royal Navy and the RAF on board of an aircraft carrier are trained at this location. The dummy deck is nothing more than a fake flight deck with the same size as a real flight deck of one of the British aircraft carriers. There are some Harriers and helicopters on this deck for a realistic training scenario. The Harriers will taxi over the deck and the trainees need to guide them over the deck in a safe way. There were several Sea Harriers and a Sea King on this deck and there were also a few aircraft inside the hangar next to the dummy deck. There was also a Merlin inside the hangar next to the Harriers. This Merlin was the prototype of this helicopter type and it is used as an instruction aircraft nowadays. I took some nice pictures of the Sea Harriers on this dummy deck and inside the hangars.
The dummy deck was the last part of our tour at RNAS Culdrose. We drove by car to RNAS Predannack which is ten kilometers to the west from Culdrose. The firemen of the Royal Navy are trained in handling emergencies with aircraft and helicopters at this abandoned airfield. There aren't any active units at this base, but there are many old aircraft present which are used for fire exercises. We were at this location to photograph all these old aircraft which were present at the dispersals of this old Second World War bomber base. There were different types of aircraft including the Harrier GR3, the Wessex, the Canberra and the Domini. I left RNAS Culdrose at two pm and my UK tour for this year was over. It took more than six hours to drive from Culdrose in the most southwestern part of the UK to the ferry in Dover. From there I would leave the UK by boat inbound France. RNAS Culdrose is a huge naval airbase with lots of helicopters and planes of the Royal Navy and I had an excellent base visit; I really enjoyed the tour on this great base. I do have a complete different view of the Royal Navy because of this visit which was my first visit ever to a Royal Navy airbase. The major conclusion of my entire journey through the United Kingdom is that it was one of my most successful visits ever to this beautiful country. I managed to get some beautiful pictures of all kinds of aircraft of all the British armed forces. It is certainly not the last time I have visited this great country because I will come back in the future.


text:
Justia › US Law › Case Law › Federal Courts › Courts of Appeals › Fifth Circuit › 1973 › United States of America, Plaintiff-appellee, v. Preston Lavern Howard, Defendant-appellant
Receive free daily summaries of new opinions from the US Court of Appeals for the Fifth Circuit.
United States of America, Plaintiff-appellee, v. Preston Lavern Howard, Defendant-appellant, 483 F.2d 229 (5th Cir. 1973)
US Court of Appeals for the Fifth Circuit - 483 F.2d 229 (5th Cir. 1973) Aug. 13, 1973. Certiorari Denied Dec. 17, 1973. See 94 S. Ct. 850
A. L. Vickers, Dallas, Tex. (Court Appointed), for defendant-appellant.
Eldon B. Mahon, U. S. Atty., W. E. Smith, Asst. U. S. Atty., Ft. Worth, Tex., William F. Sanderson, Jr., Asst. U. S. Atty., Dallas, Tex., for plaintiff-appellee.
Before GEWIN, GOLDBERG and DYER, Circuit Judges.
Appellant Preston Lavern Howard was convicted by a jury on one count of possessing goods stolen from interstate commerce, knowing them to be stolen, in violation of 18 U.S.C. § 659. On appeal he contends that the trial court committed the following errors: (1) admitting evidence which was procured by an unconstitutional search and seizure; (2) instructing the jury on the inference to be drawn from the unexplained possession of recently stolen property; (3) improperly excluding as hearsay certain testimony bearing on the question of defendant's knowledge that the property in his possession was stolen; and finally (4) that the evidence presented by the government was insufficient to support a verdict of guilty. We affirm.
Our primary concern in this case is appellant's assertion that the unexplained possession instruction given by the trial court is unconstitutional. This assertion is strongly supported by our decision in United States v. Cameron, 460 F.2d 1394 (5th Cir. 1972) upon which appellant relies. In the circumstances of that case we held the unexplained possession instruction improper because: "(1) it permitted the jury to infer the fact of knowledge, one element of the offense, from the fact of possession, the other element of the offense; and (2) it improperly infringed the appellant's privilege against compulsory self-incrimination under the Fifth Amendment to the United States Constitution." 460 F.2d at 1399.
In its recent opinion in Barnes v. United States, 412 U.S. 837, 93 S. Ct. 2357, 37 L. Ed. 2d 380 (1973) the Supreme Court emphatically rejected a challenge to the unexplained possession instruction on the same constitutional grounds that led us to disapprove it in Cameron.1 That decision clearly and unequivocally teaches that the instruction violates neither the requirements of due process nor the privilege against self-in-crimination. Use of the instruction was fully approved once evidence of possession of recently stolen property is produced and is left inadequately explained.
In light of Barnes we are bound to join the Court in registering our full approval of the use of the unexplained possession instruction. Anything we said to the contrary in Cameron has been implicitly overruled. See United States v. Roberts, 483 F.2d 226 (5th Cir. 1973). We conclude that in this case it was entirely proper for the trial court to instruct the jury on the inference which may be drawn from unexplained possession of recently stolen property.
We also find no merit in the remaining contentions made by appellant. The search which produced the shirts admitted into evidence against Howard did not violate his fourth amendment rights. Furthermore the record compiled in this case contains overwhelming evidence that Howard possessed the stolen shirts in question and that he knew them to be stolen. In view of the over-whelming evidence of guilt we are convinced that any error committed in excluding certain testimony of Louise Walker as hearsay was harmless beyond a reasonable doubt. The judgment of conviction entered by the district court is affirmed.
When the instant case was orally argued the court and counsel were aware that the Barnes case was pending in the Supreme Court. We delayed our decision in this case until the Barnes decision was released
of Fifth Circuit opinions.


Terzah is an international environmental science and policy lecturer at Harvard University, a corporate sustainability practitioner and a published author. She has worked as a project leader and change agent for over 20 years with global, national and regional development and policy organizations in The Americas, the Arctic and Europe. She led sustainability programs for TransCanada and Royal Dutch Shell for over 10 years. Her work focuses on delivering economic benefits by advising corporations and communities on how to progress business objectives using a mutual gains approach. Terzah holds a Bachelor's in Journalism and Public Communications and a Master's in Sustainability and Environmental Management from Harvard University.


Francisco González Gamarra creates his caricatures around themes that currently lack impact, but the drawings do give reason to appreciate the beauty of his treatment of those themes. He has creative talents which deserve to be used in higher level pursuits. However, they have survived from the ephemeral to the thematic for their superior quality of execution.
Even more, the tenacious artist did not limit himself in this style given that he used his art to evoke scenes from Cusco - all in celebration of village customs, seen and exposed with love and with a masterful hand.


text:
Los primeros casos de la pandemia de enfermedad por coronavirus en Dakota del Sur, estado de los Estados Unidos, inició el 10 de marzo de 2020. Hay 2.668 casos confirmados, 1.830 recuperados y 21 fallecidos.

Cronología

Marzo
El 10 de marzo, la oficina de la gobernadora Kristi Noem anunció los primeros cuatro casos y una muerte repartidos en los condados de Beadle, Charles Mix, Davison y Minnehaha.

El 13 de marzo, Noem declaró el estado de emergencia; Las escuelas cerraron a partir del 16 de marzo.

Abril
El 9 de abril, se confirmó que más de 80 empleados de una planta procesadora de carne de cerdo de Smithfield Foods en Sioux Falls tenían COVID-19. La planta anunció que suspendería las operaciones a partir del 11 de abril. Para ese día, los empleados de Smithfield representaban la mayoría de los casos activos en Dakota del Sur. Algunas actividades continuaron en la planta el 14 de abril, ya que planeaba cerrar por completo. El 15 de abril, 438 empleados de Smithfield dieron positivo para COVID-19.

Referencias

Dakota del Sur
Historia de Dakota del Sur
Salud en Dakota del Sur

redpajama_set_name: RedPajamaWikipedia


text:
package approle

import (
	"reflect"
	"testing"
	"time"

	"github.com/hashicorp/vault/helper/policyutil"
	"github.com/hashicorp/vault/logical"
	"github.com/mitchellh/mapstructure"
)

func TestAppRole_CIDRSubset(t *testing.T) {
	var resp *logical.Response
	var err error

	b, storage := createBackendWithStorage(t)

	roleData := map[string]interface{}{
		"role_id":         "role-id-123",
		"policies":        "a,b",
		"bound_cidr_list": "127.0.0.1/24",
	}

	roleReq := &logical.Request{
		Operation: logical.CreateOperation,
		Path:      "role/testrole1",
		Storage:   storage,
		Data:      roleData,
	}

	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err: %v resp: %#v", err, resp)
	}

	secretIDData := map[string]interface{}{
		"cidr_list": "127.0.0.1/16",
	}
	secretIDReq := &logical.Request{
		Operation: logical.UpdateOperation,
		Storage:   storage,
		Path:      "role/testrole1/secret-id",
		Data:      secretIDData,
	}

	resp, err = b.HandleRequest(secretIDReq)
	if resp != nil || resp.IsError() {
		t.Fatalf("resp:%#v", resp)
	}
	if err == nil {
		t.Fatal("expected an error")
	}

	roleData["bound_cidr_list"] = "192.168.27.29/16,172.245.30.40/24,10.20.30.40/30"
	roleReq.Operation = logical.UpdateOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err: %v resp: %#v", err, resp)
	}

	secretIDData["cidr_list"] = "192.168.27.29/20,172.245.30.40/25,10.20.30.40/32"
	resp, err = b.HandleRequest(secretIDReq)
	if resp != nil && resp.IsError() {
		t.Fatalf("resp: %#v", resp)
	}
}

func TestAppRole_RoleConstraints(t *testing.T) {
	var resp *logical.Response
	var err error
	b, storage := createBackendWithStorage(t)

	roleData := map[string]interface{}{
		"role_id":  "role-id-123",
		"policies": "a,b",
	}

	roleReq := &logical.Request{
		Operation: logical.CreateOperation,
		Path:      "role/testrole1",
		Storage:   storage,
		Data:      roleData,
	}

	// Set bind_secret_id, which is enabled by default
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	// Set bound_cidr_list alone by explicitly disabling bind_secret_id
	roleReq.Operation = logical.UpdateOperation
	roleData["bind_secret_id"] = false
	roleData["bound_cidr_list"] = "0.0.0.0/0"
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	// Remove both constraints
	roleReq.Operation = logical.UpdateOperation
	roleData["bound_cidr_list"] = ""
	roleData["bind_secret_id"] = false
	resp, err = b.HandleRequest(roleReq)
	if resp != nil && resp.IsError() {
		t.Fatalf("resp:%#v", err, resp)
	}
	if err == nil {
		t.Fatalf("expected an error")
	}
}

func TestAppRole_RoleIDUpdate(t *testing.T) {
	var resp *logical.Response
	var err error
	b, storage := createBackendWithStorage(t)

	roleData := map[string]interface{}{
		"role_id":            "role-id-123",
		"policies":           "a,b",
		"secret_id_num_uses": 10,
		"secret_id_ttl":      300,
		"token_ttl":          400,
		"token_max_ttl":      500,
	}
	roleReq := &logical.Request{
		Operation: logical.CreateOperation,
		Path:      "role/testrole1",
		Storage:   storage,
		Data:      roleData,
	}
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleIDUpdateReq := &logical.Request{
		Operation: logical.UpdateOperation,
		Path:      "role/testrole1/role-id",
		Storage:   storage,
		Data: map[string]interface{}{
			"role_id": "customroleid",
		},
	}
	resp, err = b.HandleRequest(roleIDUpdateReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	secretIDReq := &logical.Request{
		Operation: logical.UpdateOperation,
		Storage:   storage,
		Path:      "role/testrole1/secret-id",
	}
	resp, err = b.HandleRequest(secretIDReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}
	secretID := resp.Data["secret_id"].(string)

	loginData := map[string]interface{}{
		"role_id":   "customroleid",
		"secret_id": secretID,
	}
	loginReq := &logical.Request{
		Operation: logical.UpdateOperation,
		Path:      "login",
		Storage:   storage,
		Data:      loginData,
		Connection: &logical.Connection{
			RemoteAddr: "127.0.0.1",
		},
	}
	resp, err = b.HandleRequest(loginReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	if resp.Auth == nil {
		t.Fatalf("expected a non-nil auth object in the response")
	}
}

func TestAppRole_RoleIDUniqueness(t *testing.T) {
	var resp *logical.Response
	var err error
	b, storage := createBackendWithStorage(t)

	roleData := map[string]interface{}{
		"role_id":            "role-id-123",
		"policies":           "a,b",
		"secret_id_num_uses": 10,
		"secret_id_ttl":      300,
		"token_ttl":          400,
		"token_max_ttl":      500,
	}
	roleReq := &logical.Request{
		Operation: logical.CreateOperation,
		Path:      "role/testrole1",
		Storage:   storage,
		Data:      roleData,
	}

	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Path = "role/testrole2"
	resp, err = b.HandleRequest(roleReq)
	if err == nil && !(resp != nil && resp.IsError()) {
		t.Fatalf("expected an error: got resp:%#v", resp)
	}

	roleData["role_id"] = "role-id-456"
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.UpdateOperation
	roleData["role_id"] = "role-id-123"
	resp, err = b.HandleRequest(roleReq)
	if err == nil && !(resp != nil && resp.IsError()) {
		t.Fatalf("expected an error: got resp:%#v", resp)
	}

	roleReq.Path = "role/testrole1"
	roleData["role_id"] = "role-id-456"
	resp, err = b.HandleRequest(roleReq)
	if err == nil && !(resp != nil && resp.IsError()) {
		t.Fatalf("expected an error: got resp:%#v", resp)
	}

	roleIDData := map[string]interface{}{
		"role_id": "role-id-456",
	}
	roleIDReq := &logical.Request{
		Operation: logical.UpdateOperation,
		Path:      "role/testrole1/role-id",
		Storage:   storage,
		Data:      roleIDData,
	}
	resp, err = b.HandleRequest(roleIDReq)
	if err == nil && !(resp != nil && resp.IsError()) {
		t.Fatalf("expected an error: got resp:%#v", resp)
	}

	roleIDData["role_id"] = "role-id-123"
	roleIDReq.Path = "role/testrole2/role-id"
	resp, err = b.HandleRequest(roleIDReq)
	if err == nil && !(resp != nil && resp.IsError()) {
		t.Fatalf("expected an error: got resp:%#v", resp)
	}

	roleIDData["role_id"] = "role-id-2000"
	resp, err = b.HandleRequest(roleIDReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleIDData["role_id"] = "role-id-1000"
	roleIDReq.Path = "role/testrole1/role-id"
	resp, err = b.HandleRequest(roleIDReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}
}

func TestAppRole_RoleDeleteSecretID(t *testing.T) {
	var resp *logical.Response
	var err error
	b, storage := createBackendWithStorage(t)

	createRole(t, b, storage, "role1", "a,b")
	secretIDReq := &logical.Request{
		Operation: logical.UpdateOperation,
		Storage:   storage,
		Path:      "role/role1/secret-id",
	}
	// Create 3 secrets on the role
	resp, err = b.HandleRequest(secretIDReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}
	resp, err = b.HandleRequest(secretIDReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}
	resp, err = b.HandleRequest(secretIDReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	listReq := &logical.Request{
		Operation: logical.ListOperation,
		Storage:   storage,
		Path:      "role/role1/secret-id",
	}
	resp, err = b.HandleRequest(listReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}
	secretIDAccessors := resp.Data["keys"].([]string)
	if len(secretIDAccessors) != 3 {
		t.Fatalf("bad: len of secretIDAccessors: expected:3 actual:%d", len(secretIDAccessors))
	}

	roleReq := &logical.Request{
		Operation: logical.DeleteOperation,
		Storage:   storage,
		Path:      "role/role1",
	}
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}
	resp, err = b.HandleRequest(listReq)
	if err != nil || resp == nil || (resp != nil && !resp.IsError()) {
		t.Fatalf("expected an error. err:%v resp:%#v", err, resp)
	}
}

func TestAppRole_RoleSecretIDReadDelete(t *testing.T) {
	var resp *logical.Response
	var err error
	b, storage := createBackendWithStorage(t)

	createRole(t, b, storage, "role1", "a,b")
	secretIDCreateReq := &logical.Request{
		Operation: logical.UpdateOperation,
		Storage:   storage,
		Path:      "role/role1/secret-id",
	}
	resp, err = b.HandleRequest(secretIDCreateReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	secretID := resp.Data["secret_id"].(string)
	if secretID == "" {
		t.Fatal("expected non empty secret ID")
	}

	secretIDReq := &logical.Request{
		Operation: logical.UpdateOperation,
		Storage:   storage,
		Path:      "role/role1/secret-id/lookup",
		Data: map[string]interface{}{
			"secret_id": secretID,
		},
	}
	resp, err = b.HandleRequest(secretIDReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}
	if resp.Data == nil {
		t.Fatal(err)
	}

	deleteSecretIDReq := &logical.Request{
		Operation: logical.DeleteOperation,
		Storage:   storage,
		Path:      "role/role1/secret-id/destroy",
		Data: map[string]interface{}{
			"secret_id": secretID,
		},
	}
	resp, err = b.HandleRequest(deleteSecretIDReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	resp, err = b.HandleRequest(secretIDReq)
	if resp != nil && resp.IsError() {
		t.Fatalf("error response:%#v", err, resp)
	}
	if err != nil {
		t.Fatal(err)
	}
}

func TestAppRole_RoleSecretIDAccessorReadDelete(t *testing.T) {
	var resp *logical.Response
	var err error
	b, storage := createBackendWithStorage(t)

	createRole(t, b, storage, "role1", "a,b")
	secretIDReq := &logical.Request{
		Operation: logical.UpdateOperation,
		Storage:   storage,
		Path:      "role/role1/secret-id",
	}
	resp, err = b.HandleRequest(secretIDReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	listReq := &logical.Request{
		Operation: logical.ListOperation,
		Storage:   storage,
		Path:      "role/role1/secret-id",
	}
	resp, err = b.HandleRequest(listReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}
	hmacSecretID := resp.Data["keys"].([]string)[0]

	hmacReq := &logical.Request{
		Operation: logical.UpdateOperation,
		Storage:   storage,
		Path:      "role/role1/secret-id-accessor/lookup",
		Data: map[string]interface{}{
			"secret_id_accessor": hmacSecretID,
		},
	}
	resp, err = b.HandleRequest(hmacReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}
	if resp.Data == nil {
		t.Fatal(err)
	}

	hmacReq.Path = "role/role1/secret-id-accessor/destroy"
	resp, err = b.HandleRequest(hmacReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	hmacReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(hmacReq)
	if resp != nil && resp.IsError() {
		t.Fatalf("error response:%#v", err, resp)
	}
	if err == nil {
		t.Fatalf("expected an error")
	}
}

func TestAppRoleRoleListSecretID(t *testing.T) {
	var resp *logical.Response
	var err error
	b, storage := createBackendWithStorage(t)

	createRole(t, b, storage, "role1", "a,b")

	secretIDReq := &logical.Request{
		Operation: logical.UpdateOperation,
		Storage:   storage,
		Path:      "role/role1/secret-id",
	}
	// Create 5 'secret_id's
	resp, err = b.HandleRequest(secretIDReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}
	resp, err = b.HandleRequest(secretIDReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}
	resp, err = b.HandleRequest(secretIDReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}
	resp, err = b.HandleRequest(secretIDReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}
	resp, err = b.HandleRequest(secretIDReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	listReq := &logical.Request{
		Operation: logical.ListOperation,
		Storage:   storage,
		Path:      "role/role1/secret-id/",
	}
	resp, err = b.HandleRequest(listReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}
	secrets := resp.Data["keys"].([]string)
	if len(secrets) != 5 {
		t.Fatalf("bad: len of secrets: expected:5 actual:%d", len(secrets))
	}
}

func TestAppRole_RoleList(t *testing.T) {
	var resp *logical.Response
	var err error
	b, storage := createBackendWithStorage(t)

	createRole(t, b, storage, "role1", "a,b")
	createRole(t, b, storage, "role2", "c,d")
	createRole(t, b, storage, "role3", "e,f")
	createRole(t, b, storage, "role4", "g,h")
	createRole(t, b, storage, "role5", "i,j")

	listReq := &logical.Request{
		Operation: logical.ListOperation,
		Path:      "role",
		Storage:   storage,
	}
	resp, err = b.HandleRequest(listReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	actual := resp.Data["keys"].([]string)
	expected := []string{"role1", "role2", "role3", "role4", "role5"}
	if !policyutil.EquivalentPolicies(actual, expected) {
		t.Fatalf("bad: listed roles: expected:%s\nactual:%s", expected, actual)
	}
}

func TestAppRole_RoleSecretID(t *testing.T) {
	var resp *logical.Response
	var err error
	b, storage := createBackendWithStorage(t)

	roleData := map[string]interface{}{
		"policies":           "p,q,r,s",
		"secret_id_num_uses": 10,
		"secret_id_ttl":      300,
		"token_ttl":          400,
		"token_max_ttl":      500,
	}
	roleReq := &logical.Request{
		Operation: logical.CreateOperation,
		Path:      "role/role1",
		Storage:   storage,
		Data:      roleData,
	}

	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleSecretIDReq := &logical.Request{
		Operation: logical.UpdateOperation,
		Path:      "role/role1/secret-id",
		Storage:   storage,
	}
	resp, err = b.HandleRequest(roleSecretIDReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	if resp.Data["secret_id"].(string) == "" {
		t.Fatalf("failed to generate secret_id")
	}

	roleSecretIDReq.Path = "role/role1/custom-secret-id"
	roleCustomSecretIDData := map[string]interface{}{
		"secret_id": "abcd123",
	}
	roleSecretIDReq.Data = roleCustomSecretIDData
	roleSecretIDReq.Operation = logical.UpdateOperation
	resp, err = b.HandleRequest(roleSecretIDReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	if resp.Data["secret_id"] != "abcd123" {
		t.Fatalf("failed to set specific secret_id to role")
	}
}

func TestAppRole_RoleCRUD(t *testing.T) {
	var resp *logical.Response
	var err error
	b, storage := createBackendWithStorage(t)

	roleData := map[string]interface{}{
		"policies":           "p,q,r,s",
		"secret_id_num_uses": 10,
		"secret_id_ttl":      300,
		"token_ttl":          400,
		"token_max_ttl":      500,
		"bound_cidr_list":    "127.0.0.1/32,127.0.0.1/16",
	}
	roleReq := &logical.Request{
		Operation: logical.CreateOperation,
		Path:      "role/role1",
		Storage:   storage,
		Data:      roleData,
	}

	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	expected := map[string]interface{}{
		"bind_secret_id":     true,
		"policies":           []string{"default", "p", "q", "r", "s"},
		"secret_id_num_uses": 10,
		"secret_id_ttl":      300,
		"token_ttl":          400,
		"token_max_ttl":      500,
		"bound_cidr_list":    "127.0.0.1/32,127.0.0.1/16",
	}
	var expectedStruct roleStorageEntry
	err = mapstructure.Decode(expected, &expectedStruct)
	if err != nil {
		t.Fatal(err)
	}

	var actualStruct roleStorageEntry
	err = mapstructure.Decode(resp.Data, &actualStruct)
	if err != nil {
		t.Fatal(err)
	}

	expectedStruct.RoleID = actualStruct.RoleID
	if !reflect.DeepEqual(expectedStruct, actualStruct) {
		t.Fatalf("bad:\nexpected:%#v\nactual:%#v\n", expectedStruct, actualStruct)
	}

	roleData = map[string]interface{}{
		"role_id":            "test_role_id",
		"policies":           "a,b,c,d",
		"secret_id_num_uses": 100,
		"secret_id_ttl":      3000,
		"token_ttl":          4000,
		"token_max_ttl":      5000,
	}
	roleReq.Data = roleData
	roleReq.Operation = logical.UpdateOperation

	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	expected = map[string]interface{}{
		"policies":           []string{"a", "b", "c", "d", "default"},
		"secret_id_num_uses": 100,
		"secret_id_ttl":      3000,
		"token_ttl":          4000,
		"token_max_ttl":      5000,
	}
	err = mapstructure.Decode(expected, &expectedStruct)
	if err != nil {
		t.Fatal(err)
	}

	err = mapstructure.Decode(resp.Data, &actualStruct)
	if err != nil {
		t.Fatal(err)
	}

	if !reflect.DeepEqual(expectedStruct, actualStruct) {
		t.Fatalf("bad:\nexpected:%#v\nactual:%#v\n", expectedStruct, actualStruct)
	}

	// RU for role_id field
	roleReq.Path = "role/role1/role-id"
	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}
	if resp.Data["role_id"].(string) != "test_role_id" {
		t.Fatalf("bad: role_id: expected:test_role_id actual:%s\n", resp.Data["role_id"].(string))
	}

	roleReq.Data = map[string]interface{}{"role_id": "custom_role_id"}
	roleReq.Operation = logical.UpdateOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}
	if resp.Data["role_id"].(string) != "custom_role_id" {
		t.Fatalf("bad: role_id: expected:custom_role_id actual:%s\n", resp.Data["role_id"].(string))
	}

	// RUD for bind_secret_id field
	roleReq.Path = "role/role1/bind-secret-id"
	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Data = map[string]interface{}{"bind_secret_id": false}
	roleReq.Operation = logical.UpdateOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	if resp.Data["bind_secret_id"].(bool) {
		t.Fatalf("bad: bind_secret_id: expected:false actual:%t\n", resp.Data["bind_secret_id"].(bool))
	}
	roleReq.Operation = logical.DeleteOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	if !resp.Data["bind_secret_id"].(bool) {
		t.Fatalf("expected the default value of 'true' to be set")
	}

	// RUD for policiess field
	roleReq.Path = "role/role1/policies"
	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Data = map[string]interface{}{"policies": "a1,b1,c1,d1"}
	roleReq.Operation = logical.UpdateOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	if !reflect.DeepEqual(resp.Data["policies"].([]string), []string{"a1", "b1", "c1", "d1", "default"}) {
		t.Fatalf("bad: policies: actual:%s\n", resp.Data["policies"].([]string))
	}
	roleReq.Operation = logical.DeleteOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	expectedPolicies := []string{"default"}
	actualPolicies := resp.Data["policies"].([]string)
	if !policyutil.EquivalentPolicies(expectedPolicies, actualPolicies) {
		t.Fatalf("bad: policies: expected:%s actual:%s", expectedPolicies, actualPolicies)
	}

	// RUD for secret-id-num-uses field
	roleReq.Path = "role/role1/secret-id-num-uses"
	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Data = map[string]interface{}{"secret_id_num_uses": 200}
	roleReq.Operation = logical.UpdateOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	if resp.Data["secret_id_num_uses"].(int) != 200 {
		t.Fatalf("bad: secret_id_num_uses: expected:200 actual:%d\n", resp.Data["secret_id_num_uses"].(int))
	}
	roleReq.Operation = logical.DeleteOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	if resp.Data["secret_id_num_uses"].(int) != 0 {
		t.Fatalf("expected value to be reset")
	}

	// RUD for secret_id_ttl field
	roleReq.Path = "role/role1/secret-id-ttl"
	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Data = map[string]interface{}{"secret_id_ttl": 3001}
	roleReq.Operation = logical.UpdateOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	if resp.Data["secret_id_ttl"].(time.Duration) != 3001 {
		t.Fatalf("bad: secret_id_ttl: expected:3001 actual:%d\n", resp.Data["secret_id_ttl"].(time.Duration))
	}
	roleReq.Operation = logical.DeleteOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	if resp.Data["secret_id_ttl"].(time.Duration) != 0 {
		t.Fatalf("expected value to be reset")
	}

	// RUD for 'period' field
	roleReq.Path = "role/role1/period"
	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Data = map[string]interface{}{"period": 9001}
	roleReq.Operation = logical.UpdateOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	if resp.Data["period"].(time.Duration) != 9001 {
		t.Fatalf("bad: period: expected:9001 actual:%d\n", resp.Data["9001"].(time.Duration))
	}
	roleReq.Operation = logical.DeleteOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	if resp.Data["period"].(time.Duration) != 0 {
		t.Fatalf("expected value to be reset")
	}

	// RUD for token_ttl field
	roleReq.Path = "role/role1/token-ttl"
	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Data = map[string]interface{}{"token_ttl": 4001}
	roleReq.Operation = logical.UpdateOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	if resp.Data["token_ttl"].(time.Duration) != 4001 {
		t.Fatalf("bad: token_ttl: expected:4001 actual:%d\n", resp.Data["token_ttl"].(time.Duration))
	}
	roleReq.Operation = logical.DeleteOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	if resp.Data["token_ttl"].(time.Duration) != 0 {
		t.Fatalf("expected value to be reset")
	}

	// RUD for token_max_ttl field
	roleReq.Path = "role/role1/token-max-ttl"
	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Data = map[string]interface{}{"token_max_ttl": 5001}
	roleReq.Operation = logical.UpdateOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	if resp.Data["token_max_ttl"].(time.Duration) != 5001 {
		t.Fatalf("bad: token_max_ttl: expected:5001 actual:%d\n", resp.Data["token_max_ttl"].(time.Duration))
	}
	roleReq.Operation = logical.DeleteOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	if resp.Data["token_max_ttl"].(time.Duration) != 0 {
		t.Fatalf("expected value to be reset")
	}

	// Delete test for role
	roleReq.Path = "role/role1"
	roleReq.Operation = logical.DeleteOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	roleReq.Operation = logical.ReadOperation
	resp, err = b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}

	if resp != nil {
		t.Fatalf("expected a nil response")
	}
}

func createRole(t *testing.T, b *backend, s logical.Storage, roleName, policies string) {
	roleData := map[string]interface{}{
		"policies":           policies,
		"secret_id_num_uses": 10,
		"secret_id_ttl":      300,
		"token_ttl":          400,
		"token_max_ttl":      500,
	}
	roleReq := &logical.Request{
		Operation: logical.CreateOperation,
		Path:      "role/" + roleName,
		Storage:   s,
		Data:      roleData,
	}

	resp, err := b.HandleRequest(roleReq)
	if err != nil || (resp != nil && resp.IsError()) {
		t.Fatalf("err:%v resp:%#v", err, resp)
	}
}

redpajama_set_name: RedPajamaGithub


text:
The League of Legends 2015 World Championship: A Primer
By Eric Van Allen | September 30, 2015 | 2:30pm
Games Features League of Legends
This Thursday, sixteen teams will meet to compete for a trophy and $1 million prize in the 2015 World Championships for League of Legends. Put on by Riot Games, the developer of League, the tournament becomes a greater spectacle every year as teams continue to improve and production continues to soar.
This championship is the culmination of a year's worth of season play, called the League Championship Series, where 10 teams in each region compete across two seasonal splits for a spot at Worlds. Teams hailing from every region—places like North America, Europe, Korea, China, Southeast Asia, Turkey and Chile—will go head-to-head, all of them gunning for that World Championship.
This is no small production, as last year's viewer numbers topped out at 11.2 million viewers during the final matches, with a unique viewer count of 27 million. Those are numbers that beat out events like the NBA Finals in viewers, and it's only going to grow from there, as League's penetration into both new countries and existing markets here in the US increases.
Worlds takes place for an entire month, starting on Oct. 1 with the group stages and culminating in the final matches on Oct. 31. Expect four weekends of non-stop, intense matches of League that will see the best of the best test their mettle against each other.
If you're new to League of Legends or the competitive scene, here's a quick primer on what to expect. You don't need to know the intricacies to appreciate it, but knowing a few details might make the spectator experience better.
What is League?
League of Legends is a multiplayer online battle arena game, or MOBA, a genre that spawned from the map creation community for Blizzard titles like Starcraft and Warcraft 3: Reign of Chaos. In a MOBA, each player controls a single character, who are called "champions" in League. Teams are made up of five players each, who all have their own specialties and roles to play in battles.
Each team has one objective: to destroy the enemy team's Nexus, a glowing gem-shaped building at opposite ends of the map. A vast area sits between each Nexus, which is made up of a forest (commonly referred to as "the jungle" by players) and three paths connecting the bases called "lanes." Since matches are intended to somewhat emulate an ongoing battle, there are bases that house each Nexus, with protective turrets running down each of the lanes and computer-controlled soldiers, called "minions" or "creeps," that mindlessly charge down the lane to their impending doom. It's a little sad, but those creeps are the key to taking down turrets—turret shots hurt a lot, so having lots of little bodies to take hits while your team strikes the turret is key to "pushing" down a lane towards the enemy base.
Each champion starts out small, but by killing minions, enemy champions and buildings they can grow in levels and earn gold to buy items, increasing their power immensely. Each role has a different focus they might be working towards: top lane players tend to focus on buying items that make them more difficult to kill, mid lane players like their magic skills to do lots of burst damage, and ranged attackers build items that let them attack for large damage. As each player slowly approaches their full-slotted inventory, teams will begin to leave what's called the laning phase (where they stand around and kill creeps for gold), and start fighting the enemy team, pushing for control of the map and different hot zones of contention.
Each team has five players and a coach, who all take part in a draft before each game. Teams take turns banning and picking champions from the pool of playable champions, and this is where a significant amount of strategy happens. Certain picks or bans can signal that a team wants to play a specific line-up or strategy, so teams will often try to either hide their overall strategy until the last few picks, or secure the core champions necessary as early as possible. It's really interesting way to start, and as you watch the tournament you'll likely begin to note certain contested champions and core picks for each style of play.
So that's the basics. Now, who do I cheer for?
Well, the blanket answer is to cheer for all teams. It's a big celebration of play from teams all over the world and blah blah blah. Cheer for the game. The tournament. The spirit of competition! Etc.
The hot prospects to watch this year come from a variety of regions. SK Telecom T1 are the raid bosses from Korea, led by one of the most iconic players to grace the game, Faker. Throughout several World Championships, Faker has proven again and again that he is the number one mid laner in the game, and the rest of SKT T1 isn't too shabby either.
Most are turning their eyes towards the no. 1 EU seed Fnatic to take down SKT, as they had a domineering 16-0 run of the European Summer Season leading up to the playoffs. Going undefeated in every series is impressive, but matching up to Korean and Chinese squads could prove difficult. They have an impeccable carry in Rekkles and one of my favorite top laners with Huni, though, so their run through the tournament will be one to watch.
From China, the no. 2 seed Edward Gaming looked to be the strongest from the region going into the summer finals, but LGD and Invictus Gaming proved their worth with convincing victories over EDG. North America's best hopes are with Counter Logic Gaming, who gave an impressive performance in a 3-0 sweep of Team Solomid to take the NA Summer Championships. TSM is likely out for revenge though, and Cloud9 has a lot to prove as well, coming from behind as the sixth seed at the end of the Summer Split to secure a spot at Worlds with consecutive series wins against higher-seeded teams in the Summer Split. A potential dark horse or a fluke, they could easily offer an upset or two in the group stages.
Group stages?
Yup, this tournament goes for a month, so you can be damn sure there's gonna be plenty of games. Teams will compete in a double-round-robin group stage, where each team within a group plays each other twice to determine seeding. The top two teams from each of the four groups will move on to the main tournament bracket, where single-elimination best-of-five matches will be played all the way up to the finals. You can check out more about the specifics here. Matches tend to run anywhere from thirty minutes to over an hour each, so expect lots and lots of League. Having a watch party might not be a bad idea; this is more akin to the World Cup than a typical NFL Sunday.
Are there other resources out there?
Riot's own website for Worlds will provide running tallies and statistics from every match, as well as player bios and team info. You can also peruse the e-sports section of their site to find info on each team's performance in previous splits and World Championships. For more info, you could also check out the LoL Gamepedia site, which provides info on players from throughout League's competitive history.
Whether you plan to deep dive on this, or just want to enjoy some competitive gaming, this October is going to be a month full of exciting games. So get excited, join in on the trash talk and excitement! E-sports has always been about the love of the game, and there's nothing more exciting for old e-sports fanatics like me than seeing others join in on the fun for the first time.
Eric Van Allen is an Atlanta-based writer who is psyched to cheer on his favorite team, Fnatic, to their predestined victory over SKT T1 in a thrilling 3-2 Grand Finals match. You can follow his e-sports and games rumblings @seamoosi on Twitter.
More from League of Legends
A Timeline of the Legal Troubles Behind Arcane's Parent Company, Riot GamesBy Kevin Fox, Jr.November 19, 2021 | 4:10pm
Netflix's Arcane: League of Legends Series Is a Surprisingly Vital Videogame AdaptationBy Tara BennettNovember 6, 2021 | 10:00pm
League of Legends World Championship Pits a Defending Champion Against an Up-and-ComerBy Kevin Fox, Jr.November 5, 2021 | 2:30pm
Riot Games Will Regret Saudi Arabia's Sponsorship of League of LegendsBy Garrett MartinJuly 29, 2020 | 6:00pm
League of Legends Bows to China's Surveillance State in New "Anti-Addiction" Chinese UpdateBy Substitute ThapliyalJuly 25, 2019 | 5:45pm
Top Riot Games Executive Gets Unpaid Leave Following Investigation into Workplace MisconductBy Natalie FloresDecember 14, 2018 | 3:29pm
Marvel and Riot Games Team up for League of Legends Graphic NovelBy Josh HilgenbergNovember 19, 2018 | 4:06pm
Riot Games Hires Former Uber Executive to Enact Its Plans to Improve the Company's CultureBy Natalie FloresSeptember 12, 2018 | 2:25pm
Riot Games Responds to Recent Allegations of Workplace Sexism and Toxicity with Plan to Evolve Company CultureBy Natalie FloresAugust 29, 2018 | 12:01pm
The Most Toxic League of Legends Player Is Back, But Riot May Have Stunted His #ReformationBy Brian BellJanuary 18, 2018 | 2:30pm
How Hating Faker Made Me Love League of LegendsBy Justin GrootDecember 7, 2016 | 10:50am
Mechs vs Minions: A Brand New LeagueBy Matt ThrowerNovember 22, 2016 | 1:00pm
The Best League of Legends Champions, Part 5By Eric Van AllenDecember 17, 2015 | 4:00pm
Also in Games
Wordle: The Best Kept Communal Secret During the Age of Spoilers By Mik Deitz January 18, 2022 | 3:00pm
Bless the Simplicity of Wordle, Which Offers Much and Asks Nothing in Return By Shane Ryan January 13, 2022 | 2:30pm
What Pokémon Can Learn from Monster Hunter By Yousif Kassab January 13, 2022 | 10:00am
Blazing Lazers Remains the Ideal Shoot 'Em Up By Garrett Martin January 11, 2022 | 5:00pm
We Talk to the Hosts of Not Another D&D Podcast, the Funniest Dungeons & Dragons Podcast on the Internet By Hooman Yazdanian January 10, 2022 | 4:10pm
Saint Dragon Puts a Novel Twist on a Familiar Shoot 'Em Up Staple By Garrett Martin January 7, 2022 | 2:30pm
Wordle: The Best Kept Communal Secret During the Age of Spoilers By Mik Deitz January 18, 2022
The 20 Best PC Games of 2021 By Paste Games Writers December 30, 2021
The 10 Most Anticipated Games of 2022 By Garrett Martin January 6, 2022
The 30 Best Nintendo Switch Games (January 2022) By Garrett Martin January 7, 2022
The Best Games on Xbox Game Pass (January 2022) By Garrett Martin and Paste Games Writers January 3, 2022
Take Down Spies, Saboteurs, Fascists, and All of the Above in the New Rocketeer Board Game By Keith Law January 18, 2022
The Forgotten City Shows the Value of Public Funding for the Arts By Kevin Fox, Jr. January 19, 2022
Bless the Simplicity of Wordle, Which Offers Much and Asks Nothing in Return By Shane Ryan January 13, 2022
More Game Most Popular
Banjo-Kazooie Talon Trots Home to Switch Online By Mik Deitz January 19, 2022
The Cuphead Show Brings The Mischievous Mugs to Life Next Month By Mik Deitz January 18, 2022
Microsoft to Acquire Activision Blizzard in $69 Billion Deal By Mik Deitz January 18, 2022
Videogame Voice Actor Troy Baker Backs NFTs, Proving Joel Was Always a Villain By Mik Deitz January 14, 2022
More Games News


text:
<?php

namespace CollegeFB\Repositories\MongoDB;

use CollegeFB\Repositories\GameInterface;
use CollegeFB\Entities\Game as GameEntity;
use CollegeFB\Iterators\Game as GameIterator;
use MongoDB;
use MongoId;
use MongoDate;

class Game implements GameInterface
{
    const COLLECTION_NAME = 'games';

    private $collection;
    private $query_params = array();

    public function __construct(MongoDB $connection)
    {
        $this->collection = $connection->selectCollection(self::COLLECTION_NAME);
    }

    public function save(GameEntity $game)
    {
        $game_info = $game->getData();

        if ((false !== $game->hasId()) && (null !== ($id = $game->getId()))) {
            $game_info['_id'] = new MongoId($id);
        } else {
            $game_info['_id'] = new MongoId();
            $game->setId($game_info['_id']);
        }

        if (!($game_info['date'] instanceof MongoDate)) {
            $game_info['date'] = new MongoDate($game_info['date']);
        }

        $this->collection->save($game_info);

        return $game;
    }

    public function remove(GameEntity $game)
    {
        $id = $game->getId();

        return (!empty($id)) ? $this->collection->remove(array('_id' => new MongoId($id))) : null;
    }

    public function getById($game_id)
    {
        $game_info = $this->collection->findOne(array('_id' => new MongoId($game_id)));

        return (!empty($game_info)) ? new GameEntity($game_info) : false;
    }

    public function getByDateAndTeams($game_date, $home_team, $road_team)
    {
        $game_date = new MongoDate($game_date);

        $game_info = $this->collection->findOne(array(
            'date'          => $game_date,
            'home_team'     => (string) $home_team,
            'road_team'     => (string) $road_team,
        ));

        return (!empty($game_info)) ? new GameEntity($game_info) : false;
    }

    public function setQueryParams($param, $value)
    {
        if (!empty($value)) {
            $this->query_params[$param] = (string) $value;
        }
    }

    public function listAll($page, $limit)
    {
        $games = $this->collection
                        ->find($this->query_params)
                        ->sort(array('date' => -1))
                        ->skip((int) $page * (int) $limit)
                        ->limit((int) $limit);

        $game_iterator = new GameIterator();

        $game_iterator->addGames(iterator_to_array($games));

        return $game_iterator;
    }
}