text:
package meritserver.http.routes

import akka.http.scaladsl.model.StatusCodes._
import meritserver.models.{CreateTransaction, Transaction, User}
import meritserver.services.TransactionService.NoFilter
import org.scalatest.exceptions.TestFailedException
import spray.json.JsArray

class MeritServiceRouteTest extends ServiceTest {

  "The service for the merits path" when {
    "calling GET /v1/merits/fcd" should {
      "authorize correctly" when {
        "using masterAuthToken" in withTeam("fcd") { teams =>
          Get(s"/$apiVersion/merits/fcd?auth=$masterAuthToken") ~> routes ~> check {
            status shouldBe OK
          }
        }
        "using team token" in withTeam("fcd") { teams =>
          Get(s"/$apiVersion/merits/fcd?auth=${teams.head.authToken}") ~> routes ~> check {
            status shouldBe OK
          }
        }
        "using user token" in withTeam("fcd") { teams =>
          withUsers(3) { users =>
            Get(s"/$apiVersion/merits/fcd?auth=${users.head.authToken}") ~> routes ~> check {
              status shouldBe OK
            }
          }
        }
      }
      "return empty list for team with no users" in withTeam("fcd") { teams =>
        withUsers(0) { users =>
          Get(s"/$apiVersion/merits/fcd?auth=$masterAuthToken") ~> routes ~> check {
            responseAs[JsArray] shouldEqual JsArray()
          }
        }
      }
      "return list of merits" in withTeam("fcd") { teams =>
        withUsers(5) { users =>
          Get(s"/$apiVersion/merits/fcd?auth=$masterAuthToken") ~> routes ~> check {
            val response = responseAs[JsArray]
            response.elements.size shouldEqual users.length
          }
        }
      }
      "fail" when {
        "using invalid token" in withTeam("fcd") { teams =>
          val exception = intercept[TestFailedException] {
            Get(s"/$apiVersion/merits/fcd?auth=WrongToken") ~> routes ~> check {
              status shouldBe Unauthorized
            }
          }

          assert(exception.message.get.contains(
            "Request was rejected with rejection AuthorizationFailedRejection"))
        }
        "using user token from wrong team" in withTeam("fcd") { teams =>
          withUsers(3) { usersFcd =>
            withUsers(3, "fce", clearUsersList = false) { usersFce =>
              val exception = intercept[TestFailedException] {
                Get(s"/$apiVersion/merits/fcd?auth=${usersFce.head.authToken}") ~> routes ~> check {
                  status shouldBe Unauthorized
                }
              }

              assert(exception.message.get.contains(
                "Request was rejected with rejection AuthorizationFailedRejection"))
            }
          }
        }
        "team does not exist" in withTeam() { teams =>
          Get(s"/$apiVersion/merits/fcd?auth=$masterAuthToken") ~> routes ~> check {
            status shouldBe NotFound
          }
        }
      }
    }
    "calling POST /v1/merits/fcd/payday" should {
      "authorize correctly" when {
        "using masterAuthToken" in withTeam("fcd") { teams =>
          Post(s"/$apiVersion/merits/fcd/payday?auth=$masterAuthToken&pt=0") ~> routes ~> check {
            status shouldBe OK
          }
        }
        "using team token" in withTeam("fcd") { teams =>
          Post(
            s"/$apiVersion/merits/fcd/payday?auth=${teams.head.authToken}&pt=0") ~> routes ~> check {
            status shouldBe OK
          }
        }
      }
      "fail authorization" when {
        "using wrong token" in withTeam("fcd") { teams =>
          val exception = intercept[TestFailedException] {
            Post(s"/$apiVersion/merits/fcd/payday?auth=WrongToken&pt=0") ~> routes ~> check {
              status shouldBe OK
            }
          }

          assert(exception.message.get.contains(
            "Request was rejected with rejection AuthorizationFailedRejection"))
        }
      }
      "calculate correctly" when {
        "not paying out" in withTeam("fcd") { teams =>
          withUsers(5) { users =>
            Post(s"/$apiVersion/merits/fcd/payday?auth=$masterAuthToken&pt=0") ~> routes ~> check {
              status shouldBe OK
              responseAs[JsArray] shouldEqual JsArray()
            }
          }
        }
        "not paying out with transactions" in withTeam("fcd") { teams =>
          withUsers(5) { users =>
            withTransactions(users) { transactions =>
              Post(
                s"/$apiVersion/merits/fcd/payday?auth=$masterAuthToken&pt=0") ~> routes ~> check {
                status shouldBe OK
                responseAs[JsArray] shouldEqual JsArray()
              }
              Get(s"/$apiVersion/users") ~> routes ~> check {
                responseAs[JsArray]
                  .convertTo[List[User]]
                  .count(_.balance == 0) shouldEqual 1
              }

              Get(s"/$apiVersion/transactions") ~> routes ~> check {
                responseAs[JsArray]
                  .convertTo[List[Transaction]]
                  .count(_.booked == false) shouldEqual 0
              }
            }
          }
        }
        "not paying out with transaction and user balance" in withTeam("fcd") { teams =>
          withUsers(2) { users =>
            withTransactions(users) { transactions =>
              Post(
                s"/$apiVersion/merits/fcd/payday?auth=$masterAuthToken&pt=0") ~> routes ~> check {
                status shouldBe OK
                responseAs[JsArray] shouldEqual JsArray()
              }

              Get(s"/$apiVersion/users") ~> routes ~> check {
                status shouldBe OK
                responseAs[JsArray]
                  .convertTo[List[User]]
                  .count(_.balance == 0) shouldEqual 1
              }

              Post(
                s"/$apiVersion/transactions?auth=42",
                CreateTransaction(from = users.head.id, to = users.tail.head.id, amount = 1, reason = "Ey, its just a test!")
              ) ~> routes ~> check {
                status shouldBe Created
              }

              Post(
                s"/$apiVersion/transactions?auth=42",
                CreateTransaction(from = users.tail.head.id, to = users.head.id, amount = 1, reason = "Ey, its just a another test!")
              ) ~> routes ~> check {
                status shouldBe Created
              }

              Post(
                s"/$apiVersion/merits/fcd/payday?auth=$masterAuthToken&pt=0") ~> routes ~> check {
                status shouldBe OK
                responseAs[JsArray] shouldEqual JsArray()
              }

              Get(s"/$apiVersion/users") ~> routes ~> check {
                status shouldBe OK
                responseAs[JsArray]
                  .convertTo[List[User]]
                  .count(_.balance == 0) shouldEqual 0
              }

              Get(s"/$apiVersion/transactions") ~> routes ~> check {
                status shouldBe OK
                responseAs[JsArray]
                  .convertTo[List[Transaction]]
                  .count(_.booked == false) shouldEqual 0
              }
            }
          }
        }
        "paying out with no transactions" in withTeam("fcd") { teams =>
          withUsers(5) { users =>
            Post(s"/$apiVersion/merits/fcd/payday?auth=$masterAuthToken&pt=1") ~> routes ~> check {
              status shouldBe OK
              responseAs[JsArray].elements.size shouldEqual 5
            }
          }
        }
        "paying out with transactions" in withTeam("fcd") { teams =>
          withUsers(5) { users =>
            withTransactions(users) { transactions =>
              Post(
                s"/$apiVersion/merits/fcd/payday?auth=$masterAuthToken&pt=1") ~> routes ~> check {
                status shouldBe OK
                responseAs[JsArray].elements.size shouldEqual 5

                getUsers.count(_.balance == 0) shouldEqual users.size

                getTransactions(NoFilter).size shouldEqual 4
                getTransactions(NoFilter)
                  .filterNot(_.booked)
                  .size shouldEqual 0
              }
            }
          }
        }
      }
    }
  }
}

redpajama_set_name: RedPajamaGithub


The 1-Series M Coupe has been hailed by the press as the savior of the M car. In an era when each generation of the M3 comes with more and more luxury accoutrements and electronic toys, many feared that the M car was getting too far away from its stripped-down performance roots. The 1-Series M Coupe is everything that the M-philes want it to be, small, light, powerful and without too much to distract you from the task at hand. This extra performance comes at a premium, but it isn't exactly cheap coming from any of its competitors either.
There are some cars that BMW was simply made to build. Others, such as their foray into Sport Activity Vehicles (SAVs), are nothing more than a need to add to their bottom-line. In short, BMW's new 1-Series M Coupe is a masterpiece of automotive engineering and performance, whereas, say the X6, is just leather seats and GPS wrapped in a cheap suit. After plenty of teaser images, it's about time that BMW made everything official.
Not only are there now official pictures, BMW has released all of the specs regarding their long-awaited pocket rocket. Powered by a 3.0-twin-turbocharged straight-six with 335 hp at 5,900 rpm and 332 lb-ft of torque, BMW has held nothing back. It goes from 0-60 mph in a blistering 4.7 seconds and the quarter mile in 13.2 seconds. Top speed is electronically limited by the ECU to 155 mph. A six-speed manual transmission driving the rear wheels through a variable M differential lock comes standard.
In comparison to the 135i, not only is performance dramatically improved, but also the exterior receives a number of design changes. BMW has added flared fenders and rear quarter panels that are needed in order to cover a wheel track that's been increased by 2.8 inches in front and 1.8 inches out back. There's also a new front fascia with a wider central air intake that's covered by a honeycomb-like grille along with what BMW calls air curtains to allow high-pressure air to "curtain" the front wheels, thereby reducing turbulence.
The rear fascia also features similar ducts, LED tail lights, and a lip spoiler fitted to the trunk. BMW has also added M3-style side mirrors that are wind-tunnel optimized. Other chassis upgrades include various other M3-sourced aluminum suspensions bits as well as a more powerful braking system with internally-vented, cross-drilled cast iron discs measuring 14.2-inches in diameter up front and 13.8 inches at the rear. In addition, the rack-and-pinion steering is fitted with Servotronic, which is a hydraulic power steering system that regulates boost in relation to road speed.
The car also comes with a steering wheel-mounted M Drive button which adjusts the throttle response for sportier driving - an M car trademark feature. The new car rides on M-specific 19-inch silver light-weight alloy cross-spoke wheels that come from the M3 Competition Package and the M3 GTS. Overall, the car is 2.1 inches wider and half an inch taller than the standard car. There are only three exterior color choices: Alpine White non-metallic, Black Sapphire Metallic, and Valencia Orange Metallic, the latter being available exclusively on the 1-Series M Coupe only.
The interior features the now-typical BMW upgrades for M models such as a sports steering wheel and leather seats. There's also other leather and Alcantara trim pieces with orange contrast stitching, and a restyled instrument panel.
Final pricing hasn't been announced, but that along with other packages and options will become public when it goes on sale in limited numbers this spring. With the new 1-Series M Coupe, BMW reminds us that their enthusiast soul hasn't been corrupted by the arrival of their own SAV lineup. In fact, it's never been more pure.
Russia's second largest city is honored to house BMW's second ever M exclusive showroom.
The BMW 1-Series M Coupe will be getting a nifty aftermarket program this January.
BMW M fanatic utilizes skills and mastery of IND to create a supreme BMW 1M.


Prefer the feel of a traditional mattress? Then my hybrid and innerspring mattresses are for you. Both feature coil technology for maximum comfort. My hybrid has Bob-O-Pedic Memory Foam for ultimate support.


This hopping bunny will never be found in Mr. McGregor's garden, but he's bound to become a favorite as he adorns your garden, deck, or yard. For over 35 years Good Directions pure copper weathervanes have been unsurpassed in style, quality, and durability – perfect for the house-proud homeowner. Bring The Joy of Outdoor Living to your home with this heirloom-quality piece.
Assembled Size: 21" L x 25"H x 11"W; Figure-only: 21"L x 8"H. Garden pole (included) is 53" tall.


text:
Q: Difference in behavior of `` and `inoremap jk ` in vim I just installed Ubuntu 12.04 on a new computer and apt-get install[ed] vim and I'm having some weird behavior with my aliased Esc - if I'm in INSERT mode and I type the Esc key, I exit INSERT mode and the cursor moves one character to the left, as expected, but if I type the jk alias, which I have defined in my .vimrc as inoremap jk <Esc>, I exit INSERT mode and the cursor moves one character to the right, which is actually quite disconcerting. Any ideas as to why this is the case?

A: I don't think this is because of this rule alone, something else is causing this. If I create a .vimrc file with just this rule in it:
$ more .vimrc
inoremap jk <Esc>

I get the same behavior as expected from both methods.
Example #1 - esc
Invoke vim, go into Insert mode, right arrow 1 time, hit Esc.

Example #2 - jk
Invoke vim, go into Insert mode, right arrow 1 time, hit jk.

A: The answer was derived from slm's answer, which is that it wasn't the rule alone which caused this issue; my rule, in full, was actually
inoremap jk <Esc>  " Recommended in http://learnvimscriptthehardway.stevelosh.com/chapters/10.html

It hadn't caused a problem on the Vim implementations I was using on Mac OS and Debian for some reason, but the two extra space characters after the Esc in the rule, before the comment were causing the cursor to move forward two spaces after exiting INSERT mode.

redpajama_set_name: RedPajamaStackExchange


text:
6:05 Catterick (5th May)
A restricted auction maiden on a turning track where a low draw and experience are favoured.
An interesting selection of form horses for many and varied reasons. Dancing Freddy ran a decent race on debut at Wolverhampton and certainly didn't lack for fitness or experience that day. Finishing second to Shark Man was a creditable performance and this colt has plenty of speed. He will certainly be up with the pace and has a fighting chance.
Duchess Dora was very well backed for an auction maiden at Pontefract but never looked like winning that day. In addition, that was a very poor contest and this filly by Tagula needs to improve for that experience. The most interesting point about her chances today is that she has been entered to run in the Lily Agnes, at Chester, and Quinn must think she has something about her to consider such a race.
Mr Smithson is a difficult juvenile to assess. The form of his Musselburgh debut is difficult to appreciate. Running in a small field that day, the only horse to come from that race (Cariad Coch) looked pretty hopeless at Southwell. I like this colt's attitude and he had a mountain to climb at Beverley when drawn stall one and then started awkwardly, which meant he was pressed early to get a position (which he didn't) and then tired in the final furlong. Ellison had him entered to run in the Brocklesby and he has also been entered to run in another stakes race since. It wouldn't be a surprise to see this two-year-old run a race here although at his tissue price (11/2) I can't say I would be tempted as his form is unproven and I would want decent odds to stick my neck on the block. An interesting juvenile in a race that won't take much winning. I get the feeling I will be watching Mr Smithson today.
Of the unraced, Belle Eponine is worth watching. David Nicholls has good place statistics with his two-year-olds on debut so Bluie could have a chance, while Mrs G. S. Rees is always capable of a surprise or two and her filly by Reset - Regardless - wouldn't be without hope.
A watching race.
Race review: ' Not many got involved and it turned out to be a battle of the form horses with Duchess Dora improving from her debut run at Pontefract. A filly with a bit of size and scope she managed to overhaul Dancing Freddy who ran to a similar standard as his debut effort. Given's two-year-old will be pretty hard to beat at a similar level. Mr Smithson ran an okay kind of race although I was slightly disappointed by his finishing a couple of lengths or so behind the winner. He has an element of ability but may struggle to win and perhaps a step up to six furlongs may bring about improvement.'
Labels: Racing Comment

redpajama_set_name: RedPajamaCommonCrawl


text:
Tag: cybercrime
Closer stakeholder cooperation essential for ransomware investigations to succeed
July 15, 2022 Neil Walker Agency News, Cyber Security CII sector, Industry News
The scale and impact of ransomware attacks have increased significantly over the past years, in part due to the COVID-19 pandemic. As such, the success of criminal investigations and prosecutions depends more than ever on close cross-border cooperation between public authorities, private companies and victims. Public-private cooperation is particularly valuable in such cases, as companies can preserve and provide the data and evidence investigators need to investigate crimes and identify criminals.
These are some of the main conclusions from the latest edition of the Cybercrime Judicial Monitor, featuring a special focus on ransomware investigations, published this month.
Cooperation between stakeholders in ransomware investigations is essential. This includes the reporting of ransomware attacks by victims, the preservation and possible analysis of digital evidence by private companies, and the investigation and prosecution by public authorities. The international dimension of investigations and the complexity of identifying criminals require early and close cross-border coordination between judicial and law enforcement authorities. Actions by each stakeholder group play a key role in the mitigation of damages, disruption of attacks and the identification and prosecution of perpetrators.
The report, based on practitioners' input, highlights the challenges encountered in ransomware investigations. These include:
the loss of data and important e-evidence;
the criminal use of encryption and anonymisation techniques preventing the identification of suspects;
the complexity of investigations and the lack or delay of international coordination;
the absence of a harmonised data-retention legal framework; and
insufficient resources and expertise of law enforcement authorities.
Despite these obstacles, practitioners can learn from the many good practices showcased in the report. These include the swift notification of ransomware attacks to relevant authorities and the creation of technical reports by the victim or affected company. Continuous information exchange between the authorities and the victim/technical team has proved highly important. The provision of guidelines for public authorities on how to deal with ransomware attacks, as well as specialised training for police and judicial authorities, is also key.
The report underlines the successful use of joint investigation teams facilitated by Eurojust, which have led to the identification, arrest and prosecution of cybercriminals. The building of trust between public authorities and private companies by sharing information and regular communication is also essential. Although most countries do not have a specific legal framework for public-private cooperation, experience has shown that such frameworks have enabled ransomware investigations to succeed and that they are therefore much needed.
Leave a comment criticalinfrastructureprotection, cybercrime, cybersecurity, Eurojust
Suspected head of cybercrime gang arrested in Nigeria
June 9, 2022 Neil Walker Agency News, Cyber Security CII sector, Industry News
The cybercrime unit of the Nigeria Police Force arrested a 37-year-old Nigerian man in an international operation spanning four continents, coordinated and facilitated by the recently created Africa operations desk within INTERPOL's cybercrime directorate.
The suspect is alleged to have run a transnational cybercrime syndicate that launched mass phishing campaigns and business email compromise schemes targeting companies and individual victims.
Law enforcement and cybersecurity firms have witnessed the striking increase in many forms of cybercrime in recent years, exploiting the context of COVID-19 and forming what INTERPOL Secretary General Jürgen Stock has called a "parallel pandemic".
INTERPOL's Africa desk, called the African Joint Operation against Cybercrime (AFJOC) and funded by the UK Foreign Commonwealth and Development Office, was launched in May 2021 to boost the capacity of 49 African countries to fight cybercrime.
Tracking the suspect's movements, online and offline
That same month, the police operation, codenamed Delilah, was initiated by an intelligence referral from several INTERPOL partners from the private sector: Group-IB, Palo Alto Networks Unit 42 and Trend Micro.
The intelligence was enriched by analysts within INTERPOL's Cyber Fusion Centre, which brings together experts from law enforcement and industry to turn information on criminal activities into actionable intelligence. INTERPOL's AFJOC desk then referred the intelligence to Nigeria and followed up with multiple case coordination meetings supported by law enforcement in Australia, Canada and the United States.
Investigators began to map out and track the alleged malicious online activities of the suspect, thanks to ad hoc support from private sector firm CyberTOOLBELT, as well as tracking his physical movements as he travelled from one country to another. Nigerian law enforcement successfully apprehended the suspect at Murtala Mohammed International Airport in Lagos.
"The arrest of this alleged prominent cybercriminal in Nigeria is testament to the perseverance of our international coalition of law enforcement and INTERPOL's private sector partners in combating cybercrime." Garba Baba Umar, Assistant Inspector General of the Nigeria Police Force, Head of Nigeria's INTERPOL National Central Bureau and Vice President for Africa on INTERPOL's Executive Committee.
"I hope the results of Operation Delilah will stand as a reminder to cybercriminals across the world that law enforcement will continue to pursue them, and that this arrest will bring comfort to victims of the suspect's alleged campaigns," the Assistant Inspector General added.
"This case underlines both the global nature of cybercrime and the commitment required to deliver a successful arrest through a global to regional operational approach in combatting cybercrime," said Bernardo Pillot, INTERPOL's Assistant Director, Cybercrime Operations.
"The persistence of national law enforcement agencies, private sector partners and the INTERPOL teams all contributed to this result, analysing vast quantities of data and providing technical and live operational support," Mr Pillot added. "Cybercrime is a threat that none of our 195 member countries face alone."
Leave a comment criticalinfrastructureprotection, crybersecurity, cybercrime
World's most dangerous malware EMOTET disrupted through global action
January 29, 2021 Neil Walker Agency News, Cyber Security CII sector, Industry News
Law enforcement and judicial authorities worldwide have this week disrupted one of the most significant botnets of the past decade: EMOTET. Investigators have now taken control of its infrastructure in an international coordinated action.
This operation is the result of a collaborative effort between authorities in the Netherlands, Germany, the United States, the United Kingdom, France, Lithuania, Canada and Ukraine, with international activity coordinated by Europol and Eurojust. This operation was carried out in the framework of the European Multidisciplinary Platform Against Criminal Threats (EMPACT).
EMOTET has been one of the professional and long lasting cybercrime services out there. First discovered as a banking Trojan in 2014, the malware evolved into the go-to solution for cybercriminals over the years. The EMOTET infrastructure essentially acted as a primary door opener for computer systems on a global scale. Once this unauthorised access was established, these were sold to other top level criminal groups to deploy further illicit activities such as data theft and extortion through ransomware.
Spread via Word documents
The EMOTET group managed to take email as an attack vector to a next level. Through a fully automated process, EMOTET malware was delivered to the victims' computers via infected e-mail attachments. A variety of different lures were used to trick unsuspecting users into opening these malicious attachments. In the past, EMOTET email campaigns have also been presented as invoices, shipping notices and information about COVID-19.
All these emails contained malicious Word documents, either attached to the email itself or downloadable by clicking on a link within the email. Once a user opened one of these documents, they could be prompted to "enable macros" so that the malicious code hidden in the Word file could run and install EMOTET malware on a victim's computer.
Attacks for hire
EMOTET was much more than just a malware. What made EMOTET so dangerous is that the malware was offered for hire to other cybercriminals to install other types of malware, such as banking Trojans or ransomwares, onto a victim's computer.
This type of attack is called a 'loader' operation, and EMOTET is said to be one of the biggest players in the cybercrime world as other malware operators like TrickBot and Ryuk have benefited from it.
Its unique way of infecting networks by spreading the threat laterally after gaining access to just a few devices in the network made it one of the most resilient malware in the wild.
Disruption of EMOTET's infrastructure
The infrastructure that was used by EMOTET involved several hundreds of servers located across the world, all of these having different functionalities in order to manage the computers of the infected victims, to spread to new ones, to serve other criminal groups, and to ultimately make the network more resilient against takedown attempts.
To severely disrupt the EMOTET infrastructure, law enforcement teamed up together to create an effective operational strategy. It resulted in this week's action where by law enforcement and judicial authorities gained control of the infrastructure and took it down from the inside. The infected machines of victims have been redirected towards this law enforcement-controlled infrastructure. This is a unique and new approach to effectively disrupt the activities of the facilitators of cybercrime.
How to protect oneself against loaders
Many botnets like EMOTET are polymorphic in nature. This means that the malware changes its code each time it is called up. Since many antivirus programmes scan the computer for known malware codes, a code change may cause difficulties for its detection, allowing the infection to go initially undetected.
A combination of both updated cybersecurity tools (antivirus and operating systems) and cybersecurity awareness is essential to avoid falling victim to sophisticated botnets like EMOTET. Users should carefully check their email and avoid opening messages and especially attachments from unknown senders. If a message seems too good to be true, it likely is and emails that implore a sense of urgency should be avoided at all costs.
As part of the criminal investigation conducted by the Dutch National Police into EMOTET, a database containing e-mail addresses, usernames and passwords stolen by EMOTET was discovered. You can check if your e-mail address has been compromised at www.politie.nl/emocheck. As part of the global remediation strategy, in order to initiate the notification of those affected and the cleaning up of the systems, information was distributed worldwide via the network of so-called Computer Emergency Response Teams (CERTs).
The following authorities took part in this operation:
- Netherlands: National Police (Politie), National Public Prosecution Office (Landelijk Parket)
- Germany: Federal Criminal Police (Bundeskriminalamt), General Public Prosecutor's Office Frankfurt/Main (Generalstaatsanwaltschaft)
- France: National Police (Police Nationale), Judicial Court of Paris (Tribunal Judiciaire de Paris)
- Lithuania: Lithuanian Criminal Police Bureau (Lietuvos kriminalinės policijos biuras), Prosecutor's General's Office of Lithuania
- Canada: Royal Canadian Mounted Police
- United States: Federal Bureau of Investigation, U.S. Department of Justice, US Attorney's Office for the Middle District of North Carolina
- United Kingdom: National Crime Agency, Crown Prosecution Service
- Ukraine: National Police of Ukraine (Національна поліція України), Prosecutor General's Office (Офіс Генерального прокурора)
Leave a comment cyber attck, cyber threat, cybercrime, cybersecurity, malware
ENISA release new report and training material to fight cybercrime and improve cooperation
The European Union Agency for Cybersecurity releases a new report and training material to support the cooperation among CSIRTs, Law Enforcement Agencies (LEAs) and their interaction with the judiciary.
The publications are designed to help tackle the challenges of this complex multi-stakeholder cooperation. The report, the handbook and the toolset are a set of deliverables complementing each other as follows:
- The report analyses roles, duties, competences, synergies and potential interferences across Computer Security Incident Response Teams (CSIRTs) - in particular, national and governmental ones, LE and judiciary (prosecutors and judges);
- The handbook helps a trainer explain these concepts through different scenarios;
- The toolset consists of exercises meant for trainees based on the handbook's scenarios.
The report proposes a methodology to analyse the legal and organisational framework defining the roles and duties, the required competencies of CSIRTs and LE. It also identifies synergies and the potential interferences that may occur while engaging in the activities needed to respond to incidents of criminal nature and in fighting cybercrime.
In addition, it presents a detailed analysis focusing on Czechia, France, Germany, Luxembourg, Norway, Portugal, Romania, and Sweden. The methodology proposed can be used for a more comprehensive future analysis covering additional countries as it is based on:
- desk research;
- subject matter expert interviews;
- the segregation of duties (SoD) matrix.
This SoD matrix is also available in the ENISA repositories in GitHub, as well as the documentation on the Reference Security Incident Taxonomy Working Group (RSIT).
The RSIT working group will meet today as part of the 62nd TF-CSIRT Meeting. These are two other examples of the efforts ENISA engages in to contribute to building a bridge between CSIRTs and LE communities.
Main conclusions of the 2020 report on CSIRTs and LE cooperation include:
- The communities already engage in a number of actions meant to:
- Avoid interferences wherever possible;
- Create effective partnerships;
- Use their synergies to support each other.
- However, interferences may still happen in the process of incident handling and cybercrime investigations, mainly because of the difference in purpose and mandate of each of these communities, i.e. incident mitigation (CSIRTs) compared with evidence preservation and criminal prosecution (LE and the judiciary).
- Joint training activities are organised mainly in community pairs, being either CSIRT and LE or LE and the judiciary. Such activities rarely involve the three communities. The joint training activities help the wider development of the competences required to respond to cybercrime.
- Overall, the 2019 pandemic of the COVID-19 virus did not have any significant impact on cooperation and exchanges between the three communities and their ability to function. Interaction even increased in some instances. For example, daily dialogues became more frequent in order to ensure that each community was kept informed as the situation evolved.
The response to cybercrime requires the cooperation of all actors involved. In this response, CSIRTs, LE and the judiciary perform each a different role and seek different objectives. Helping CSIRTs, LE and the judiciary understand their roles, duties and competences reciprocally will allow a closer cooperation while building on synergies and hence avoid possible interferences.
ENISA has been collecting input from the communities and compiling reports to shed light on the different aspects of the cooperation. These efforts are meant to further enhance the cooperation between CSIRTs and LE and their interaction with the judiciary, In addition, the Agency has been developing training material and co-organising the annual ENISA-EC3 workshop on CSIRT-LE Cooperation. The last edition of this event took place on 16 September 2020.
This new report and training material build on the work already completed in the area over the past. It contributed to the implementation of the ENISA programming document 2020-2022. The work conducted by ENISA in this area is planned to continue in 2021.
Leave a comment cooperation, cybercrime, enisa, law enforcement
Cybercriminals Favourite VPN Taken Down in Global Action
December 30, 2020 Neil Walker Agency News, Cyber Security CII sector, Industry News
The virtual private network (VPN) Safe-Inet used by the world's foremost cybercriminals has been taken down in a coordinated law enforcement action led by the German Reutlingen Police Headquarters together with Europol and law enforcement agencies from around the world.
The Safe-Inet service was shut down and its infrastructure seized in Germany, the Netherlands, Switzerland, France and the United States. The servers were taken down, and a splash page prepared by Europol was put up online after the domain seizures. This coordinated takedown was carried out in the framework of the European Multidisciplinary Platform Against Criminal Threats (EMPACT).
Active for over a decade, Safe-Inet was being used by some of the world's biggest cybercriminals, such as the ransomware operators responsible for ransomware, E-skimming breaches and other forms of serious cybercrime.
This VPN service was sold at a high price to the criminal underworld as one of the best tools available to avoid law enforcement interception, offering up to 5 layers of anonymous VPN connections.
Law enforcement were able to identify some 250 companies worldwide which were being spied on by the criminals using this VPN. These companies were subsequently warned of an imminent ransomware attack against their systems, allowing them to take measures to protect themselves against such an attack.
The service has now been rendered inaccessible.
Investigations are ongoing in a number of countries to identify and take action against some of Safe-Inet's users.
International police cooperation was central to the success of this investigation as the critical infrastructure was scattered across the world.
Europol's European Cybercrime Centre (EC3) supported the investigation from the onset, bringing together all the involved countries to establish a joint strategy and to organise the intensive exchange of information and evidence needed to prepare for the final phase of the takedown.
Leave a comment cooperation, cyber threat, cybercrime, europol
Three arrested as INTERPOL, Group-IB and the Nigeria Police Force disrupt prolific cybercrime group
November 30, 2020 Neil Walker Cyber Security CII sector, Industry News
Three suspects have been arrested in Lagos following a joint INTERPOL, Group-IB and Nigeria Police Force cybercrime investigation. The Nigerian nationals are believed to be members of a wider organized crime group responsible for distributing malware, carrying out phishing campaigns and extensive Business Email Compromise scams.
The suspects are alleged to have developed phishing links, domains, and mass mailing campaigns in which they impersonated representatives of organizations. They then used these campaigns to disseminate 26 malware programmes, spyware and remote access tools, including AgentTesla, Loki, Azorult, Spartan and the nanocore and Remcos Remote Access Trojans. These programmes were used to infiltrate and monitor the systems of victim organizations and individuals, before launching scams and syphoning funds. According to Group-IB, the prolific gang is believed to have compromised government and private sector companies in more than 150 countries since 2017.
Group-IB was also able to establish that the gang is divided into subgroups with a number of individuals still at large. While investigations are still ongoing, some 50,000 targeted victims have been identified so far.
The year-long investigation, dubbed 'Operation Falcon, saw INTERPOL's Cybercrime and Financial Crime units work closely with Group-IB to identify and locate threats, and ultimately, assist the Nigerian Police Force, via the INTERPOL National Central Bureau in Abuja, in taking swift action.
Group-IB's participation in the operation came under Project Gateway, a framework which enables INTERPOL to cooperate with private partners and receive threat data directly.
Craig Jones, INTERPOL's Cybercrime Director highlighted the outstanding cooperation between all those involved in the investigation and underlined the importance of public-private relationships in disrupting virtual crimes. "This group was running a well-established criminal business model. From infiltration to cashing in, they used a multitude of tools and techniques to generate maximum profits. We look forward to seeing additional results from this operation," he said.
Leave a comment cybercrime, cybersecurity


By Dmitry Kapustin, Border Guard, State Border Guard Service of Ukraine, Berdyansk.
Today the interior of our fireplace room has been updated. In addition to the already present treatment of expensive varieties of wood, upholstered furniture was placed, made by special order.
The general background complements the soft lounge music, a silky overflowing from the premium audio system with two speakers.
It's now a million times more pleasant since the weather changed (and the weather is worsening) to rest and eat near the fireplace. There was also a refuelling for the fireplace. It should be sufficient for 2 days.
The atmosphere in our hunting grounds is calm, at night the fuel ran out in our generator, so the perimeter did not get illuminated. Aircraft of different classes did not bother us.
Water froze in the barrel, and now we'll drink medically healing melted water, which we recommend also to you.
See our photo album. All the best to you! Your faithful punishers.
This entry was posted in English, English News, Eyewitness stories, Pictures, South&Eastern Ukraine, War in Donbas and tagged #RussiaInvadesUkraine, #UkraineUnderAttack, Ukraine. Bookmark the permalink.


Right chest 2-tier 4-division pencil pocket.
Inside lower right patch pocket.
Superb!!! From the professionalism and knowledgeable customer service interaction, to the outstanding quality of the items I purchased, and the super speedy delivery. This shopping experience with The Traffic Safety Store was outstanding! This company is the tops!! I highly recommend them, and this is now my go to merchant/store for all of my safety equipment needs! Thank you!


text:
McCain Aide: Palin "Going Rogue": Predicted Two Weeks Earlier
Today, an adviser to the McCain campaign reported that Palin was "going rogue", increasingly striking out on her own. From CNN:
With 10 days until Election Day, long-brewing tensions between GOP vice presidential candidate Gov. Sarah Palin and key aides to Sen. John McCain have become so intense, they are spilling out in public, sources say.
Alaska Gov. Sarah Palin speaks at a rally in Sioux City, Iowa, on Saturday.
Several McCain advisers have suggested to CNN that they have become increasingly frustrated with what one aide described as Palin "going rogue."
A Palin associate, however, said the candidate is simply trying to "bust free" of what she believes was a damaging and mismanaged roll-out.
McCain sources say Palin has gone off-message several times, and they privately wonder whether the incidents were deliberate. They cited an instance in which she labeled robocalls -- recorded messages often used to attack a candidate's opponent -- "irritating" even as the campaign defended their use. Also, they pointed to her telling reporters she disagreed with the campaign's decision to pull out of Michigan.
A second McCain source says she appears to be looking out for herself more than the McCain campaign.
"She is a diva. She takes no advice from anyone," said this McCain adviser. "She does not have any relationships of trust with any of us, her family or anyone else.
"Also, she is playing for her own future and sees herself as the next leader of the party. Remember: Divas trust only unto themselves, as they see themselves as the beginning and end of all wisdom."
This was predicted here beginning almost two weeks ago, here, here and here.
It looks like Palin may be going off of the reservation--she's decided McCain will lose and is now, within limits, beginning to take care of herself and her own future.
As noted earlier here, Palin further plans her future beyond the current campaign. As you could see on Saturday night, where she could barely restrain herself from objecting to the "pageant walk" segment (Watch carefully; Biography, "Sarah": Sarah was always a stubborn girl), she ultimately can't prevent herself from going her own way.
I think this is amazing that this was predictable, if one understood her personality correctly when vetting her, yet the GOP did not predict it--until now.


text:
        <title>Glifcos - Dashboard</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <link rel="stylesheet" href="assets/bootstrap/css/bootstrap.min.css">

Hello, .

                    <button type="button" class="btn btn-warning btn-block" onclick="logout()">Logout</button>

RAM Usage

Loading RAM...

Please wait...

Players Online

Loading Players...

Player List

                        <button type="button" class="btn btn-default" data-toggle="modal" data-target="#console_modal">Console</button>

                        <button type="button" class="btn btn-default" data-toggle="modal" data-target="#plugin_modal">Plugins</button>

                        <button type="button" class="btn btn-default" data-toggle="modal" data-target="#player_modal">Players</button>

                        <button type="button" class="btn btn-default" data-toggle="modal" data-target="#file_modal">Files</button>

                        <button type="button" class="btn btn-default" data-toggle="modal" data-target="#server_modal">Server</button>

                        <button type="button" class="btn btn-default" data-toggle="modal" data-target="#settings_modal">Settings</button>

                    <button type="button" class="close" data-dismiss="modal">×</button>

Player List

                    <button type="button" class="close" data-dismiss="modal">×</button>

Console

                        Uh oh.
                        Seems your server.log file could not be found. Please enable server.log file to use the console feature.

                        <form role="form" id="console_command_form" action="javascript:void(0);" onsubmit="sendCommand()">

                                Console Input
                                <input type="text" id="console_command" class="form-control">

                        </form>

                    <button type="button" class="close" data-dismiss="modal">×</button>

Plugins

                            <button type="button" class="btn btn-default" onclick="enablePlugin()">Enable Plugin</button>

                            <button type="button" class="btn btn-default" onclick="disablePlugin()">Disable Plugin</button>

                    <button type="button" class="close" data-dismiss="modal">×</button>

Players

                            <button type="button" class="btn btn-default" onclick="kickPlayer()">Kick Player</button>

                            <button type="button" class="btn btn-default" onclick="banPlayer()">Ban Player</button>

                            <button type="button" class="btn btn-default" onclick="banIPPlayer()">IP-Ban Player</button>

                    <button type="button" class="close" data-dismiss="modal">×</button>

Files

                    Note: Data updates are slow, please wait.

                            <button class="btn btn-default" type="button" onclick="createFile()">Create File</button>

                            <button class="btn btn-default" type="button" onclick="createDirectory()">Create Directory</button>

                        <textarea id="file_editor_content" class="form-control" style="height: 60%;"></textarea>

                                <button type="button" class="btn btn-default" onclick="saveFile()">Save</button>

                                <button type="button" class="btn btn-default" onclick="deleteFile()">Delete</button>

                                <button type="button" class="btn btn-default" onclick="renameFile()">Rename</button>

                                <button type="button" class="btn btn-default" onclick="addDirectoryLayer('../');">Exit</button>

                    <button type="button" class="close" data-dismiss="modal">×</button>

Settings

Glifcos - Easy & free PocketMine-MP server managing solution.

                        Version:

                        Developed by: HotFireyDeath

                        Local storage:  bytes

                        Access token:

                            <button type="button" class="btn btn-default" onclick="$('#settings_modal').modal('hide');$('#settings_user_modal').modal('show');">Manage Users</button>

                            <button type="button" class="btn btn-default" onclick="getAnalytics()">Get Analytics</button>

                    <button type="button" class="close" data-dismiss="modal">×</button>

Users

                            <button class="btn btn-default" type="button" onclick="$('#settings_user_modal').modal('hide');$('#settings_user_modal_form').modal('show');$('#adduserform').show();">Add User</button>

                            <button class="btn btn-default" type="button" onclick="$('#settings_user_modal').modal('hide');$('#settings_user_modal_form').modal('show');$('#removeuserform').show();">Remove User</button>

                    <button type="button" class="close" data-dismiss="modal">×</button>

Add/Remove User

                    <form style="display: none;" id="adduserform" action="javascript:void(0);" onsubmit="addUser()" role="form">

                            Username
                            <input type="text" id="add_username" class="form-control">

                            Password
                            <input type="password" id="add_password" class="form-control">

                        <button type="submit" class="btn btn-default">Add User</button>
                    </form>

                    <form style="display: none;" id="removeuserform" action="javascript:void(0);" onsubmit="removeUser()" role="form">

                            Username
                            <input type="text" id="remove_username" class="form-control">

                            Password
                            <input type="password" id="remove_password" class="form-control">

                        <button type="submit" class="btn btn-default">Remove User</button>
                    </form>

                    <button type="button" class="close" data-dismiss="modal">×</button>

Server

                        Server IP:

                        Server Port:

                        Server MOTD:

                        Server Version:  ""

                            <button class="btn btn-default" type="button" onclick="reloadServer()">Reload</button>

                            <button class="btn btn-default" type="button" onclick="stopServer()">Stop</button>


Our day of infamy, November 30th 2015. When Ann & I received the devastating news of Jace's leukemia diagnosis, a cancer of the body's blood forming tissues, it brought us to our knees. We didn't know a lot about leukemia but what we did know was that it is a life threatening disease. We were scared and didn't know what to do or what to expect. Nevertheless there was no time for denial or time to take in the heartache. As parents, we needed to be strong for Jace and his three brothers as we about to embark on the fight of our lives! With the help of our family, friends and community we persevered and made it through some of the toughest battles of our lifetimes. Fast forward to present, Jace is thriving and is for the most part just like any other kid on the playground albeit his continued maintenance chemo through March 29th, 2019.
Jace's leukemia diagnosis has opened our eyes to a part of this world that we were previously bind to, that being "childhood" cancer. If you ever see a CHILD fighting cancer it will change your outlook on life FOREVER! We are one of the fortunate families, unlike many others, who are currently winning the battle against cancer but could not have done it alone! Now that we can see the light at the end of the tunnel it's time for us to give back and help other children and their families battling cancer.
Our team of supporters known as Jace's DEFENDERS is partnering with Arizona's own Children's Cancer Network to raise money for Children's Cancer Network as well as Phoenix Children's Hospital as part of Run to Fight Children's Cancer 2018 and we would love to have your support in reaching or better yet exceeding our goal! I understand you may not be a cancer parent, so raising funds may not be a priority, but the day before our son Jace's diagnosis we weren't cancer parents either….
You can donate right now by hitting the "Give Now" button and using any major credit card - it's easy and only takes 30 seconds. Funds We appreciate it so very much, as do the cancer-fighting superheroes who face this terrible disease with courage and bravery.
Thank you for joining our team in the fight again childhood cancer!
NOTE - TAX CREDIT DONATIONS!
Jace was the honorary race starter for the Grand Canyon University - 2017 Run to Fight Children's Cancer Race. This has been a huge privilege and has allotted us many opportunities to spread awareness and raise funds for pediatric cancer research and support services.
*Child-cancer benefit is personal for Ahwatukee family - Ahwatukee.com & Ahwatukee newspaper.


Only when there is no future does the possibility exist to live fully in the moment. With no reason to hold onto the past nor save ourselves for future possibilities, we are free to see what is left of the day, to expose ourselves, to face unwanted truths, and to take the biggest risk of all – to open to our own capacity to love.
Thirst brings together four people isolated and alone in four different ways and traps them in the desert with little water and no means of escape. How will they react? What will they do? How will they make sense of their lives? What will become important? Can they find meaning - something larger than themselves?
Carl Jung said that most of the unhappy people who came to see him suffered not from some clinical illness but from the meaninglessness and emptiness of their lives. For me, Thirst is about forcing to the surface deeply protected and vulnerable human needs and exposing them to light and life.
Minna, sensitive, scientific searches in the desert for a rare type of meteorite.
"I want to touch something that comes from somewhere impossible."
Overwhelmed by people in the cities, finding them illogical, confusing and disappointing, Minna has abandoned the possibility of happiness with people long ago – or has she?
Boyce, sent by the mining company to bring Minna back from the desert, desperately wanting to be a successful comedian, holds on to his failure like protective armour rather than risk more failure by connecting with anyone.
"There's something missing from everyone I ever met."
Boyce makes a joke of his life and the lives of those around him. Yet strangely, like literature's wise fool, has a wisdom that touches everyone.
Kit, a damaged 17-year-old, fostered since birth by a mother who failed to love her, believes that something is missing from her, which means she can never love anyone.
"No matter how hard you try, you can never see the face that you're kissing."
Reckless, overenthusiastic, believing everyone eventually leaves; Kit has little fear of dying in the desert.
Zac, raised in a home with narcissistic parents, runs from having shot and wounded his father. Cynical and angry, deeply in love with Kit, Zac knows he has no chance of having that love returned.
"Words are how we change the truth."
Because of his love, Zac is confronted with the worst of all possible choices.
The film asks several questions and proposes some unlikely answers.
Is 'meaning' found, or is it constructed?
What is the most significant thing we can do?
What is the antidote to a fear of death?
Do the things that make us successful: position, pride, fear of failure, protective defences, keep us from the vulnerability required to experience great love?
The desert is intended as a metaphor for the barren internal lives suggested by Jung's patients. The constantly moving camera deliberately echoes time passing relentlessly, smoothly, constantly so we are always aware that it is moving towards a resolution no matter how lifeless and static the desert may appear.
Set in the not too distant future, Thirst also gently suggests a changing planet, affected by climate change, forest degradation, and limited resources. The personal defences and denials of the characters, echo the responses of the wider population to looming truths.
Does life become more precious, more terrifying, when you can count the remaining days on your left hand? Surprisingly, against reason, our characters appear to become more alive - perhaps happier, definitely more connected, as time runs out. How can this be? The answer, embedded in the DNA of the film, lies in the choices they make, suggesting a way to live – a way towards meaning, a way to connect as time runs out for all of us.


#Office365Challenge Nothing destroys a good vacation of quality time spent with family and well deserved rest – as an aggressively overflowing Inbox. I feel your pain.
Below are some Tips on managing that chaos – and getting a handle on things, asap.
Searching your inbox is a great way to quickly filter out those unnecessary and important mails.
Search for the following type of words and deal with these first. Approve, Approval, Sign, Report, As Requested, Change Control, Denied etc.. Use words familiar to your industry / environment that usually indicate urgency.
Search for the word unsubscribe in your Inbox, then sort it by From by clicking on the column header at the top. Take a couple of minutes to unsubscribe where applicable, then delete them all (if applicable of course).
Search for any mails containing Christmas, Xmas, New Year, Blessings, Prosperous etc.. Move them to a separate folder to deal with later – or delete them. See my blog on moving completed mails to another folder.
Search for any mails containing keywords related to your personal accounts (banks, gym, phone, medical aid etc.), move these to a separate folder to deal with later.
Sort by Icon and deal with Calendar Invites first – you don't need any surprises of meetings coming up that you haven't prepared for.
Sort by Sender then right click on one of the headings and collapse all. This is much easier to quickly scan through your Inbox, click on a header and delete, move or mark as complete a full set of emails.
For help on sorting and views, see my post on the topic.
Accidentally deleted mails you shouldn't have? Remember you can restore permanently deleted items in Outlook.
Before you get caught up in the craziness of the new year, setup any rules or quick steps that could help you manage your Inbox. I absolutely love Quick Steps as it saves me SO much time.


It appears business bankruptcy attorneys is feeling a little sentimental today, as the creative took to Instagram to participate in #FBF (Flashback Friday). Jasper in turn shared footage of himself skateboarding alongside bankruptcy laws ny, Matthew Williams of ALYX, and Justin of jjjjound during Paris Fashion Week back in 2012.
Captioned "Lunch Break In Paris," the quartet hit a local skatepark, seemingly to escape the PFW madness.
Jasper had previously uploaded the footage roughly six years ago, as you can watch it uninterrupted below. Crazy to see/think about how far these guys have come.
Now, dive into the history of Virgil Abloh, from DJing to Louis Vuitton.


Moving on a budget? Below is a list of affordable Billerica movers that provide quality moving services at low rates. Select the 'Get Quotes' button to fill out a quote form. You will receive up to seven free estimates from professional moving companies in Billerica, MA.
Read real customer reviews and compare moving estimates from our pre-screened and fully-insured Billerica moving companies. We also provide moving company profiles with photos, services offered, license numbers and contact information. Determine which Billerica mover best suits your needs and save on your next move.
The pricing and the services were good, I would recommend them.
It was good. The price was okay. ...[The packing] was good. ...I would recommend them. ...They were on time and did the job in a timely manner, so I was satisfied.
Submit information, such as move date and size of the move, on our easy online form. We will help you locate the best moving companies near Billerica, MA.
Get FREE, no obligation moving quotes from professional movers in our network. All Billerica moving companies are pre-screened, licensed and insured.


text:
title: Clustering Reference
---

## Introduction

A Kong cluster allows you to scale the system horizontally by adding more
machines to handle more incoming requests. They will all share the same
configuration since they point to the same database. Kong nodes pointing to the
**same datastore** will be part of the same Kong cluster.

You need a load-balancer in front of your Kong cluster to distribute traffic
across your available nodes.

## What a Kong cluster does and doesn't do

**Having a Kong cluster does not mean that your clients traffic will be
load-balanced across your Kong nodes out of the box.** You still need a
load-balancer in front of your Kong nodes to distribute your traffic. Instead,
a Kong cluster means that those nodes will share the same configuration.

For performance reasons, Kong avoids database connections when proxying
requests, and caches the contents of your database in memory. The cached
entities include APIs, Consumers, Plugins, Credentials, etc... Since those
values are in memory, any change made via the Admin API of one of the nodes
needs to be propagated to the other nodes.

This document describes how those cached entities are being invalidated and how
to configure your Kong nodes for your use case, which lies somewhere between
performance and consistency.

[Back to TOC](#table-of-contents)

## Single node Kong clusters

A single Kong node connected to a database (Cassandra or PostgreSQL) creates a
Kong cluster of one node. Any changes applied via the Admin API of this node
will instantly take effect. Example:

Consider a single Kong node `A`. If we delete a previously registered API:

```bash
$ curl -X DELETE http://127.0.0.1:8001/apis/test-api
```

Then any subsequent request to `A` would instantly return `404 Not Found`, as
the node purged it from its local cache:

```bash
$ curl -i http://127.0.0.1:8000/test-api
```

[Back to TOC](#table-of-contents)

## Multiple nodes Kong clusters

In a cluster of multiple Kong nodes, other nodes connected to the same database
would not instantly be notified that the API was deleted by node `A`.  While
the API is **not** in the database anymore (it was deleted by node `A`), it is
**still** in node `B`'s memory.

All nodes perform a periodic background job to synchronize with changes that
may have been triggered by other nodes. The frequency of this job can be
configured via:

* [db_update_frequency][db_update_frequency] (default: 5 seconds)

Every `db_update_frequency` seconds, all running Kong nodes will poll the
database for any update, and will purge the relevant entities from their cache
if necessary.

If we delete an API from node `A`, this change will not be effective in node
`B` until node `B`s next database poll, which will occur up to
`db_update_frequency` seconds later (though it could happen sooner).

This makes Kong clusters **eventually consistent**.

[Back to TOC](#table-of-contents)

## What is being cached?

All of the core entities such as APIs, Plugins, Consumers, Credentials are
cached in memory by Kong and depend on their invalidation via the polling
mechanism to be updated.

Additionally, Kong also caches **database misses**. This means that if you
configure an API with no plugin, Kong will cache this information. Example:

On node `A`, we add an API:

```bash
# node A
$ curl -X POST http://127.0.0.1:8001/apis \
    --data "name=example" \
    --data "upstream_url=http://example.com" \
    --data "uris=example"
```

A request to the Proxy port of both node `A` and `B` will cache this API, and
the fact that no plugin is configured on it:

```bash
# node A
$ curl http://127.0.0.1:8000/example
HTTP 200 OK
...
```

```bash
# node B
$ curl http://127.0.0.2:8000/example
HTTP 200 OK
...
```

Now, say we add a plugin to this API via node `A`'s Admin API:

```bash
# node A
$ curl -X POST http://127.0.0.1:8001/apis/example/plugins \
    --data "name=example-plugin"
```

Because this request was issued via node `A`'s Admin API, node `A` will locally
invalidate its cache and on subsequent requests, it will detect that this API
has a plugin configured.

However, node `B` hasn't run a database poll yet, and still caches that this
API has no plugin to run. It will be so until node `B` runs its database
polling job.

**Conclusion**: all CRUD operations trigger cache invalidations. Creation
(`POST`, `PUT`) will invalidate cached database misses, and update/deletion
(`PATCH`, `DELETE`) will invalidate cached database hits.

[Back to TOC](#table-of-contents)

## How to configure database caching?

You can configure 3 properties in the Kong configuration file, the most
important one being `db_update_frequency`, which determine where your Kong
nodes stand on the performance vs consistency trade off.

Kong comes with default values tuned for consistency, in order to let you
experiment with its clustering capabilities while avoiding "surprises". As you
prepare a production setup, you should consider tuning those values to ensure
that your performance constraints are respected.

### 1. [db_update_frequency][db_update_frequency] (default: 5s)

This value determines the frequency at which your Kong nodes will be polling
the database for invalidation events. A lower value will mean that the polling
job will be executed more frequently, but that your Kong nodes will keep up
with changes you apply. A higher value will mean that your Kong nodes will
spend less time running the polling jobs, and will focus on proxying your
traffic.

**Note**: changes propagate through the cluster in up to `db_update_frequency`
seconds.

[Back to TOC](#table-of-contents)

### 2. [db_update_propagation][db_update_propagation] (default: 0s)

If your database itself is eventually consistent (ie: Cassandra), you **must**
configure this value. It is to ensure that the change has time to propagate
across your database nodes. When set, Kong nodes receiving invalidation events
from their polling jobs will delay the purging of their cache for
`db_update_propagation` seconds.

If a Kong node connected to an eventual consistent database was not delaying
the event handling, it could purge its cache, only to cache the non-updated
value again (because the change hasn't propagated through the database yet)!

You should set this value to an estimate of the amount of time your database
cluster takes to propagate changes.

**Note**: when this value is set, changes propagate through the cluster in
up to `db_update_frequency + db_update_propagation` seconds.

[Back to TOC](#table-of-contents)

### 3. [db_cache_ttl][db_cache_ttl] (default: 3600s)

The time (in seconds) for which Kong will cache database entities (both hits
and misses). This Time-To-Live value acts as a safeguard in case a Kong node
misses an invalidation event, to avoid it from running on stale data for too
long. When the TTL is reached, the value will be purged from its cache, and the
next database result will be cached again.

You can configure your cache to not invalidate data based on this TTL, by
disabling it. To disable it, set this value to `0`. But be wary: if a Kong
node misses an invalidation event for any reason, it might run with a stale
value in its cache for an undefined amount of time, until the cache is
manually purged, or the node is restarted.

[Back to TOC](#table-of-contents)

### 4. When using Cassandra

If you use Cassandra as your Kong database, you **must** set
[db_update_propagation][db_update_propagation] to a non-zero value. Since
Cassandra is eventually consistent by nature, this will ensure that Kong nodes
do not prematurely invalidate their cache, only to fetch and catch a
not up-to-date entity again. Kong will present you a warning logs if you did
not configure this value when using Cassandra.

Additionally, you might want to configure `cassandra_consistency` to a value
like `QUORUM` or `LOCAL_QUORUM`, to ensure that values being cached by your
Kong nodes are up-to-date values from your database.

[Back to TOC](#table-of-contents)

## Interacting with the cache via the Admin API

If for some reason, you wish to investigate the cached values, or manually
invalidate a value cached by Kong (a cached hit or miss), you can do so via the
Admin API `/cache` endpoint.

### Inspect a cached value

**Endpoint**

/cache/{cache_key}

**Response**

If a value with that key is cached:

```
HTTP 200 OK
...
{
    ...
}
```

Else:

```
HTTP 404 Not Found
```

**Note**: retrieving the `cache_key` for each entity being cached by Kong is
currently an undocumented process. Future versions of the Admin API will make
this process easier.

[Back to TOC](#table-of-contents)

### Purge a cached value

**Endpoint**

/cache/{cache_key}

**Response**

```
HTTP 204 No Content
...
```

**Note**: retrieving the `cache_key` for each entity being cached by Kong is
currently an undocumented process. Future versions of the Admin API will make
this process easier.

[Back to TOC](#table-of-contents)

### Purge a node's cache

**Endpoint**

/cache

**Response**

```
HTTP 204 No Content
```

**Note**: be wary of using this endpoint on a warm, production running node.
If the node is receiving a lot of traffic, purging its cache at the same time
will trigger many requests to your database, and could cause a
[dog-pile effect](https://en.wikipedia.org/wiki/Cache_stampede).

[Back to TOC](#table-of-contents)

[db_update_frequency]: /{{page.kong_version}}/configuration/#db_update_frequency
[db_update_propagation]: /{{page.kong_version}}/configuration/#db_update_propagation
[db_cache_ttl]: /{{page.kong_version}}/configuration/#db_cache_ttl


text:
Meigle Cricket Club statistics
Select your search criteria to display the stats you wish to search for
Players Team -- All Teams -- First XI Second XI 3rd XI U-15's Midweek XI Women's U17 Girls Girls U18 Super 9's indoor U-16's U-12 hardball Under 14's Kwik cricket Rep game
Fixture Types -- All Types -- League Friendly Three Counties Cup Cup 2 Counties Cup T20 Scottish Cup (Caley region) The Voneus National Village Cup Uni league CSL Premiership Play-Off P&K Super 9s The Scottish Cup Indoor Season -- All Seasons -- 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007 2006 2005 2004 2003 2002 2001 2000 1999 1998 1997 1996 1995 1994 1993 1992 1991 1990 1989 1988 1987 1986 1985 1984 1983 1982 1981 1980 1979 1978 1977 1976 1975 1974 1973 1972 1971 1970
Scores between
Show performances with 0 1 2 3 4 5 6 7 8 9 10 wickets or more.


text:
Horneman is a surname. Notable people with the surname include:

C. F. E. Horneman (1840–1906), Danish composer, conductor, music publisher, and music instructor
Christian Horneman (1765–1844), Danish painter
Christian Hersleb Horneman (1781–1860), Norwegian jurist and elected official
Emil Horneman (1809–1870), Danish composer

redpajama_set_name: RedPajamaWikipedia


Product Description Please Note: This product is part of the Panini MAPP Program. EAST COAST CONNECTION is a Panini Authorized Internet Retailer (AIR). Within the program, Panini has implemented two separate Release Dates. The Hobby Release Date is Oct 24, 2011 WE WILL HAVE HOBBY BOXES IN OUR HOBBY STORE ON 10/24. The AIR Release Date is Oct 31, 2011. Please note that all Panini Authorized Internet Retail orders for this product through EAST COAST CONNECTION will ship on Oct 31, 2011.
CASE BREAK (24-box case) Look for six or more of the following autographs Aaron Rodgers, Adrian Peterson, Drew Brews, Peyton Manning, John Elway, Tony Romo, Emmitt Smith, Tom Brady, Bart Starr, Michael Vick, Philip Rivers, Dan Marino, Cam Newton, Jerry Rice, A.J. Green, Joe Namath, Julio Jones, Barry Sanders, Jake Locker, Brett Favre, Blaine Gabbert, Gale Sayers, Christian Ponder, John Elway, Jonathan Baldwin, Jim Brown, Mark Ingram, Joe Montana, Andy Dalton, Deion Sanders, Colin Kaepernick, Marshall Faulk, Ryan Williams, Mikel LeShoure or On-Card Signature.
2011 Certified represents our continued commitment to delivering the top rookies to collectors with on-card autographs. The popular Freshman Fabric Rookie Card subset has never included on-card autographs before. This year it will -- on the RCs of the 36 players who attended the 2011 NFL PLAYERS Rookie Premiere. That's a huge leap forward for this brand and it should be openly embraced by collectors who've been loyally chasing Certified for more than a decade.
Collectors also will instantly recognize some updated designs that will put a new face on some of the most venerable insert and parallel sets in football history.
Collectors know what to expect from Certified and they see it as a product that consistently delivers value every year. It doesn't need a universal overhaul from year to year. But with a few minor tweaks, it can continue to be one of the most collected products of the football card season.


Review: Star Wars: The Force Unleashed 2 Review - This Is My Joystick!
Since its creation in 1977 the Star Wars universe has grown to be one of the most prominent in entertainment history. Although usually associated with a certain stereotype, its huge presence in pop culture is undeniable. Aside from the movies it can probably be argued, though, that no other Star Wars product had really enjoyed mainstream success. The Force Unleashed was released in 2008 and became the fastest selling Star Wars game ever, hitting over 1 million sales worldwide in only its first month. Ultimately, it went on to become the most successful Star Wars game ever made.
Despite a number of serious gameplay issues The Force Unleashed was a game I deeply enjoyed playing. It bridged the gap of the events between episodes 3 and 4, adding new characters to the lore while also delivering a surprisingly solid story. The player assumed the role of Galen Marek (codename, Starkiller) Darth Vader's secret apprentice who is ordered to hunt down the remaining Jedi. You were referred to as the 'Human Wrecking Ball' with the devastating power of the Force at your disposal.
The Force Unleashed 2 takes place a short time after the first game. Now on Kamino, Starkiller is once again under the service of Darth Vader, although, things are not as they seem. Vader tells Starkiller he is a clone and that the original had died on the Death Star. The apprentice is haunted by visions that aren't his own, a side effect of the cloning process according to the Sith Lord. Starkiller realises Vader's true intentions for him and launches his escape from the Clone Army's home world.
The Force Unleashed 2′s storyline is probably the most underwhelming part of the entire experience. Certain plot points just manifest themselves into the game without any genuine explanation. Starkiller's spontaneous visit to Dagobah is probably the clearest piece of evidence. Supporting characters seldom get any screen time dissolving any chance of growth or development. You hardly even see Juno Eclipse the whole time and when you do, there's almost no dialogue from her. I found the character of General Kota to be significantly less likable than I remember from the original. He served more as a nuisance than an ally for a large part of the game. Cameos from fan favourites Yoda and Boba Fett contribute almost nothing to an already weak premise. In truth, I found Yoda's presence did more harm than good. As mentioned, Starkiller's visit to Dagobah is one of the most pointless and unnecessary detours I can remember in any game. Let me just say, you're off the planet as quickly as you arrived on it. You visit only two separate worlds to Kamino and don't even fight on one of these. The ending does the game even less justice by coming dangerously close to disrupting an important Star Wars event. I've always believed narrative to be a strong aspect in the series but sadly, The Force Unleashed 2 fails to capitalise on its predecessor's.
"I can see my vat from here"
The Force Unleashed 2 is a third-person action game with a similar gameplay style to God of War. Starkiller's two main weapons are his lightsabers and the Force. Yes that's right, lightsabers, plural. Starkiller now has an extra lightsaber which guarantees plenty of cauterising fun, right? Wrong. The Force Unleashed 2's melee combat is very much a one button-mashing bore fest. The whole process felt mechanical for the most part and frankly, your lightsabers feel like nothing more than overgrown glow sticks. Even the newly added dismemberment gets tiresome after you've beheaded a legion of stormtroopers. The extra lightsaber doesn't alter the combat in any way and it certainly doesn't empower you anymore than one had. When thrown, the sabers leave Starkiller completely vulnerable to attack as they are his only means of blocking. In all honesty, I feel like the lightsaber has never been properly utilised in the Force Unleashed series. This is a weapon of pure energy, it amputates with one strike at a foe and yet a common stormtrooper can withstand multiple hits. I understand that it's just how the gameplay works but that doesn't make it right. To say it's just a game isn't a viable excuse to oust any canonical logic.
Starkiller is a chronic Force user and he makes it well known. Amongst his (few) new Force abilities is the Mind Trick. This allows him to temporarily turn an enemy against his comrades and if close enough to a ledge he'll jump off. Latter stages of the power will actually cause the victim's head to explode. You gain Force Points for every defeated enemy and these make it possible to upgrade your Force powers; each of which has three stages. A very basic HUD displays Starkiller's essentials including Force Fury. Force Fury is a brief stage of invincibility and sheer power he experiences at times. All of his powers and abilities are dramatically increased making him capable of crushing even AT-STs with relative ease. It became a useful ability against larger enemies and in crowded areas. Though the melee combat could have been better handled, I was very satisfied with using Force powers. However, I believe that a few more could have been added as my arsenal eventually felt limited and overused. The same can certainly be said about the quick time events. These can be triggered against the majority of larger enemies. Unfortunately, only the same quick time event applies to each enemy type. The fact that you can't skip in-game cut-scenes sums up a topsy-turvy campaign.
One of the most complained about issues of Force Unleashed was how difficult it was to lock on to targets. Unfortunately, sequel's targeting system isn't much of an improvement. A button must be held in order to use Force powers as well as blocking, so why do the same with targeting? Consequently all three are jumbled together making combat more frustrating than I could bear. The platforming brought even more frustration. The inconsistency of it at times left me completely speechless, and Starkiller's inability to hold on to ledges seems strange. It doesn't make sense that something so integral to gameplay would be given such little attention to detail. At certain stages during the campaign you're thrust into some skydiving sequences. During these you'll come up against different obstacles such as TIE Fighters and debris.
You can use your different Force powers to redirect these obstacles or evade with a swerve. The way these unique situations changed the style of play made them some of my favourite during the game. There's even a boss fight in mid-air at one point which could have been done better but decent nonetheless. One of my more surprising discoveries was how incredibly buggy the game is in spots. I found some enemies still standing after being killed and sequences not triggering when they're supposed to. On one occasion a boss fight failed to load because the platform I was on had been stuck in a loop. For a game that looks incredibly polished Force Unleashed 2 has its fair number of bugs. The game's ridiculous linearity doesn't do it much good either. Holocrons aside, there is hardly anything to explore in the few places you visit.
As well as a campaign there is also a challenge mode where you can test various skills ranging from combat to Force and platforming. This was without a doubt my favourite feature in Force Unleashed 2. Not only did I have fun doing each challenge but I felt more tested than even on harder campaign difficulties. The only downside was the short number of challenges available.
The Force Unleashed 2 is one of the finer looking games around running on the Havoc, Euphoria and Digital Molecular Matter (DMM) engines. These three are primarily physics-based engines which allow items to be interacted with. When Force Lifted, enemies will struggle to hang on to crates and their limbs sway quite realistically when moved around. Starkiller's constant interactions with the environment mean even minor objects are finely detailed. Stormtroopers look as they should although their iconic armour is almost too clean, there's hardly a hint of roughness. The computer generated cut-scenes are some of the best I've seen, showcasing truly breathtaking cinematics. Motion-captured scenes brought a number of characters close to life occasionally. Character animations are excellent; mind controlled stormtroopers are one of the more amusing things you're likely to see. Though I never found myself standing around taking in the beauty of my surroundings, the visuals were striking at times.
Sam Witwer and other voice actors return to lend their words to The Force Unleashed 2. The voice acting is quite impressive and the sound effects are competent. The storm in the opening sequence on Kamino was a few cracks of lightning away from coming alive. Traditional Star Wars music is audible in most parts of the campaign. To be honest I've heard enough of the score to last a lifetime. I dare not knock on John Williams' legendary work but hearing The Imperial March theme every time Darth Vader enters a room has become stale. I realise the theme itself is very much part of Vader's being but it would be refreshing to hear something different. A respectable effort, in general, but not a lot stands out.
Will it shock your Jawa?
The Force Unleashed 2 was one of my most anticipated games in 2010 and after playing it, I wish it had spent longer in development. The biggest disappointment for me personally was the terrible lack of narrative direction. I honestly felt offended by how the whole thing unfolded or even failed to. Basically, too many questions were asked and hardly any were answered. Brief appearances from Boba Fett and Yoda seemed more directed to fan service than the plot. It was painfully predictable and the ending is uncomfortably close to a key Star Wars incident. The gameplay felt like (pardon the pun) a direct clone of its predecessor's in almost every sense. No significant issues from the original were addressed while the six hour campaign is far too short to warrant a purchase at full price. It was visually impressive and the surprisingly fun challenge mode kept me entertained but I just feel like more could have been done. It's certainly not the worst game out there but it's also not one that deserves true recognition.


text:
U.S. Navy Railgun, Laser Cannon Deployed On Zumwalt Destroyer USS Lyndon B. Johnson By 2018? [Video]
Patrick Frye
The U.S. Navy's railgun is one of those future weapons that's awe-inspiring when you watch the railgun firing videos. Once limited to science fiction and video games like Halo 5, a U.S. Navy admiral is discussing the possibility of skipping at-sea prototype trial in favor of deploying a fully operational railgun on to the Zumwalt destroyer the USS Lyndon B. Johnson, which is scheduled to go into the Navy's service by 2018. In the past, the Navy has also discussed deploying a U.S. Navy laser cannon.
"The Zumwalt-class is one of a number of options being explored for the electromagnetic railgun," said Lt. Cmdr. Hayley Sims, a Navy spokeswoman. "Due to the size, weight and power requirements, some platforms will be better suited for the technology than others."
While it almost sounds like fiction, a railgun uses energy to fire chunks of metal at Mach 7 with a massive destructive force. And that's working today. The Navy railguns were developed by BAE Systems and can deliver up to 32 megajoules of energy. They operate by sending electrical pulses over magnetic rails to generate electromagnetic force, which drives the hyper-velocity projectile down the barrel. The round currently has a feature called command guidance, and can already be used to intercept guided nuclear missiles, but the railgun rounds may be engineered for self-guidance in the future.
"We're talking about a projectile we're going to send well over 100 miles. We're talking about a projectile that can go over Mach 7. We're talking about a projectile that can go well into the atmosphere. We're talking about a gun that is going to shoot a projectile that is about one-one hundredth of the cost of an existing missile system today," said Admiral Matthew Klunder, Chief of Naval Research, said according to Military.com.
Besides cost savings, the railgun round has other major benefits. The 23-pound projectile can be fired from Navy 5-inch guns and even 155mm artillery weapons. The railgun's firepower relies on kinetic energy instead of high explosives, so U.S. Navy ships will no longer need to store the explosives, removing a weakness for enemies to target.
RELATED REPORTS BY THE INQUISITR
U.S. Navy Railgun May Be Installed On A Zumwalt Destroyer, Laser Cannon Video Inspires Awe
U.S. Navy Railgun Video Shows The Future Weapon's Power, In February See It In Person
USS Zumwalt Begins Sea Trials – Largest 'Stealth' Destroyer In U.S. Navy Worth $4.4 Billion Navigates Kennebec River
Stealth Destroyer Zumwalt Rescues Trawler Captain During Sea Tests
The Zumwalt destroyers are also a modern marvel of technology. The $4.4 billion U.S. stealth destroyer began its sea trials this past fall, with the USS Zumwalt being captained by Navy Captain James Kirk.
"We are absolutely fired up to see Zumwalt get underway. For the crew and all those involved in designing, building, and readying this fantastic ship, this is a huge milestone," said Captain Kirk.
In February 2015, Vice Admiral William Hilarides said the new U.S. Navy railgun may end up replacing one of two other guns on the third Zumwalt ship's deck house if engineering studies determined it's feasible. The first two ships in the Zumwalt class, the USS Zumwalt (DDG-1000) and USS Michael Monsoor (DDG-1001), are unlikely to receive the new Navy railgun, but it seems very likely now the USS Lyndon B. Johnson (DDG-1002) will be getting the new weapon design immediately based upon recent comments by the Navy.
In fact, U.S. Navy Admiral Pete Fanta, the Navy's director of surface warfare, believes the railgun prototyping phase can be skipped, although no final decision has been made. Officially, the plans for the railgun prototype will have the future weapon being installed on the Joint High Speed Vessel USNS Millinocket(JHSV- 3) in 2016. But, the reason the Zumwalt is a tempting target for the new railgun is because of the Zumwalt's power plant, which is capable of outputting 78 megawatts of electricity for use in propulsion, weapons and sensors.
The installation of the new railgun design does come at a cost. The Zumwalt destroyers were designed to field two 155mm BAE Advanced Gun Systems (AGS), which are capable of firing the Long-Range Land Attack Projectile (LRLAP) at a range of up to 75 nautical miles. Although these guns are removed, the railgun has a range of over 110 miles.
"The Navy is determined to increase the offensive punch of the surface warships," said Loren Thompson, a defense analyst at the Lexington Institute. "To do that with a limited budget, it needs to look at everything from smart munitions to railguns to lasers."
Speaking of lasers, it's also expected that the new Zumwalt destroyers will also field the new U.S. Navy laser cannon, which is designed to take out jets, planes, and unmanned drones. Last year, Admiral Klunder indicated the Navy's laser cannon was ready to be deployed on a ship with engines good enough to power the Laser Weapons System (LaWS).
"It's almost like a Hubble telescope at sea," Klunder said at the time. "Literally, we're able to get that kind of power and magnification."
[Photo by U.S. Navy/General Dynamics Bath Iron Works via Getty Images]
Crime Man Arrested For 'Crime Against Nature' With Chihuahua, Seriously
'Jersey Shore' Star Mike Sorrentino's Wife Lauren Flaunts Her Baby Bump In A Tight Black Outfit


text:
Can Members of a Mandatory Class Action Opt Out?
A recent decision from the Delaware Supreme Court is a reminder that the members of a mandatory class—one in which the class isn't guaranteed opt-out rights—sometimes may be given the right to opt out in order to pursue their own individual actions.
The decision, In re Celera Corp. Shareholder Litigation (pdf), addressed a class settlement of claims that the directors of Celera Corp. had breached their fiduciary duties in agreeing to a merger with Quest Diagnostics. The settlement promised "therapeutic benefits" to the class of Celera shareholders, such as additional disclosures and changes to the merger agreement that made it easier for Celera to entertain other offers. But the settlement gave class members no damages, it released all shareholder claims related to the merger, and it barred class members from opting out to pursue individual actions. The chancery court certified the class under its Rule 23(b)(1) (because of the potential for inconsistent adjudications) and Rule 23(b)(2) (because the class sought injunctive relief). The chancery court also overruled the objection to the settlement lodged by Celera's largest shareholder, BVF Partners, which believed that the transaction undervalued Celera and wanted to pursue an individual claim for damages.
On appeal, the Delaware Supreme Court rejected BVF's challenge to the standing of the named plaintiff. The court ruled that even though the named plaintiff sold its shares before the consummation of the merger, the plaintiff still was an adequate class representative, albeit "barely," because it owned the shares when the merger was announced and did not "acquiesce" to the merger. The Delaware Supreme Court also saw no merit in BVF's argument that the class's potential damages claims should have precluded any class certification except under Delaware's Rule 23(b)(3), which guarantees opt-out rights to class members. The court explained that Delaware precedent allows shareholders to bring mandatory class actions under Rules 23(b)(1) and (b)(2) in order to challenge director conduct in carrying out corporate transactions.
BVF had better success with its request to opt out of the certified class. The Delaware Supreme Court concluded that the chancery court should have allowed BVF to opt out. Worried that absent class members "could have their claims released without an opportunity to be heard," the court explained that the chancery court has discretion to permit class members to opt out of (b)(2) classes. The court noted that such discretionary opt-out rights have been allowed when an objector has a distinct claim or when allowing opt outs would facilitate fair and efficient litigation. The court then explained that the "objective of global peace" shared by the parties to the settlement was "outweighed by due process concerns" arising from BVF's circumstances. In particular, the named plaintiff was "barely" adequate, the "therapeutic relief" afforded by the class settlement was quickly mooted by consummation of the merger, and BVF was a substantial shareholder with a supportable damages claim. The court therefore concluded that barring BVF from opting out was an abuse of discretion.
The Celera decision promises to become an important consideration in negotiating class settlements of challenges to corporate transactions in Delaware and elsewhere. Defendants can no longer count on obtaining global peace from a non-monetary class settlement. And both sides must now be ready to account for the possibility that objecting shareholders may try to obtain opt-out rights.
The post Can Members of a Mandatory Class Action Opt Out? appeared first on Class Defense Blog.
Electronic Discovery & Information Governance - Tip of the Month: Getting Beyond the Black Box: Designing Machine Learning Tools for Explainability and Defensibility
Electronic Discovery & Information Governance - Tip of the Month: Contemplating Confidentiality - Considering Privacy Issues in Civil Confidentiality Orders
Electronic Discovery & Information Governance - Tip of the Month: Thinking about Explainable AI (XAI) and Litigation Defensibility


Slip into the Off the Shoulder Suede Bodysuit when you're looking for something a little more feminine! Features an off the shoulder neckline, short sleeves, and a faux suede upper. Top with a suede choker for a luxurious ensemble.