// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

/// Random words used by benchmarks that contain text.
final List<String> lipsum = 'Lorem ipsum dolor sit amet, consectetur adipiscing '
  'elit. Vivamus ut ligula a neque mattis posuere. Sed suscipit lobortis '
  'sodales. Morbi sed neque molestie, hendrerit odio ac, aliquam velit. '
  'Curabitur non quam sit amet nibh sollicitudin ultrices. Fusce '
  'ullamcorper bibendum commodo. In et feugiat nisl. Aenean vulputate in '
  'odio vestibulum ultricies. Nunc dolor libero, hendrerit eu urna sit '
  'amet, pretium iaculis nulla. Ut porttitor nisl et leo iaculis, vel '
  'fringilla odio pulvinar. Ut eget ligula id odio auctor egestas nec a '
  'nisl. Aliquam luctus dolor et magna posuere mattis.'
  'Suspendisse fringilla nisl et massa congue, eget '
  'imperdiet lectus porta. Vestibulum sed dui sed dui porta imperdiet ut in risus. '
  'Fusce diam purus, faucibus id accumsan sit amet, semper a sem. Sed aliquam '
  'lacus eget libero ultricies, quis hendrerit tortor posuere. Pellentesque '
  'sagittis eu est in maximus. Proin auctor fringilla dolor in hendrerit. Nam '
  'pulvinar rhoncus tellus. Nullam vel mauris semper, volutpat tellus at, sagittis '
  'lectus. Donec vitae nibh mauris. Morbi posuere sem id eros tristique tempus. '
  'Vivamus lacinia sapien neque, eu semper purus gravida ut.'.split(' ');
